diff options
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | src/analyzers/mod.rs | 4 | ||||
-rw-r--r-- | src/gamedata.rs | 35 | ||||
-rw-r--r-- | tests/logs/large-golem-20211112.zevtc | bin | 0 -> 16717 bytes | |||
-rw-r--r-- | tests/logs/medium-golem-20211112.zevtc | bin | 0 -> 16060 bytes | |||
-rw-r--r-- | tests/logs/standard-golem-20211112.zevtc | bin | 0 -> 25757 bytes | |||
-rw-r--r-- | tests/parsing.rs | 29 |
7 files changed, 71 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e2048c4..512fa23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ All notable changes to this project will be documented in this file. ## Unreleased +### Added +- Boss and encounter definitions for the training golems (`StandardKittyGolem`, + `MediumKittyGolem`, `LargeKittyGolem`) ## 0.5.0 - 2020-10-07 ### Added diff --git a/src/analyzers/mod.rs b/src/analyzers/mod.rs index e19e61a..9b482de 100644 --- a/src/analyzers/mod.rs +++ b/src/analyzers/mod.rs @@ -108,6 +108,10 @@ pub fn for_log<'l>(log: &'l Log) -> Option<Box<dyn Analyzer + 'l>> { Encounter::CardinalSabir => Some(Box::new(raids::CardinalSabir::new(log))), Encounter::QadimThePeerless => Some(Box::new(raids::QadimThePeerless::new(log))), + Encounter::StandardKittyGolem + | Encounter::MediumKittyGolem + | Encounter::LargeKittyGolem => Some(Box::new(raids::GenericRaid::new(log))), + Encounter::Ai => Some(Box::new(fractals::Ai::new(log))), Encounter::Skorvald => Some(Box::new(fractals::Skorvald::new(log))), Encounter::Artsariiv diff --git a/src/gamedata.rs b/src/gamedata.rs index ac8d46a..ca5a3ad 100644 --- a/src/gamedata.rs +++ b/src/gamedata.rs @@ -54,6 +54,11 @@ pub enum Encounter { CardinalSabir = Boss::CardinalSabir as u16, QadimThePeerless = Boss::QadimThePeerless as u16, + // Training area + StandardKittyGolem = Boss::StandardKittyGolem as u16, + MediumKittyGolem = Boss::MediumKittyGolem as u16, + LargeKittyGolem = Boss::LargeKittyGolem as u16, + // 100 CM (Sunqua Peak) Ai = Boss::Ai as u16, @@ -105,6 +110,9 @@ impl Encounter { Encounter::CardinalAdina => &[Boss::CardinalAdina], Encounter::CardinalSabir => &[Boss::CardinalSabir], Encounter::QadimThePeerless => &[Boss::QadimThePeerless], + Encounter::StandardKittyGolem => &[Boss::StandardKittyGolem], + Encounter::MediumKittyGolem => &[Boss::MediumKittyGolem], + Encounter::LargeKittyGolem => &[Boss::LargeKittyGolem], Encounter::Ai => &[Boss::Ai], Encounter::Skorvald => &[Boss::Skorvald], Encounter::Artsariiv => &[Boss::Artsariiv], @@ -185,6 +193,9 @@ impl Display for Encounter { Encounter::CardinalAdina => "Cardinal Adina", Encounter::CardinalSabir => "Cardinal Sabir", Encounter::QadimThePeerless => "Qadim the Peerless", + Encounter::StandardKittyGolem => "Standard Kitty Golem", + Encounter::MediumKittyGolem => "Medium Kitty Golem", + Encounter::LargeKittyGolem => "Large Kitty Golem", Encounter::Ai => "Ai Keeper of the Peak", Encounter::Skorvald => "Skorvald the Shattered", Encounter::Artsariiv => "Artsariiv", @@ -317,6 +328,20 @@ pub enum Boss { /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Qadim_the_Peerless) QadimThePeerless = 0x55F0, + // The training area + /// The standard training golem, available in the Special Forces Training Area. + /// + /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Standard_Kitty_Golem) + StandardKittyGolem = 0x3F47, + /// The medium training golem, available in the Special Forces Training Area. + /// + /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Medium_Kitty_Golem) + MediumKittyGolem = 0x4CBD, + /// The large kitty golem available in the Special Forces Training Area. + /// + /// [Guild Wars 2 Wiki](https://wiki.guildwars2.com/wiki/Large_Kitty_Golem) + LargeKittyGolem = 0x4CDC, + // 100 CM (Sunqua Peak) /// Ai, Keeper of the Peak, boss of the Sunqua Peak CM fractal. /// @@ -407,6 +432,9 @@ impl Boss { Boss::CardinalAdina => Encounter::CardinalAdina, Boss::CardinalSabir => Encounter::CardinalSabir, Boss::QadimThePeerless => Encounter::QadimThePeerless, + Boss::StandardKittyGolem => Encounter::StandardKittyGolem, + Boss::MediumKittyGolem => Encounter::MediumKittyGolem, + Boss::LargeKittyGolem => Encounter::LargeKittyGolem, Boss::Ai => Encounter::Ai, Boss::Skorvald => Encounter::Skorvald, Boss::Artsariiv => Encounter::Artsariiv, @@ -462,6 +490,10 @@ impl FromStr for Boss { "sabir" | "cardinal sabir" => Ok(Boss::CardinalSabir), "qadimp" | "peerless qadim" | "qadim the peerless" => Ok(Boss::QadimThePeerless), + "standard golem" | "standard kitty golem" => Ok(Boss::StandardKittyGolem), + "medium golem" | "medium kitty golem" => Ok(Boss::MediumKittyGolem), + "large golem" | "large kitty golem" => Ok(Boss::LargeKittyGolem), + "ai" | "ai keeper of the peak" => Ok(Boss::Ai), "skorvald" => Ok(Boss::Skorvald), @@ -508,6 +540,9 @@ impl Display for Boss { Boss::CardinalAdina => "Cardinal Adina", Boss::CardinalSabir => "Cardinal Sabir", Boss::QadimThePeerless => "Qadim the Peerless", + Boss::StandardKittyGolem => "Standard Kitty Golem", + Boss::MediumKittyGolem => "Medium Kitty Golem", + Boss::LargeKittyGolem => "Large Kitty Golem", Boss::Ai => "Ai Keeper of the Peak", Boss::Skorvald => "Skorvald the Shattered", Boss::Artsariiv => "Artsariiv", diff --git a/tests/logs/large-golem-20211112.zevtc b/tests/logs/large-golem-20211112.zevtc Binary files differnew file mode 100644 index 0000000..dc09b7b --- /dev/null +++ b/tests/logs/large-golem-20211112.zevtc diff --git a/tests/logs/medium-golem-20211112.zevtc b/tests/logs/medium-golem-20211112.zevtc Binary files differnew file mode 100644 index 0000000..2154991 --- /dev/null +++ b/tests/logs/medium-golem-20211112.zevtc diff --git a/tests/logs/standard-golem-20211112.zevtc b/tests/logs/standard-golem-20211112.zevtc Binary files differnew file mode 100644 index 0000000..199cf4f --- /dev/null +++ b/tests/logs/standard-golem-20211112.zevtc diff --git a/tests/parsing.rs b/tests/parsing.rs index 08922c9..3eb3a4b 100644 --- a/tests/parsing.rs +++ b/tests/parsing.rs @@ -393,6 +393,35 @@ test! { ], } +// Training area + +test! { + name: parse_standard_kitty_golem, + log: "logs/standard-golem-20211112.zevtc", + boss: Encounter::StandardKittyGolem, + players: &[ + (1, ":Dunje.4863", "Ai Higashi", Guardian, Some(Dragonhunter)), + ], +} + +test! { + name: parse_medium_kitty_golem, + log: "logs/medium-golem-20211112.zevtc", + boss: Encounter::MediumKittyGolem, + players: &[ + (1, ":Dunje.4863", "Ai Higashi", Guardian, Some(Dragonhunter)), + ], +} + +test! { + name: parse_large_kitty_golem, + log: "logs/large-golem-20211112.zevtc", + boss: Encounter::LargeKittyGolem, + players: &[ + (1, ":Dunje.4863", "Ai Higashi", Guardian, Some(Dragonhunter)), + ], +} + // 100 CM tests test! { |