added scaling damage to silence and snare

This commit is contained in:
Mashy 2019-05-03 16:31:15 +10:00
parent ed6b69877a
commit 0373b607cf
5 changed files with 61 additions and 11 deletions

View File

@ -35,13 +35,27 @@ This project adheres to [Semantic Versioning](http://semver.org/).
Now restores Red life and Blue life based on respective red and blue damage Now restores Red life and Blue life based on respective red and blue damage
Recharge value calculated at 85% multiplier with red and blue damage Recharge value calculated at 85% multiplier with red and blue damage
Silence
No longer Stun + GB (already exists as debuff BB)
Now also deals damage amount of 55% base blue damage
This damage amount does 45% more damage per blue skill blocked
Maximum = (0.55)(1.35)*base_blue_damage
Cooldown changed 1T -> 2T
Debuff duration increased 2T -> 3T
Snare
Now also deals damage amount of 40% base blue damage
This damage amount does 45% more damage per red skill blocked
Maximum = (0.40)(1.35)*base_red_damage
Cooldown changed 1T -> 2T
Debuff duration increased 2T -> 3T
Switch clutch with taunt Switch clutch with taunt
Clutch now GR + Block (was GR + Buff) Clutch now GR + Block (was GR + Buff)
Taunt now GR + Buff Taunt now GR + Buff
No longer self-target only No longer self-target only
Silence no longer Stun + GB (already exists as debuff BB)
Hex is now Stun + GB (was Stun + RB) Hex is now Stun + GB (was Stun + RB)
Banish is now Stun + RB (was Stun + RG) for rng theme Banish is now Stun + RB (was Stun + RG) for rng theme
Throw is now Stun + RG (was Stun + GG) Throw is now Stun + RG (was Stun + GG)

0
WORKLOG.md Normal file → Executable file
View File

View File

@ -239,7 +239,9 @@ function getCombatSequence(event) {
&& event[1].skill === 'Decay' && event[1].effect === 'Wither') return ['POST_SKILL']; && event[1].skill === 'Decay' && event[1].effect === 'Wither') return ['POST_SKILL'];
if (['Damage'].includes(event[0]) if (['Damage'].includes(event[0])
&& event[1].skill === 'Chaos' && event[1].colour === 'RedDamage') return ['POST_SKILL']; && ((event[1].skill === 'Chaos' && event[1].colour === 'RedDamage')
|| event[1].skill === 'Silence'
|| event[1].skill === 'Snare')) return ['POST_SKILL'];
if (['Ko'].includes(event[0]) if (['Ko'].includes(event[0])
|| (event[1].skill === 'Throw' && event[1].effect === 'Vulnerable')) return ['POST_SKILL']; || (event[1].skill === 'Throw' && event[1].effect === 'Vulnerable')) return ['POST_SKILL'];

View File

@ -570,6 +570,11 @@ impl Skill {
// Stun Base // Stun Base
Skill::Sleep => 240, //Green dmg (heal) Skill::Sleep => 240, //Green dmg (heal)
// Debuff Base
Skill::Silence => 55, // Deals more per blue skill on target
Skill::Snare => 40, // Deals more per blue skill on target
// Others // Others
Skill::CorruptionTick => 80, Skill::CorruptionTick => 80,
Skill::DecayTick => 25, Skill::DecayTick => 25,
@ -597,7 +602,7 @@ impl Skill {
Skill::Sleep => 3, Skill::Sleep => 3,
Skill::Throw => 2, Skill::Throw => 2,
Skill::Snare => 2, Skill::Snare => 3,
Skill::Taunt => 1, Skill::Taunt => 1,
Skill::Empower => 2, Skill::Empower => 2,
@ -612,7 +617,7 @@ impl Skill {
Skill::Haste => 2, Skill::Haste => 2,
Skill::Amplify => 2, Skill::Amplify => 2,
Skill::Silence => 2, Skill::Silence => 3,
Skill::Hostility => 2, // Primary Buff Skill::Hostility => 2, // Primary Buff
Skill::Corrupt => 2, // Primary Buff Skill::Corrupt => 2, // Primary Buff
@ -654,7 +659,7 @@ impl Skill {
Skill::Block => None, // reduce damage Skill::Block => None, // reduce damage
Skill::Parry => None, // avoid all damage Skill::Parry => None, // avoid all damage
Skill::Riposte => None, // used on parry Skill::Riposte => None, // used on parry
Skill::Snare => Some(1), Skill::Snare => Some(2),
Skill::Stun => Some(1), Skill::Stun => Some(1),
Skill::Heal => None, Skill::Heal => None,
Skill::Triage => None, // hot Skill::Triage => None, // hot
@ -671,7 +676,7 @@ impl Skill {
Skill::Curse => Some(1), Skill::Curse => Some(1),
Skill::Empower => Some(1), Skill::Empower => Some(1),
Skill::Shield => None, Skill::Shield => None,
Skill::Silence => Some(1), Skill::Silence => Some(2),
Skill::Purify => None, Skill::Purify => None,
Skill::Purge => None, Skill::Purge => None,
Skill::Banish => Some(1), Skill::Banish => Some(1),
@ -980,6 +985,21 @@ fn riposte(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill
fn snare(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions { fn snare(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
let snare = CrypEffect::new(Effect::Snare, skill.duration()); let snare = CrypEffect::new(Effect::Snare, skill.duration());
results.push(Resolution::new(source, target).event(target.add_effect(skill, snare))); results.push(Resolution::new(source, target).event(target.add_effect(skill, snare)));
let mut s_multi: u64 = 100;
for cs in target.skills.iter() {
s_multi += match cs.skill.category() {
Category::Red => 45,
_ => 0,
}
}
let amount = source.red_damage().pct(skill.multiplier()).pct(s_multi);
target.deal_red_damage(skill, amount)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
return results; return results;
} }
@ -1210,6 +1230,20 @@ fn shield(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
fn silence(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions { fn silence(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
let silence = CrypEffect::new(Effect::Silence, skill.duration()); let silence = CrypEffect::new(Effect::Silence, skill.duration());
results.push(Resolution::new(source, target).event(target.add_effect(skill, silence))); results.push(Resolution::new(source, target).event(target.add_effect(skill, silence)));
let mut s_multi: u64 = 100;
for cs in target.skills.iter() {
s_multi += match cs.skill.category() {
Category::Blue => 45,
_ => 0,
}
}
let amount = source.blue_damage().pct(skill.multiplier()).pct(s_multi);
target.deal_blue_damage(skill, amount)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
return results; return results;
} }

View File

@ -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::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::Buff, Var::Red, Var::Blue], var: Var::Haste }, // Needs a buff
Combo { units: vec![Var::Debuff, Var::Red, Var::Red], var: Var::Snare }, // Dmg for disabled red Combo { units: vec![Var::Debuff, Var::Red, Var::Red], var: Var::Snare }, // disable red and dmg
Combo { units: vec![Var::Debuff, Var::Green, Var::Green], var: Var::Purge }, // Needs a buff Combo { units: vec![Var::Debuff, Var::Green, Var::Green], var: Var::Purge }, // disable green and remove debuff
Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence }, // Dmg for disabled blue Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence }, // disable blue and dmg
Combo { units: vec![Var::Debuff, Var::Red, Var::Green], var: Var::Slow }, // Needs a buff 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::Green, Var::Blue], var: Var::Decay },
Combo { units: vec![Var::Debuff, Var::Red, Var::Blue], var: Var::Invert }, Combo { units: vec![Var::Debuff, Var::Red, Var::Blue], var: Var::Invert },