Purify heals for each debuff removed, switched reflect & purify vbox spot
This commit is contained in:
@@ -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
@@ -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
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user