From a0259006394fe579be13dff98b17664fec63f9a2 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 17 Apr 2019 13:05:14 +1000 Subject: [PATCH] simplify debuffs and buffs --- server/src/skill.rs | 107 ++++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/server/src/skill.rs b/server/src/skill.rs index d7c23f8b..52c777f8 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -374,56 +374,56 @@ impl Effect { pub fn category(&self) -> Category { match self { // physical - Effect::Stun => Category::RedDebuff, - Effect::Block => Category::RedBuff, - Effect::Parry => Category::RedBuff, - Effect::Bleed => Category::RedDebuff, - Effect::Leech => Category::RedDebuff, - Effect::Airborne => Category::RedDebuff, - Effect::Untouchable => Category::RedBuff, - Effect::Deadly => Category::RedBuff, - Effect::Vulnerable => Category::RedDebuff, - Effect::Fury => Category::RedBuff, - Effect::Blind => Category::RedDebuff, - Effect::Snare => Category::RedDebuff, - Effect::Clutch => Category::RedBuff, - Effect::Taunt => Category::RedBuff, - Effect::Empower => Category::RedBuff, - Effect::Injured => Category::RedDebuff, - Effect::Strangle => Category::RedDebuff, - Effect::Strangling => Category::RedBuff, + Effect::Stun => Category::Debuff, + Effect::Block => Category::Buff, + Effect::Parry => Category::Buff, + Effect::Bleed => Category::Debuff, + Effect::Leech => Category::Debuff, + Effect::Airborne => Category::Debuff, + Effect::Untouchable => Category::Buff, + Effect::Deadly => Category::Buff, + Effect::Vulnerable => Category::Debuff, + Effect::Fury => Category::Buff, + Effect::Blind => Category::Debuff, + Effect::Snare => Category::Debuff, + Effect::Clutch => Category::Buff, + Effect::Taunt => Category::Buff, + Effect::Empower => Category::Buff, + Effect::Injured => Category::Debuff, + Effect::Strangle => Category::Debuff, + Effect::Strangling => Category::Buff, // magic - Effect::Hex => Category::BlueDebuff, - Effect::Ruin => Category::BlueDebuff, - Effect::Curse => Category::BlueDebuff, - Effect::Banish => Category::BlueDebuff, // todo randomise - Effect::Slow => Category::BlueDebuff, - Effect::Haste => Category::BlueBuff, - Effect::Hatred => Category::BlueBuff, - Effect::Reflect => Category::BlueBuff, - Effect::Enslave => Category::BlueDebuff, - Effect::Mesmerise => Category::BlueDebuff, - Effect::Amplify => Category::BlueBuff, - Effect::Silence => Category::BlueDebuff, + Effect::Hex => Category::Debuff, + Effect::Ruin => Category::Debuff, + Effect::Curse => Category::Debuff, + Effect::Banish => Category::Debuff, // todo randomise + Effect::Slow => Category::Debuff, + Effect::Haste => Category::Buff, + Effect::Hatred => Category::Buff, + Effect::Reflect => Category::Buff, + Effect::Enslave => Category::Debuff, + Effect::Mesmerise => Category::Debuff, + Effect::Amplify => Category::Buff, + Effect::Silence => Category::Debuff, - Effect::Corrupt => Category::BlueBuff, - Effect::Corruption => Category::BlueDebuff, + Effect::Corrupt => Category::Buff, + Effect::Corruption => Category::Debuff, - Effect::Hostility => Category::BlueBuff, + Effect::Hostility => Category::Buff, // magic immunity - Effect::Shield => Category::BlueBuff, - Effect::Invert => Category::GreenBuff, + Effect::Shield => Category::Buff, + Effect::Invert => Category::Buff, // effects over time - Effect::Triage => Category::BlueBuff, - Effect::Decay => Category::BlueDebuff, - Effect::Regen => Category::BlueBuff, - Effect::Siphon => Category::BlueDebuff, + Effect::Triage => Category::Buff, + Effect::Decay => Category::Debuff, + Effect::Regen => Category::Buff, + Effect::Siphon => Category::Debuff, - Effect::SpeedSiphon => Category::BlueDebuff, - Effect::SpeedIncrease => Category::BlueBuff, + Effect::SpeedSiphon => Category::Debuff, + Effect::SpeedIncrease => Category::Buff, Effect::Ko => Category::Ko, } @@ -485,19 +485,20 @@ impl Effect { #[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)] pub enum Category { Red, - RedDamage, - RedDebuff, - RedBuff, - RedTick, Blue, - BlueDamage, - BlueDebuff, - BlueBuff, - BlueTick, Green, - GreenTick, + + RedDamage, + BlueDamage, GreenDamage, - GreenBuff, + + RedTick, + BlueTick, + GreenTick, + + Buff, + Debuff, + Ko, } @@ -1088,7 +1089,7 @@ fn silence(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Re fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions { while let Some(i) = target.effects .iter() - .position(|ce| [Category::BlueBuff, Category::RedBuff].contains(&ce.effect.category())) { + .position(|ce| [Category::Buff, Category::Buff].contains(&ce.effect.category())) { let ce = target.effects.remove(i); results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect })); } @@ -1099,7 +1100,7 @@ fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Reso fn purify(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions { while let Some(i) = target.effects .iter() - .position(|ce| [Category::BlueDebuff, Category::RedDebuff].contains(&ce.effect.category())) { + .position(|ce| [Category::Debuff, Category::Debuff].contains(&ce.effect.category())) { let ce = target.effects.remove(i); results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect })); }