starting to add disables

This commit is contained in:
Mashy 2019-05-22 13:50:57 +10:00
parent 9cac638d59
commit bcd89e24d0

View File

@ -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));
}
}
}