diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2022-03-09 00:37:07 +0100 | 
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2022-03-09 00:37:07 +0100 | 
| commit | 51c8bd95930892db35e5aff2421a4e556ebcc96f (patch) | |
| tree | ff3c91f3be8ce0ebb50463eb26ac2061eedf8698 | |
| parent | bd035c3d759bf468ef35e711cdde5e2ffab5d1c0 (diff) | |
| download | evtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.tar.gz evtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.tar.bz2 evtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.zip | |
add Boss/Encounter for new EoD strikes
| -rw-r--r-- | CHANGELOG.md | 5 | ||||
| -rw-r--r-- | src/analyzers/mod.rs | 6 | ||||
| -rw-r--r-- | src/gamedata.rs | 72 | ||||
| -rw-r--r-- | tests/logs/ankka-20220303.zevtc | bin | 0 -> 1815000 bytes | |||
| -rw-r--r-- | tests/logs/dragonvoid-20220303.zevtc | bin | 0 -> 3852490 bytes | |||
| -rw-r--r-- | tests/logs/mai-trin-20220303.zevtc | bin | 0 -> 1749867 bytes | |||
| -rw-r--r-- | tests/logs/minister-li-20220303.zevtc | bin | 0 -> 3509482 bytes | |||
| -rw-r--r-- | tests/parsing.rs | 76 | 
8 files changed, 157 insertions, 2 deletions
| diff --git a/CHANGELOG.md b/CHANGELOG.md index df31249..b1384b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.  ## Unreleased  ### Added  - `EliteSpec`s for the new End of Dragons specializations +- `Boss` and `Encounter` for the new strikes +  - `{Boss, Encounter}::CaptainMaiTrin` +  - `{Boss, Encounter}::Ankka` +  - `{Boss, Encounter}::MinisterLi` +  - `{Boss, Encounter}::Dragonvoid`  ## 0.6.1 - 2021-11-25  ### Added diff --git a/src/analyzers/mod.rs b/src/analyzers/mod.rs index 1d8caf7..ed0f157 100644 --- a/src/analyzers/mod.rs +++ b/src/analyzers/mod.rs @@ -131,6 +131,10 @@ pub fn for_log<'l>(log: &'l Log) -> Option<Box<dyn Analyzer + 'l>> {          | Encounter::SuperKodanBrothers          | Encounter::FraenirOfJormag          | Encounter::Boneskinner -        | Encounter::WhisperOfJormag => Some(Box::new(strikes::GenericStrike::new(log))), +        | Encounter::WhisperOfJormag +        | Encounter::CaptainMaiTrin +        | Encounter::Ankka +        | Encounter::MinisterLi +        | Encounter::Dragonvoid => Some(Box::new(strikes::GenericStrike::new(log))),      }  } diff --git a/src/gamedata.rs b/src/gamedata.rs index 44ae04e..8dfe288 100644 --- a/src/gamedata.rs +++ b/src/gamedata.rs @@ -150,6 +150,10 @@ pub enum Encounter {      FraenirOfJormag = Boss::FraenirOfJormag as u16,      Boneskinner = Boss::Boneskinner as u16,      WhisperOfJormag = Boss::WhisperOfJormag as u16, +    CaptainMaiTrin = Boss::CaptainMaiTrin as u16, +    Ankka = Boss::Ankka as u16, +    MinisterLi = Boss::MinisterLi as u16, +    Dragonvoid = Boss::Dragonvoid as u16,  }  impl Encounter { @@ -202,6 +206,10 @@ impl Encounter {              Encounter::FraenirOfJormag => &[Boss::FraenirOfJormag],              Encounter::Boneskinner => &[Boss::Boneskinner],              Encounter::WhisperOfJormag => &[Boss::WhisperOfJormag], +            Encounter::CaptainMaiTrin => &[Boss::CaptainMaiTrin], +            Encounter::Ankka => &[Boss::Ankka], +            Encounter::MinisterLi => &[Boss::MinisterLi], +            Encounter::Dragonvoid => &[Boss::Dragonvoid],          }      } @@ -241,7 +249,9 @@ impl Encounter {              | CardinalSabir | QadimThePeerless => GameMode::Raid,              IcebroodConstruct | Boneskinner | SuperKodanBrothers | FraenirOfJormag -            | WhisperOfJormag => GameMode::Strike, +            | WhisperOfJormag | CaptainMaiTrin | Ankka | MinisterLi | Dragonvoid => { +                GameMode::Strike +            }              StandardKittyGolem | MediumKittyGolem | LargeKittyGolem => GameMode::Golem,          } @@ -322,6 +332,10 @@ impl Display for Encounter {              Encounter::FraenirOfJormag => "Fraenir of Jormag",              Encounter::Boneskinner => "Boneskinner",              Encounter::WhisperOfJormag => "Whisper of Jormag", +            Encounter::CaptainMaiTrin => "Captain Mai Trin", +            Encounter::Ankka => "Ankka", +            Encounter::MinisterLi => "Minister Li", +            Encounter::Dragonvoid => "The Dragonvoid",          };          write!(f, "{}", name)      } @@ -545,6 +559,22 @@ pub enum Boss {      ///      /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Whisper_of_Jormag)      WhisperOfJormag = 0x58B7, +    /// Captain Mai Trin, boss of the Aetherblade Hideout strike mission. +    /// +    /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Strike_Mission:_Aetherblade_Hideout) +    CaptainMaiTrin = 0x5DE1, +    /// Ankka, boss in the Xunlai Jade Junkyard. +    /// +    /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Strike_Mission:_Xunlai_Jade_Junkyard) +    Ankka = 0x5D95, +    /// Minister Li, boss in the Kaineng Overlook. +    /// +    /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Strike_Mission:_Kaineng_Overlook) +    MinisterLi = 0x5FA5, +    /// The Dragonvoid, boss in the Harvest Temple. +    /// +    /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Strike_Mission:_Harvest_Temple) +    Dragonvoid = 0x5F37,  }  impl Boss { @@ -595,6 +625,10 @@ impl Boss {              Boss::FraenirOfJormag => Encounter::FraenirOfJormag,              Boss::Boneskinner => Encounter::Boneskinner,              Boss::WhisperOfJormag => Encounter::WhisperOfJormag, +            Boss::CaptainMaiTrin => Encounter::CaptainMaiTrin, +            Boss::Ankka => Encounter::Ankka, +            Boss::MinisterLi => Encounter::MinisterLi, +            Boss::Dragonvoid => Encounter::Dragonvoid,          }      }  } @@ -664,6 +698,10 @@ impl FromStr for Boss {              "fraenir" | "fraenir of jormag" => Ok(Boss::FraenirOfJormag),              "boneskinner" => Ok(Boss::Boneskinner),              "whisper" | "whisper of jormag" => Ok(Boss::WhisperOfJormag), +            "captain mai trin" | "mai trin" | "mai" => Ok(Boss::CaptainMaiTrin), +            "ankka" => Ok(Boss::Ankka), +            "minister li" | "li" => Ok(Boss::MinisterLi), +            "dragonvoid" | "the dragonvoid" => Ok(Boss::Dragonvoid),              _ => Err(ParseBossError(s.to_owned())),          } @@ -717,6 +755,10 @@ impl Display for Boss {              Boss::FraenirOfJormag => "Fraenir of Jormag",              Boss::Boneskinner => "Boneskinner",              Boss::WhisperOfJormag => "Whisper of Jormag", +            Boss::CaptainMaiTrin => "Captain Mai Trin", +            Boss::Ankka => "Ankka", +            Boss::MinisterLi => "Minister Li", +            Boss::Dragonvoid => "The Dragonvoid",          };          write!(f, "{}", name)      } @@ -1057,6 +1099,20 @@ mod tests {              ("kodans", SuperKodanBrothers),              ("whisper", WhisperOfJormag),              ("Whisper of Jormag", WhisperOfJormag), +            ("captain mai trin", CaptainMaiTrin), +            ("Captain Mai Trin", CaptainMaiTrin), +            ("mai trin", CaptainMaiTrin), +            ("Mai Trin", CaptainMaiTrin), +            ("ankka", Ankka), +            ("Ankka", Ankka), +            ("minister li", MinisterLi), +            ("Minister Li", MinisterLi), +            ("li", MinisterLi), +            ("Li", MinisterLi), +            ("dragonvoid", Dragonvoid), +            ("Dragonvoid", Dragonvoid), +            ("the dragonvoid", Dragonvoid), +            ("The Dragonvoid", Dragonvoid),          ];          for (input, expected) in tests { @@ -1191,6 +1247,20 @@ mod tests {              ("Voice of the Fallen", VoiceOfTheFallen),              ("whisper", WhisperOfJormag),              ("Whisper of Jormag", WhisperOfJormag), +            ("captain mai trin", CaptainMaiTrin), +            ("Captain Mai Trin", CaptainMaiTrin), +            ("mai trin", CaptainMaiTrin), +            ("Mai Trin", CaptainMaiTrin), +            ("ankka", Ankka), +            ("Ankka", Ankka), +            ("minister li", MinisterLi), +            ("Minister Li", MinisterLi), +            ("li", MinisterLi), +            ("Li", MinisterLi), +            ("dragonvoid", Dragonvoid), +            ("Dragonvoid", Dragonvoid), +            ("the dragonvoid", Dragonvoid), +            ("The Dragonvoid", Dragonvoid),          ];          for (input, expected) in tests { diff --git a/tests/logs/ankka-20220303.zevtc b/tests/logs/ankka-20220303.zevtcBinary files differ new file mode 100644 index 0000000..edcb6a6 --- /dev/null +++ b/tests/logs/ankka-20220303.zevtc diff --git a/tests/logs/dragonvoid-20220303.zevtc b/tests/logs/dragonvoid-20220303.zevtcBinary files differ new file mode 100644 index 0000000..08ab387 --- /dev/null +++ b/tests/logs/dragonvoid-20220303.zevtc diff --git a/tests/logs/mai-trin-20220303.zevtc b/tests/logs/mai-trin-20220303.zevtcBinary files differ new file mode 100644 index 0000000..493e2d1 --- /dev/null +++ b/tests/logs/mai-trin-20220303.zevtc diff --git a/tests/logs/minister-li-20220303.zevtc b/tests/logs/minister-li-20220303.zevtcBinary files differ new file mode 100644 index 0000000..b74f813 --- /dev/null +++ b/tests/logs/minister-li-20220303.zevtc diff --git a/tests/parsing.rs b/tests/parsing.rs index 1e9f0ef..4a0ee18 100644 --- a/tests/parsing.rs +++ b/tests/parsing.rs @@ -761,6 +761,82 @@ test! {      ],  } +test! { +    name: parse_mai_trin, +    log: "logs/mai-trin-20220303.zevtc", +    boss: Encounter::CaptainMaiTrin, +    mode: Strike, +    players: &[ +        (2, ":Areki.5906", "Areki Is Too Loud", Ranger, Some(Druid)), +        (2, ":DarkSide.8427", "Nova Kings", Mesmer, Some(Virtuoso)), +        (2, ":Master Dragon.6712", "Dragonnic", Warrior, Some(Berserker)), +        (2, ":Salieri.7962", "Attack The Illusion", Mesmer, Some(Chronomancer)), +        (2, ":vuko.3692", "Jgww", Thief, Some(Specter)), +        (3, ":LINKAZZATORE.8135", "Urtola", Necromancer, Some(Scourge)), +        (3, ":Lawitz.5128", "It Should Be Weaver", Engineer, Some(Mechanist)), +        (3, ":Lin Chin Ping.9480", "Luna L Fay", Necromancer, Some(Scourge)), +        (3, ":Tareo.3726", "Tarea A", Necromancer, Some(Scourge)), +        (3, ":nate.5871", "Cute Aníme Waifu", Mesmer, Some(Chronomancer)), +    ], +} + +test! { +    name: parse_ankka, +    log: "logs/ankka-20220303.zevtc", +    boss: Encounter::Ankka, +    mode: Strike, +    players: &[ +        (2, ":Areki.5906", "Areki Is Too Loud", Ranger, Some(Druid)), +        (2, ":DarkSide.8427", "Nova Kings", Mesmer, Some(Virtuoso)), +        (2, ":Master Dragon.6712", "Dragonnic", Warrior, Some(Berserker)), +        (2, ":Salieri.7962", "Attack The Illusion", Mesmer, Some(Chronomancer)), +        (2, ":vuko.3692", "Jgww", Thief, Some(Specter)), +        (3, ":LINKAZZATORE.8135", "Urtola", Necromancer, Some(Scourge)), +        (3, ":Lawitz.5128", "It Should Be Weaver", Engineer, Some(Mechanist)), +        (3, ":Lin Chin Ping.9480", "Luna L Fay", Necromancer, Some(Scourge)), +        (3, ":Tareo.3726", "Tarea A", Necromancer, Some(Scourge)), +        (3, ":nate.5871", "Cute Aníme Waifu", Mesmer, Some(Chronomancer)), +    ], +} + +test! { +    name: parse_minister_li, +    log: "logs/minister-li-20220303.zevtc", +    boss: Encounter::MinisterLi, +    mode: Strike, +    players: &[ +        (2, ":Areki.5906", "Areki Is Too Loud", Ranger, Some(Druid)), +        (2, ":DarkSide.8427", "Nova Kings", Mesmer, Some(Virtuoso)), +        (2, ":Master Dragon.6712", "Dragonnic", Warrior, Some(Berserker)), +        (2, ":Salieri.7962", "Attack The Illusion", Mesmer, Some(Chronomancer)), +        (2, ":vuko.3692", "Jgww", Thief, Some(Specter)), +        (3, ":LINKAZZATORE.8135", "Urtola", Necromancer, Some(Scourge)), +        (3, ":Lawitz.5128", "It Should Be Weaver", Engineer, Some(Mechanist)), +        (3, ":Lin Chin Ping.9480", "Luna L Fay", Necromancer, Some(Scourge)), +        (3, ":Tareo.3726", "Tarea A", Necromancer, Some(Scourge)), +        (3, ":nate.5871", "Cute Aníme Waifu", Mesmer, Some(Chronomancer)), +    ], +} + +test! { +    name: parse_dragonvoid, +    log: "logs/dragonvoid-20220303.zevtc", +    boss: Encounter::Dragonvoid, +    mode: Strike, +    players: &[ +        (2, ":Areki.5906", "Areki Is Too Loud", Ranger, Some(Druid)), +        (2, ":DarkSide.8427", "Nova Kings", Mesmer, Some(Virtuoso)), +        (2, ":Master Dragon.6712", "Dragonnic", Warrior, Some(Berserker)), +        (2, ":Salieri.7962", "Attack The Illusion", Mesmer, Some(Chronomancer)), +        (2, ":vuko.3692", "Jgww", Thief, Some(Specter)), +        (3, ":LINKAZZATORE.8135", "Urtola", Necromancer, Some(Scourge)), +        (3, ":Lawitz.5128", "It Should Be Weaver", Engineer, Some(Mechanist)), +        (3, ":Lin Chin Ping.9480", "Luna L Fay", Necromancer, Some(Scourge)), +        (3, ":Tareo.3726", "Tarea A", Necromancer, Some(Scourge)), +        (3, ":nate.5871", "Cute Aníme Waifu", Mesmer, Some(Chronomancer)), +    ], +} +  // Various tests  test! { | 
