diff --git a/server/src/item.rs b/server/src/item.rs index 5e5ffb81..138b4b2d 100644 --- a/server/src/item.rs +++ b/server/src/item.rs @@ -69,7 +69,9 @@ pub enum Item { HealI, HealII, HealIII, - Hex, + HexI, + HexII, + HexIII, Impurity, Invert, Parry, @@ -216,7 +218,9 @@ impl Item { Item::HealI => Some(Skill::HealI), Item::HealII => Some(Skill::HealII), Item::HealIII => Some(Skill::HealIII), - Item::Hex => Some(Skill::Hex), + Item::HexI => Some(Skill::HexI), + Item::HexII => Some(Skill::HexII), + Item::HexIII => Some(Skill::HexIII), Item::Hostility => Some(Skill::Hostility), Item::Impurity => Some(Skill::Impurity), Item::Invert => Some(Skill::Invert), @@ -405,7 +409,9 @@ impl Item { Item::HealII | Item::HealIII => format!("Heals for {:?}% green power.", self.into_skill().unwrap().multiplier()), - Item::Hex => format!("Blue based skill that applies Hex for {:?}T. \ + Item::HexI | + Item::HexII | + Item::HexIII => format!("Blue based skill that applies Hex for {:?}T. \ Hexed targets cannot cast any skills.", self.into_skill().unwrap().effect().first().unwrap().get_duration()), @@ -542,7 +548,9 @@ impl Item { Item::Sleep => vec![Item::Stun, Item::Green, Item::Green], Item::Ruin => vec![Item::Stun, Item::Blue, Item::Blue], Item::Throw => vec![Item::Stun, Item::Red, Item::Green], - Item::Hex => vec![Item::Stun, Item::Green, Item::Blue], + Item::HexI => vec![Item::Stun, Item::Green, Item::Blue], + Item::HexII => vec![Item::HexI, Item::HexI, Item::HexI], + Item::HexIII => vec![Item::HexII, Item::HexII, Item::HexII], Item::Banish => vec![Item::Stun, Item::Red, Item::Blue], Item::StrikeI => vec![Item::Attack, Item::Red, Item::Red], @@ -615,7 +623,9 @@ impl From for Item { Skill::HealI => Item::HealI, Skill::HealII => Item::HealII, Skill::HealIII => Item::HealIII, - Skill::Hex => Item::Hex, + Skill::HexI => Item::HexI, + Skill::HexII => Item::HexII, + Skill::HexIII => Item::HexIII, Skill::Impurity => Item::Impurity, Skill::Invert => Item::Invert, Skill::Parry => Item::Parry, @@ -727,7 +737,9 @@ pub fn get_combos() -> Vec { Combo { components: Item::Sleep.combo(), item: Item::Sleep }, Combo { components: Item::Ruin.combo(), item: Item::Ruin }, Combo { components: Item::Throw.combo(), item: Item::Throw }, - Combo { components: Item::Hex.combo(), item: Item::Hex }, + Combo { components: Item::HexI.combo(), item: Item::HexI }, + Combo { components: Item::HexII.combo(), item: Item::HexII }, + Combo { components: Item::HexIII.combo(), item: Item::HexIII }, Combo { components: Item::Banish.combo(), item: Item::Banish }, Combo { components: Item::StrikeI.combo(), item: Item::StrikeI }, diff --git a/server/src/skill.rs b/server/src/skill.rs index 256d38e8..7c62819d 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -583,7 +583,9 @@ pub enum Skill { HealI, HealII, HealIII, - Hex, + HexI, + HexII, + HexIII, Hostility, ImpureBlast, Impurity, @@ -774,7 +776,8 @@ impl Skill { Skill::Purge => None, Skill::Banish => Some(1), Skill::HexI => Some(1), - Skill::HexII => Some(1), + Skill::HexII => Some(2), + Skill::HexIII => Some(2), Skill::Haste => Some(2), Skill::HasteStrike => None, // Used in haste @@ -1485,7 +1488,7 @@ mod tests { clutch(&mut y.clone(), &mut y, vec![], Skill::ClutchI); assert!(y.affected(Effect::Clutch)); - let mut results = hex(&mut x, &mut y, vec![], Skill::Hex); + let mut results = hex(&mut x, &mut y, vec![], Skill::HexI); let Resolution { source: _, target: _, event } = results.remove(0); match event { Event::Immunity { skill: _, immunity } => assert!(immunity.contains(&Effect::Clutch)),