From bcd89e24d0e2ab0288d67f5ad516b92e679a93a8 Mon Sep 17 00:00:00 2001 From: Mashy Date: Wed, 22 May 2019 13:50:57 +1000 Subject: [PATCH] starting to add disables --- server/src/skill.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/src/skill.rs b/server/src/skill.rs index d81d9aac..ce393921 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -547,6 +547,7 @@ impl Effect { #[derive(Debug,Clone,PartialEq,Serialize,Deserialize)] pub enum SkillEffect { Modifier {effect: Effect, multiplier: u64, duration: u8}, + Disable {effect: Effect, duration: u8}, } #[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)] @@ -695,6 +696,8 @@ impl Skill { pub fn effect(&self) -> SkillEffect { // Buff -> Effect, Multiplier, duration match self { + + // Modifiers Skill::Amplify => SkillEffect::Modifier {effect: Effect::Amplify, multiplier: 150, duration: 2}, Skill::Block => SkillEffect::Modifier {effect: Effect::Block, multiplier: 50, duration: 1}, Skill::Buff => SkillEffect::Modifier {effect: Effect::Buff, multiplier: 125, duration: 2}, @@ -705,6 +708,9 @@ impl Skill { Skill::Haste => SkillEffect::Modifier {effect: Effect::Haste, multiplier: 150, duration: 2}, Skill::Throw => SkillEffect::Modifier {effect: Effect::Vulnerable, multiplier: 150, duration: 3}, + // Disables + Skill::Stun => SkillEffect::Disable {effect: Effect::Stun, duration: 2}, + _ => { panic!("no skill effect"); }, @@ -713,7 +719,6 @@ impl Skill { pub fn duration(&self) -> u8 { match self { - Skill::Block => 1, Skill::Parry => 2, Skill::Clutch => 1, Skill::Reflect => 1, @@ -992,6 +997,10 @@ fn apply_modifier(skill: Skill, source: &mut Cryp, target: &mut Cryp) -> Resolut .set_meta(EffectMeta::Multiplier(multiplier)); return Resolution::new(source, target).event(target.add_effect(skill, crypEffect)); } + SkillEffect::Disable { effect, duration } => { + let crypEffect = CrypEffect::new(effect, duration); + return Resolution::new(source, target).event(target.add_effect(skill, crypEffect)); + } } }