aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--src/analyzers/mod.rs4
-rw-r--r--src/gamedata.rs35
-rw-r--r--tests/logs/large-golem-20211112.zevtcbin0 -> 16717 bytes
-rw-r--r--tests/logs/medium-golem-20211112.zevtcbin0 -> 16060 bytes
-rw-r--r--tests/logs/standard-golem-20211112.zevtcbin0 -> 25757 bytes
-rw-r--r--tests/parsing.rs29
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
new file mode 100644
index 0000000..dc09b7b
--- /dev/null
+++ b/tests/logs/large-golem-20211112.zevtc
Binary files differ
diff --git a/tests/logs/medium-golem-20211112.zevtc b/tests/logs/medium-golem-20211112.zevtc
new file mode 100644
index 0000000..2154991
--- /dev/null
+++ b/tests/logs/medium-golem-20211112.zevtc
Binary files differ
diff --git a/tests/logs/standard-golem-20211112.zevtc b/tests/logs/standard-golem-20211112.zevtc
new file mode 100644
index 0000000..199cf4f
--- /dev/null
+++ b/tests/logs/standard-golem-20211112.zevtc
Binary files differ
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! {