aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2021-11-13 12:53:16 +0100
committerDaniel Schadt <kingdread@gmx.de>2021-11-13 12:53:16 +0100
commit8be6056b2c84064d341ce3450a86685c9a4baac5 (patch)
tree52f2a950cbbb202a4c02451fc486947e8b55f459
parentd98c391571ac41af08757c3fb87beef0a6415d23 (diff)
downloadevtclib-8be6056b2c84064d341ce3450a86685c9a4baac5.tar.gz
evtclib-8be6056b2c84064d341ce3450a86685c9a4baac5.tar.bz2
evtclib-8be6056b2c84064d341ce3450a86685c9a4baac5.zip
add bandit trio encounter & boss IDs
-rw-r--r--src/analyzers/mod.rs4
-rw-r--r--src/gamedata.rs24
2 files changed, 27 insertions, 1 deletions
diff --git a/src/analyzers/mod.rs b/src/analyzers/mod.rs
index 9b482de..6234a9a 100644
--- a/src/analyzers/mod.rs
+++ b/src/analyzers/mod.rs
@@ -87,7 +87,9 @@ pub fn for_log<'l>(log: &'l Log) -> Option<Box<dyn Analyzer + 'l>> {
Some(Box::new(raids::GenericRaid::new(log)))
}
- Encounter::Slothasor | Encounter::Matthias => Some(Box::new(raids::GenericRaid::new(log))),
+ Encounter::Slothasor | Encounter::BanditTrio | Encounter::Matthias => {
+ Some(Box::new(raids::GenericRaid::new(log)))
+ }
Encounter::KeepConstruct => Some(Box::new(raids::GenericRaid::new(log))),
Encounter::Xera => Some(Box::new(raids::Xera::new(log))),
diff --git a/src/gamedata.rs b/src/gamedata.rs
index ca5a3ad..dc035b2 100644
--- a/src/gamedata.rs
+++ b/src/gamedata.rs
@@ -28,6 +28,8 @@ pub enum Encounter {
// Wing 2
Slothasor = Boss::Slothasor as u16,
+ // Berg is the first encounter, which is why the logs are saved as "Berg".
+ BanditTrio = Boss::Berg as u16,
Matthias = Boss::Matthias as u16,
// Wing 3
@@ -95,6 +97,7 @@ impl Encounter {
Encounter::Gorseval => &[Boss::Gorseval],
Encounter::Sabetha => &[Boss::Sabetha],
Encounter::Slothasor => &[Boss::Slothasor],
+ Encounter::BanditTrio => &[Boss::Berg, Boss::Zane, Boss::Narella],
Encounter::Matthias => &[Boss::Matthias],
Encounter::KeepConstruct => &[Boss::KeepConstruct],
Encounter::Xera => &[Boss::Xera, Boss::Xera2],
@@ -163,6 +166,7 @@ impl FromStr for Encounter {
}
let lower = s.to_lowercase();
match &lower as &str {
+ "trio" | "bandit trio" => Ok(Encounter::BanditTrio),
"largos" | "twins" | "largos twins" | "twin largos" => Ok(Encounter::TwinLargos),
"kodans" | "super kodan brothers" => Ok(Encounter::SuperKodanBrothers),
@@ -178,6 +182,7 @@ impl Display for Encounter {
Encounter::Gorseval => "Gorseval",
Encounter::Sabetha => "Sabetha",
Encounter::Slothasor => "Slothasor",
+ Encounter::BanditTrio => "Bandit Trio",
Encounter::Matthias => "Matthias Gabrel",
Encounter::KeepConstruct => "Keep Construct",
Encounter::Xera => "Xera",
@@ -245,6 +250,18 @@ pub enum Boss {
///
/// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Slothasor)
Slothasor = 0x3EFB,
+ /// Berg, part of the "Bandit Trio" encounter.
+ ///
+ /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Berg)
+ Berg = 0x3ED8,
+ /// Zane, part of the "Bandit Trio" encounter.
+ ///
+ /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Zane)
+ Zane = 0x3F09,
+ /// Narella, part of the "Bandit Trio" encounter.
+ ///
+ /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Narella)
+ Narella = 0x3EFD,
/// Matthias, third boss of Salvation Pass.
///
/// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Matthias_Gabrel)
@@ -415,6 +432,7 @@ impl Boss {
Boss::Gorseval => Encounter::Gorseval,
Boss::Sabetha => Encounter::Sabetha,
Boss::Slothasor => Encounter::Slothasor,
+ Boss::Berg | Boss::Zane | Boss::Narella => Encounter::BanditTrio,
Boss::Matthias => Encounter::Matthias,
Boss::KeepConstruct => Encounter::KeepConstruct,
Boss::Xera => Encounter::Xera,
@@ -468,6 +486,9 @@ impl FromStr for Boss {
"sab" | "sabetha" => Ok(Boss::Sabetha),
"sloth" | "slothasor" => Ok(Boss::Slothasor),
+ "berg" => Ok(Boss::Berg),
+ "zane" => Ok(Boss::Zane),
+ "narella" => Ok(Boss::Narella),
"matthias" => Ok(Boss::Matthias),
"kc" | "keep construct" => Ok(Boss::KeepConstruct),
@@ -523,6 +544,9 @@ impl Display for Boss {
Boss::Gorseval => "Gorseval",
Boss::Sabetha => "Sabetha",
Boss::Slothasor => "Slothasor",
+ Boss::Berg => "Berg",
+ Boss::Zane => "Zane",
+ Boss::Narella => "Narella",
Boss::Matthias => "Matthias Gabrel",
Boss::KeepConstruct => "Keep Construct",
Boss::Xera => "Xera",