diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2022-03-08 00:12:13 +0100 | 
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2022-03-08 00:12:13 +0100 | 
| commit | 0f77ce185466ffcd94fb0bc66225ebb115cda18d (patch) | |
| tree | 91a44e07e9768dcaf4df4b83e2041b01661036d9 | |
| parent | d9e067378028dcad3a92cac18f8b47cc2a27159f (diff) | |
| download | evtclib-0f77ce185466ffcd94fb0bc66225ebb115cda18d.tar.gz evtclib-0f77ce185466ffcd94fb0bc66225ebb115cda18d.tar.bz2 evtclib-0f77ce185466ffcd94fb0bc66225ebb115cda18d.zip | |
add EoD elite spec IDs
This is the one thing that prevents evtclib from parsing new logs, as we
can handle unknown bosses, but no unknown elite specs.
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | src/gamedata.rs | 66 | 
2 files changed, 59 insertions, 9 deletions
| diff --git a/CHANGELOG.md b/CHANGELOG.md index bc2913a..df31249 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@  All notable changes to this project will be documented in this file.  ## Unreleased +### Added +- `EliteSpec`s for the new End of Dragons specializations  ## 0.6.1 - 2021-11-25  ### Added diff --git a/src/gamedata.rs b/src/gamedata.rs index f19f871..44ae04e 100644 --- a/src/gamedata.rs +++ b/src/gamedata.rs @@ -815,6 +815,17 @@ pub enum EliteSpec {      Mirage = 59,      Scourge = 60,      Renegade = 63, + +    // End of Dragons elites: +    Willbender = 65, +    Bladesworn = 68, +    Mechanist = 70, +    Untamed = 72, +    Specter = 71, +    Catalyst = 67, +    Virtuoso = 66, +    Harbinger = 64, +    Vindicator = 69,  }  impl FromStr for EliteSpec { @@ -842,6 +853,16 @@ impl FromStr for EliteSpec {              "scourge" => Ok(EliteSpec::Scourge),              "renegade" => Ok(EliteSpec::Renegade), +            "willbender" => Ok(EliteSpec::Willbender), +            "bladesworn" => Ok(EliteSpec::Bladesworn), +            "mechanist" => Ok(EliteSpec::Mechanist), +            "untamed" => Ok(EliteSpec::Untamed), +            "specter" => Ok(EliteSpec::Specter), +            "catalyst" => Ok(EliteSpec::Catalyst), +            "virtuoso" => Ok(EliteSpec::Virtuoso), +            "harbinger" => Ok(EliteSpec::Harbinger), +            "vindicator" => Ok(EliteSpec::Vindicator), +              _ => Err(ParseEliteSpecError(s.to_owned())),          }      } @@ -868,6 +889,15 @@ impl Display for EliteSpec {              EliteSpec::Mirage => "Mirage",              EliteSpec::Scourge => "Scourge",              EliteSpec::Renegade => "Renegade", +            EliteSpec::Willbender => "Willbender", +            EliteSpec::Bladesworn => "Bladesworn", +            EliteSpec::Mechanist => "Mechanist", +            EliteSpec::Untamed => "Untamed", +            EliteSpec::Specter => "Specter", +            EliteSpec::Catalyst => "Catalyst", +            EliteSpec::Virtuoso => "Virtuoso", +            EliteSpec::Harbinger => "Harbinger", +            EliteSpec::Vindicator => "Vindicator",          };          write!(f, "{}", name)      } @@ -881,15 +911,15 @@ impl EliteSpec {      pub fn profession(self) -> Profession {          use EliteSpec::*;          match self { -            Dragonhunter | Firebrand => Profession::Guardian, -            Berserker | Spellbreaker => Profession::Warrior, -            Scrapper | Holosmith => Profession::Engineer, -            Druid | Soulbeast => Profession::Ranger, -            Daredevil | Deadeye => Profession::Thief, -            Tempest | Weaver => Profession::Elementalist, -            Chronomancer | Mirage => Profession::Mesmer, -            Reaper | Scourge => Profession::Necromancer, -            Herald | Renegade => Profession::Revenant, +            Dragonhunter | Firebrand | Willbender => Profession::Guardian, +            Berserker | Spellbreaker | Bladesworn => Profession::Warrior, +            Scrapper | Holosmith | Mechanist => Profession::Engineer, +            Druid | Soulbeast | Untamed => Profession::Ranger, +            Daredevil | Deadeye | Specter => Profession::Thief, +            Tempest | Weaver | Catalyst => Profession::Elementalist, +            Chronomancer | Mirage | Virtuoso => Profession::Mesmer, +            Reaper | Scourge | Harbinger => Profession::Necromancer, +            Herald | Renegade | Vindicator => Profession::Revenant,          }      }  } @@ -1246,38 +1276,56 @@ mod tests {              ("Dragonhunter", Dragonhunter),              ("firebrand", Firebrand),              ("Firebrand", Firebrand), +            ("willbender", Willbender), +            ("Willbender", Willbender),              ("berserker", Berserker),              ("Berserker", Berserker),              ("spellbreaker", Spellbreaker),              ("Spellbreaker", Spellbreaker), +            ("bladesworn", Bladesworn), +            ("Bladesworn", Bladesworn),              ("herald", Herald),              ("Herald", Herald),              ("renegade", Renegade),              ("Renegade", Renegade), +            ("vindicator", Vindicator), +            ("Vindicator", Vindicator),              ("daredevil", Daredevil),              ("Daredevil", Daredevil),              ("deadeye", Deadeye),              ("Deadeye", Deadeye), +            ("specter", Specter), +            ("Specter", Specter),              ("scrapper", Scrapper),              ("Scrapper", Scrapper),              ("holosmith", Holosmith),              ("Holosmith", Holosmith), +            ("mechanist", Mechanist), +            ("Mechanist", Mechanist),              ("druid", Druid),              ("Druid", Druid),              ("soulbeast", Soulbeast),              ("Soulbeast", Soulbeast), +            ("untamed", Untamed), +            ("Untamed", Untamed),              ("tempest", Tempest),              ("Tempest", Tempest),              ("weaver", Weaver),              ("Weaver", Weaver), +            ("catalyst", Catalyst), +            ("Catalyst", Catalyst),              ("chronomancer", Chronomancer),              ("Chronomancer", Chronomancer),              ("mirage", Mirage),              ("Mirage", Mirage), +            ("virtuoso", Virtuoso), +            ("Virtuoso", Virtuoso),              ("reaper", Reaper),              ("Reaper", Reaper),              ("scourge", Scourge),              ("Scourge", Scourge), +            ("harbinger", Harbinger), +            ("Harbinger", Harbinger),          ];          for (input, expected) in tests { | 
