Rework recharge, reflect recharges blue life
This commit is contained in:
+19
-6
@@ -470,6 +470,14 @@ impl Cryp {
|
||||
.fold(self.speed.value, |acc, fx| fx.0.apply(acc, fx.1));
|
||||
return modified_speed;
|
||||
}
|
||||
|
||||
pub fn red_life(&self) -> u64 {
|
||||
self.red_life.value
|
||||
}
|
||||
|
||||
pub fn blue_life(&self) -> u64 {
|
||||
self.blue_life.value
|
||||
}
|
||||
|
||||
pub fn green_life(&self) -> u64 {
|
||||
self.green_life.value
|
||||
@@ -482,8 +490,8 @@ impl Cryp {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn recharge(&mut self) -> Event {
|
||||
let skill = Skill::Recharge;
|
||||
pub fn recharge(&mut self, skill: Skill, red_amount: u64, blue_amount: u64) -> Event {
|
||||
// Should red type immunity block recharge???
|
||||
if let Some(immunity) = self.immune(skill) {
|
||||
return Event::Immunity {
|
||||
skill,
|
||||
@@ -491,11 +499,16 @@ impl Cryp {
|
||||
};
|
||||
}
|
||||
|
||||
let red = self.red_life.max.saturating_sub(self.red_life.value);
|
||||
self.red_life.value = self.red_life.max;
|
||||
// Do we need inversion?
|
||||
let current_red_life = self.red_life();
|
||||
self.red_life.increase(red_amount);
|
||||
let new_red_life = self.red_life.value;
|
||||
let red = new_red_life - current_red_life;
|
||||
|
||||
let blue = self.blue_life.max.saturating_sub(self.blue_life.value);
|
||||
self.blue_life.value = self.blue_life.max;
|
||||
let current_blue_life = self.blue_life();
|
||||
self.blue_life.increase(blue_amount);
|
||||
let new_blue_life = self.blue_life.value;
|
||||
let blue = new_blue_life - current_blue_life;
|
||||
|
||||
Event::Recharge { red, blue, skill }
|
||||
}
|
||||
|
||||
+10
-1
@@ -565,6 +565,8 @@ impl Skill {
|
||||
|
||||
// Block Base
|
||||
Skill::Purify => 45, //Green dmg (heal)
|
||||
Skill::Recharge => 85, //restore red and blue life (heal)
|
||||
Skill::Reflect => 45, //restore blue life (heal)
|
||||
|
||||
// Stun Base
|
||||
Skill::Sleep => 240, //Green dmg (heal)
|
||||
@@ -1156,11 +1158,18 @@ fn invert(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
|
||||
fn reflect(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
let effect = CrypEffect::new(Effect::Reflect, skill.duration());
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
||||
|
||||
let blue_amount = source.blue_damage().pct(skill.multiplier());
|
||||
results.push(Resolution::new(source, target).event(target.recharge(skill, 0, blue_amount)));
|
||||
|
||||
return results;;
|
||||
}
|
||||
|
||||
fn recharge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
results.push(Resolution::new(source, target).event(target.recharge()));
|
||||
let red_amount = source.red_damage().pct(skill.multiplier());
|
||||
let blue_amount = source.blue_damage().pct(skill.multiplier());
|
||||
|
||||
results.push(Resolution::new(source, target).event(target.recharge(skill, red_amount, blue_amount)));
|
||||
return results;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -358,9 +358,9 @@ fn get_combos() -> Vec<Combo> {
|
||||
Combo { units: vec![Var::Buff, Var::Green, Var::Blue], var: Var::Curse }, // Needs a buff
|
||||
Combo { units: vec![Var::Buff, Var::Red, Var::Blue], var: Var::Haste }, // Needs a buff
|
||||
|
||||
Combo { units: vec![Var::Debuff, Var::Red, Var::Red], var: Var::Snare },
|
||||
Combo { units: vec![Var::Debuff, Var::Red, Var::Red], var: Var::Snare }, // Dmg for disabled red
|
||||
Combo { units: vec![Var::Debuff, Var::Green, Var::Green], var: Var::Purge }, // Needs a buff
|
||||
Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence },
|
||||
Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence }, // Dmg for disabled blue
|
||||
Combo { units: vec![Var::Debuff, Var::Red, Var::Green], var: Var::Slow }, // Needs a buff
|
||||
Combo { units: vec![Var::Debuff, Var::Green, Var::Blue], var: Var::Decay },
|
||||
Combo { units: vec![Var::Debuff, Var::Red, Var::Blue], var: Var::Invert },
|
||||
|
||||
Reference in New Issue
Block a user