aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2022-03-09 00:37:07 +0100
committerDaniel Schadt <kingdread@gmx.de>2022-03-09 00:37:07 +0100
commit51c8bd95930892db35e5aff2421a4e556ebcc96f (patch)
treeff3c91f3be8ce0ebb50463eb26ac2061eedf8698 /src
parentbd035c3d759bf468ef35e711cdde5e2ffab5d1c0 (diff)
downloadevtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.tar.gz
evtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.tar.bz2
evtclib-51c8bd95930892db35e5aff2421a4e556ebcc96f.zip
add Boss/Encounter for new EoD strikes
Diffstat (limited to 'src')
-rw-r--r--src/analyzers/mod.rs6
-rw-r--r--src/gamedata.rs72
2 files changed, 76 insertions, 2 deletions
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 {