Haste and impurity deal an extra attack
This commit is contained in:
parent
7913de7eb9
commit
50bc93073b
@ -25,6 +25,35 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
return resolve(skill, target, source, resolutions);
|
return resolve(skill, target, source, resolutions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if source.affected(Effect::Haste) {
|
||||||
|
match skill {
|
||||||
|
Skill::Attack |
|
||||||
|
Skill::Slay |
|
||||||
|
Skill::Chaos |
|
||||||
|
Skill::Strike => {
|
||||||
|
let amount = source.speed().pct(Skill::HasteStrike.multiplier());
|
||||||
|
target.deal_red_damage(Skill::HasteStrike, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| resolutions.push(Resolution::new(source, target).event(e)));
|
||||||
|
},
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if source.affected(Effect::Impurity) {
|
||||||
|
match skill {
|
||||||
|
Skill::Blast |
|
||||||
|
Skill::Chaos |
|
||||||
|
Skill::Siphon => {
|
||||||
|
let amount = source.green_damage().pct(Skill::ImpureBlast.multiplier());
|
||||||
|
target.deal_blue_damage(Skill::ImpureBlast, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| resolutions.push(Resolution::new(source, target).event(e)));
|
||||||
|
},
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// match self.category() == Category::Red {
|
// match self.category() == Category::Red {
|
||||||
// true => {
|
// true => {
|
||||||
// if let Some(evasion) = target.evade(*self) {
|
// if let Some(evasion) = target.evade(*self) {
|
||||||
@ -49,10 +78,12 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::Decay => decay(source, target, resolutions, skill), // dot
|
Skill::Decay => decay(source, target, resolutions, skill), // dot
|
||||||
Skill::DecayTick => decay_tick(source, target, resolutions, skill), // dot
|
Skill::DecayTick => decay_tick(source, target, resolutions, skill), // dot
|
||||||
Skill::Haste => haste(source, target, resolutions, skill), // speed slow
|
Skill::Haste => haste(source, target, resolutions, skill), // speed slow
|
||||||
|
Skill::HasteStrike => panic!("haste strike should not be caste"),
|
||||||
Skill::Heal => heal(source, target, resolutions, skill),
|
Skill::Heal => heal(source, target, resolutions, skill),
|
||||||
Skill::Hex => hex(source, target, resolutions, skill),
|
Skill::Hex => hex(source, target, resolutions, skill),
|
||||||
Skill::Hostility => hostility(source, target, resolutions, skill),
|
Skill::Hostility => hostility(source, target, resolutions, skill),
|
||||||
Skill::Impurity => impurity(source, target, resolutions, skill),
|
Skill::Impurity => impurity(source, target, resolutions, skill),
|
||||||
|
Skill::ImpureBlast => panic!("impure blast should not be caste"),
|
||||||
Skill::Invert => invert(source, target, resolutions, skill),
|
Skill::Invert => invert(source, target, resolutions, skill),
|
||||||
Skill::Injure => injure(source, target, resolutions, skill),
|
Skill::Injure => injure(source, target, resolutions, skill),
|
||||||
Skill::Parry => parry(source, target, resolutions, skill),
|
Skill::Parry => parry(source, target, resolutions, skill),
|
||||||
@ -481,6 +512,7 @@ pub enum Skill {
|
|||||||
Clutch,
|
Clutch,
|
||||||
Taunt,
|
Taunt,
|
||||||
Impurity,
|
Impurity,
|
||||||
|
ImpureBlast,
|
||||||
Invert,
|
Invert,
|
||||||
|
|
||||||
Strangle,
|
Strangle,
|
||||||
@ -535,6 +567,7 @@ pub enum Skill {
|
|||||||
Chaos,
|
Chaos,
|
||||||
Hex,
|
Hex,
|
||||||
Haste,
|
Haste,
|
||||||
|
HasteStrike,
|
||||||
Slow,
|
Slow,
|
||||||
|
|
||||||
// used by tests, no cd, 100% multiplier
|
// used by tests, no cd, 100% multiplier
|
||||||
@ -557,28 +590,31 @@ impl Skill {
|
|||||||
Skill::Heal => 130, //GG
|
Skill::Heal => 130, //GG
|
||||||
Skill::SiphonTick => 40, // GB
|
Skill::SiphonTick => 40, // GB
|
||||||
Skill::Slay => 70, // RG
|
Skill::Slay => 70, // RG
|
||||||
|
|
||||||
Skill::Strike => 90, //RR
|
Skill::Strike => 90, //RR
|
||||||
Skill::StrikeII => 110,
|
Skill::StrikeII => 110,
|
||||||
Skill::StrikeIII => 130,
|
Skill::StrikeIII => 130,
|
||||||
|
|
||||||
// Block Base
|
// Block Base
|
||||||
|
Skill::CorruptionTick => 80,
|
||||||
Skill::Purify => 45, //Green dmg (heal)
|
Skill::Purify => 45, //Green dmg (heal)
|
||||||
Skill::Recharge => 85, //restore red and blue life (heal)
|
Skill::Recharge => 85, //restore red and blue life (heal)
|
||||||
Skill::Reflect => 45, //restore blue life (heal)
|
Skill::Reflect => 45, //restore blue life (heal)
|
||||||
|
Skill::Riposte => 70,
|
||||||
|
|
||||||
// Stun Base
|
// Stun Base
|
||||||
Skill::Sleep => 240, //Green dmg (heal)
|
Skill::Sleep => 240, //Green dmg (heal)
|
||||||
Skill::StrangleTick => 65,
|
Skill::StrangleTick => 65,
|
||||||
|
|
||||||
// Debuff Base
|
// Debuff Base
|
||||||
Skill::Silence => 55, // Deals more per blue skill on target
|
Skill::Silence => 55, // Deals more per blue skill on target
|
||||||
Skill::Snare => 40, // Deals more per red skill on target
|
Skill::Snare => 40, // Deals more per red skill on target
|
||||||
|
Skill::DecayTick => 25,
|
||||||
|
|
||||||
// Buff base
|
// Buff base
|
||||||
|
Skill::ImpureBlast => 25,
|
||||||
|
Skill::HasteStrike => 30,
|
||||||
Skill::TriageTick => 75,
|
Skill::TriageTick => 75,
|
||||||
// Others
|
|
||||||
Skill::CorruptionTick => 80,
|
|
||||||
Skill::DecayTick => 25,
|
|
||||||
Skill::Riposte => 70,
|
|
||||||
|
|
||||||
_ => 100,
|
_ => 100,
|
||||||
}
|
}
|
||||||
@ -666,7 +702,8 @@ impl Skill {
|
|||||||
Skill::Blast => None,
|
Skill::Blast => None,
|
||||||
Skill::Chaos => None,
|
Skill::Chaos => None,
|
||||||
Skill::Amplify => Some(1),
|
Skill::Amplify => Some(1),
|
||||||
Skill::Impurity => Some(3),
|
Skill::Impurity => None,
|
||||||
|
Skill::ImpureBlast => None,
|
||||||
Skill::Invert => Some(2),
|
Skill::Invert => Some(2),
|
||||||
Skill::Decay => Some(1), // dot
|
Skill::Decay => Some(1), // dot
|
||||||
Skill::DecayTick => None,
|
Skill::DecayTick => None,
|
||||||
@ -680,6 +717,8 @@ impl Skill {
|
|||||||
Skill::Banish => Some(1),
|
Skill::Banish => Some(1),
|
||||||
Skill::Hex => Some(1),
|
Skill::Hex => Some(1),
|
||||||
Skill::Haste => None,
|
Skill::Haste => None,
|
||||||
|
Skill::HasteStrike => None, // Used in haste
|
||||||
|
|
||||||
Skill::Slow => None,
|
Skill::Slow => None,
|
||||||
Skill::Reflect => Some(2),
|
Skill::Reflect => Some(2),
|
||||||
Skill::Recharge => Some(2),
|
Skill::Recharge => Some(2),
|
||||||
@ -728,6 +767,7 @@ impl Skill {
|
|||||||
Skill::Stun => Category::Red,
|
Skill::Stun => Category::Red,
|
||||||
Skill::Slay => Category::Red,
|
Skill::Slay => Category::Red,
|
||||||
Skill::Taunt => Category::Red,
|
Skill::Taunt => Category::Red,
|
||||||
|
Skill::HasteStrike => Category::Red,
|
||||||
|
|
||||||
Skill::Heal => Category::Green,
|
Skill::Heal => Category::Green,
|
||||||
Skill::Triage => Category::Green, // hot
|
Skill::Triage => Category::Green, // hot
|
||||||
@ -741,6 +781,7 @@ impl Skill {
|
|||||||
Skill::Invert => Category::Green,
|
Skill::Invert => Category::Green,
|
||||||
Skill::Sleep => Category::Green,
|
Skill::Sleep => Category::Green,
|
||||||
|
|
||||||
|
Skill::ImpureBlast => Category::Blue,
|
||||||
Skill::Scatter => Category::Blue,
|
Skill::Scatter => Category::Blue,
|
||||||
Skill::Blast => Category::Blue,
|
Skill::Blast => Category::Blue,
|
||||||
Skill::Chaos => Category::Blue,
|
Skill::Chaos => Category::Blue,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user