aboutsummaryrefslogtreecommitdiff
path: root/src/statistics/gamedata.rs
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2018-06-14 17:26:23 +0200
committerDaniel Schadt <kingdread@gmx.de>2018-06-14 17:26:23 +0200
commit9f6f3db682ab927fef4f1399d13c4cfc91313f82 (patch)
treebef44f963e1822b837049fe87642609948243578 /src/statistics/gamedata.rs
parentaac51cfaf15659e9447a79032dea5c05e0441709 (diff)
downloadevtclib-9f6f3db682ab927fef4f1399d13c4cfc91313f82.tar.gz
evtclib-9f6f3db682ab927fef4f1399d13c4cfc91313f82.tar.bz2
evtclib-9f6f3db682ab927fef4f1399d13c4cfc91313f82.zip
deal with multiple boss agents
Exemplary done with Xera.
Diffstat (limited to 'src/statistics/gamedata.rs')
-rw-r--r--src/statistics/gamedata.rs25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/statistics/gamedata.rs b/src/statistics/gamedata.rs
index ea1be39..1b5fec6 100644
--- a/src/statistics/gamedata.rs
+++ b/src/statistics/gamedata.rs
@@ -5,9 +5,24 @@ use super::boon::{BoonQueue, BoonType};
/// Enum containing all bosses with their IDs.
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Boss {
- ValeGuardian = 15483,
+ ValeGuardian = 0x3C4E,
+
+ /// Xera ID for phase 1.
+ ///
+ /// This is only half of Xera's ID, as there will be a second agent for the
+ /// second phase. This agent will have another ID, see
+ /// [`XERA_PHASE2_ID`](constant.XERA_PHASE2_ID.html).
+ Xera = 0x3F76,
}
+/// ID for Xera in the second phase.
+///
+/// The original Xera will despawn, and after the tower phase, a separate spawn
+/// will take over. This new Xera will have this ID. Care needs to be taken when
+/// calculating boss damage on this encounter, as both Xeras have to be taken
+/// into account.
+pub const XERA_PHASE2_ID: u16 = 0x3F9E;
+
/// Contains a boon.
///
/// Fields:
@@ -103,11 +118,9 @@ macro_rules! mechanics {
}
/// A slice of all mechanics that we know about.
-pub static MECHANICS: &[Mechanic] = &[
- mechanics! { Boss::ValeGuardian => [
- "Unstable Magic Spike" => Trigger::SkillOnPlayer(31860),
- ]},
-];
+pub static MECHANICS: &[Mechanic] = &[mechanics! { Boss::ValeGuardian => [
+ "Unstable Magic Spike" => Trigger::SkillOnPlayer(31860),
+]}];
/// Get all mechanics that belong to the given boss.
pub fn get_mechanics(boss_id: u16) -> Vec<&'static Mechanic> {