diff --git a/readme.md b/readme.md index 321b348..bf88c5a 100644 --- a/readme.md +++ b/readme.md @@ -35,7 +35,8 @@ _these features are implemented_ ## todo - swap to chrono instead of `(TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.MS'))` (thats REALLY ugly!!) -- patch `upload_level` to use 2.2 unlisted (friends only stuff) +- patch `upload_level` and `download_level` to use 2.2 unlisted after we get social shit (friends only stuff) - in our level parsing, check for dual portals rather than just starting dual - green name users... -- add more logging \ No newline at end of file +- add more old endpoints +- add events, weekly, daily \ No newline at end of file diff --git a/src/helpers.rs b/src/helpers.rs index dcc409e..d583aa1 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -1,5 +1,6 @@ pub mod accounts; pub mod clean; +pub mod difficulty; pub mod encryption; pub mod format; pub mod levels; \ No newline at end of file diff --git a/src/helpers/difficulty.rs b/src/helpers/difficulty.rs new file mode 100644 index 0000000..38f1a8b --- /dev/null +++ b/src/helpers/difficulty.rs @@ -0,0 +1,23 @@ +pub enum LevelDifficulty { + Auto, + Easy, + Normal, + Hard, + Harder, + Insane, + Demon +} + +impl LevelDifficulty { + pub fn to_star_difficulty(&self) -> i32 { + match self { + LevelDifficulty::Auto => 5, + LevelDifficulty::Easy => 1, + LevelDifficulty::Normal => 2, + LevelDifficulty::Hard => 3, + LevelDifficulty::Harder => 4, + LevelDifficulty::Insane => 5, + LevelDifficulty::Demon => 5, + } + } +} \ No newline at end of file diff --git a/src/helpers/levels.rs b/src/helpers/levels.rs index c5d1e50..b9e8e58 100644 --- a/src/helpers/levels.rs +++ b/src/helpers/levels.rs @@ -46,40 +46,38 @@ impl ObjectData { object_prop_bool!("13", checked); } -pub mod portal_speed { - pub enum PortalSpeed { - Slow, - Normal, - Medium, - Fast, - VeryFast - } +pub enum PortalSpeed { + Slow, + Normal, + Medium, + Fast, + VeryFast +} - impl PortalSpeed { - pub fn portal_speed(&self) -> f64 { - match self { - PortalSpeed::Slow => 251.16, - PortalSpeed::Normal => 311.58, - PortalSpeed::Medium => 387.42, - PortalSpeed::Fast => 478.0, - PortalSpeed::VeryFast => 576.0 - } +impl PortalSpeed { + pub fn portal_speed(&self) -> f64 { + match self { + PortalSpeed::Slow => 251.16, + PortalSpeed::Normal => 311.58, + PortalSpeed::Medium => 387.42, + PortalSpeed::Fast => 478.0, + PortalSpeed::VeryFast => 576.0 } } } -pub fn id_to_portal_speed(id: i32) -> Option { +pub fn id_to_portal_speed(id: i32) -> Option { match id { - 200 => Some(portal_speed::PortalSpeed::Slow), - 201 => Some(portal_speed::PortalSpeed::Normal), - 202 => Some(portal_speed::PortalSpeed::Medium), - 203 => Some(portal_speed::PortalSpeed::Fast), - 1334 => Some(portal_speed::PortalSpeed::VeryFast), + 200 => Some(PortalSpeed::Slow), + 201 => Some(PortalSpeed::Normal), + 202 => Some(PortalSpeed::Medium), + 203 => Some(PortalSpeed::Fast), + 1334 => Some(PortalSpeed::VeryFast), _ => None, } } -pub fn get_seconds_from_xpos(pos: f64, start_speed: portal_speed::PortalSpeed, portals: Vec) -> f64 { +pub fn get_seconds_from_xpos(pos: f64, start_speed: PortalSpeed, portals: Vec) -> f64 { let mut speed; let mut last_obj_pos = 0.0; let mut last_segment = 0.0; @@ -110,12 +108,12 @@ pub fn get_seconds_from_xpos(pos: f64, start_speed: portal_speed::PortalSpeed, p pub fn measure_length(objects: Vec, ka4: i32) -> f64 { let start_speed = match ka4 { - 0 => portal_speed::PortalSpeed::Normal, - 1 => portal_speed::PortalSpeed::Slow, - 2 => portal_speed::PortalSpeed::Medium, - 3 => portal_speed::PortalSpeed::Fast, - 4 => portal_speed::PortalSpeed::VeryFast, - _ => portal_speed::PortalSpeed::Normal + 0 => PortalSpeed::Normal, + 1 => PortalSpeed::Slow, + 2 => PortalSpeed::Medium, + 3 => PortalSpeed::Fast, + 4 => PortalSpeed::VeryFast, + _ => PortalSpeed::Normal }; let max_x_pos = objects