Purify heals for each debuff removed, switched reflect & purify vbox spot

This commit is contained in:
Mashy
2019-05-03 10:01:01 +10:00
parent 18c8016908
commit d04203066f
5 changed files with 60 additions and 10 deletions
+4
View File
@@ -522,6 +522,10 @@ impl Game {
self.log.push(format!("[{:}] {:} {:?} {:} {:?} {:}T",
speed, source.name, skill, target.name, effect, duration)),
Event::Skill { skill } =>
self.log.push(format!("[{:}] {:} {:?} {:}",
speed, source.name, skill, target.name)),
Event::Removal { effect } =>
self.log.push(format!("[{:}] {:?} removed {:} {:?}",
speed, source.name, target.name, effect)),
+13 -2
View File
@@ -203,12 +203,14 @@ pub enum Event {
Inversion { skill: Skill },
Reflection { skill: Skill },
Effect { skill: Skill, effect: Effect, duration: u8 },
Skill { skill: Skill },
Removal { effect: Effect },
Evasion { skill: Skill, evasion_rating: u64 },
TargetKo { skill: Skill },
// skill not necessary but makes it neater as all events are arrays in js
Ko { skill: Skill },
Incomplete,
// not used
Evasion { skill: Skill, evasion_rating: u64 },
}
type Resolutions = Vec<Resolution>;
@@ -553,12 +555,16 @@ impl Skill {
Skill::Attack => 100, // 1.0 to pass tests
Skill::Blast => 130, // BB
Skill::Chaos => 50, // BR
Skill::Heal => 120, //GG 1.0 to pass tests
Skill::Heal => 120, //GG
Skill::Slay => 70, // RG
Skill::Strike => 110, //RR
Skill::StrikeII => 130,
Skill::StrikeIII => 150,
// Block Base
Skill::Purify => 45, //Green dmg (heal)
// Others
Skill::CorruptionTick => 80,
Skill::DecayTick => 25,
@@ -1191,11 +1197,16 @@ fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
}
fn purify(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
results.push(Resolution::new(source, target).event(Event::Skill { skill }));
let amount = source.green_damage().pct(skill.multiplier());
while let Some(i) = target.effects
.iter()
.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 }));
target.deal_green_damage(skill, amount)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
}
return results;
+2 -2
View File
@@ -363,10 +363,10 @@ fn get_combos() -> Vec<Combo> {
Combo { units: vec![Var::Debuff, Var::Red, Var::Blue], var: Var::Invert },
Combo { units: vec![Var::Block, Var::Red, Var::Red], var: Var::Parry },
Combo { units: vec![Var::Block, Var::Green, Var::Green], var: Var::Reflect },
Combo { units: vec![Var::Block, Var::Green, Var::Green], var: Var::Purify },
Combo { units: vec![Var::Block, Var::Blue, Var::Blue], var: Var::Corrupt },
Combo { units: vec![Var::Block, Var::Red, Var::Green], var: Var::Taunt },
Combo { units: vec![Var::Block, Var::Green, Var::Blue], var: Var::Purify },
Combo { units: vec![Var::Block, Var::Green, Var::Blue], var: Var::Reflect },
Combo { units: vec![Var::Block, Var::Red, Var::Blue], var: Var::Recharge },
Combo { units: vec![Var::Stun, Var::Red, Var::Red], var: Var::Strangle },