immunities for initial skill ticks

This commit is contained in:
ntr 2019-12-11 18:19:45 +10:00
parent 424f1a2846
commit 21903cc27c
2 changed files with 30 additions and 4 deletions

View File

@ -722,6 +722,8 @@ impl Construct {
} }
pub fn healing(&mut self, amount: usize, colour: Colour) -> Vec<Event> { pub fn healing(&mut self, amount: usize, colour: Colour) -> Vec<Event> {
if self.is_ko() { return vec![Event::TargetKo { construct: self.id }] }
match colour { match colour {
Colour::Red => self.red_healing(amount), Colour::Red => self.red_healing(amount),
Colour::Blue => self.blue_healing(amount), Colour::Blue => self.blue_healing(amount),

View File

@ -363,6 +363,10 @@ impl Cast {
effect: ConstructEffect { effect: Effect::Decay, duration: 2, meta: effect: ConstructEffect { effect: Effect::Decay, duration: 2, meta:
Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTick }) }, Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTick }) },
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Decayed, duration: 1, meta: None }, // immunity to additional ticks
},
Action::Damage { Action::Damage {
construct: self.target, construct: self.target,
colour: Colour::Blue, colour: Colour::Blue,
@ -379,6 +383,10 @@ impl Cast {
effect: ConstructEffect { effect: Effect::Decay, duration: 4, meta: effect: ConstructEffect { effect: Effect::Decay, duration: 4, meta:
Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTickPlus }) }, Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTickPlus }) },
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Decayed, duration: 1, meta: None }, // immunity to additional ticks
},
Action::Damage { Action::Damage {
construct: self.target, construct: self.target,
colour: Colour::Blue, colour: Colour::Blue,
@ -395,6 +403,10 @@ impl Cast {
effect: ConstructEffect { effect: Effect::Decay, duration: 4, meta: effect: ConstructEffect { effect: Effect::Decay, duration: 4, meta:
Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTickPlusPlus }) }, Some(EffectMeta::CastTick { source: self.source, target: self.target, skill: Skill::DecayTickPlusPlus }) },
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Decayed, duration: 1, meta: None }, // immunity to additional ticks
},
Action::Damage { Action::Damage {
construct: self.target, construct: self.target,
colour: Colour::Blue, colour: Colour::Blue,
@ -787,15 +799,15 @@ impl Cast {
colour: Colour::Blue, colour: Colour::Blue,
values: vec![Value::Stat { construct: self.source, stat: Stat::BluePower, mult: self.skill.multiplier() }], values: vec![Value::Stat { construct: self.source, stat: Stat::BluePower, mult: self.skill.multiplier() }],
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Siphoned, duration: 1, meta: None }, // immunity to additional ticks
},
Action::Heal { Action::Heal {
construct: self.source, construct: self.source,
colour: Colour::Green, colour: Colour::Green,
values: vec![Value::DamageReceived { construct: self.target, colour: Colour::Blue, mult: 100 }], values: vec![Value::DamageReceived { construct: self.target, colour: Colour::Blue, mult: 100 }],
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Siphoned, duration: 1, meta: None }, // immunity to additional ticks
},
], ],
Skill::Slay | Skill::Slay |
@ -899,6 +911,10 @@ impl Cast {
colour: Colour::Green, colour: Colour::Green,
values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }], values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }],
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Triaged, duration: 1, meta: None },
},
], ],
Skill::TriagePlus => vec![ Skill::TriagePlus => vec![
Action::Effect { Action::Effect {
@ -911,6 +927,10 @@ impl Cast {
colour: Colour::Green, colour: Colour::Green,
values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }], values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }],
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Triaged, duration: 1, meta: None },
},
], ],
Skill::TriagePlusPlus => vec![ Skill::TriagePlusPlus => vec![
Action::Effect { Action::Effect {
@ -923,6 +943,10 @@ impl Cast {
colour: Colour::Green, colour: Colour::Green,
values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }], values: vec![Value::Stat { construct: self.source, stat: Stat::GreenPower, mult: self.skill.multiplier() }],
}, },
Action::Effect {
construct: self.target,
effect: ConstructEffect { effect: Effect::Triaged, duration: 1, meta: None },
},
], ],
Skill::TriageTick | Skill::TriageTick |
Skill::TriageTickPlus | Skill::TriageTickPlus |