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

@ -28,20 +28,34 @@ This project adheres to [Semantic Versioning](http://semver.org/).
Now GB + block (was GG + block)
Recharges blue life at 45% blue damage
- Server function recharge changed to take skill, red amount and blue amount as inputs
- Server function recharge changed to take skill, red amount and blue amount as inputs
- Recharge Skill reworked
- Recharge Skill reworked
No longer restores full Red and Blue life
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
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
Clutch now GR + Block (was GR + Buff)
Taunt now GR + Buff
No longer self-target only
Silence no longer Stun + GB (already exists as debuff BB)
Hex is now Stun + GB (was Stun + RB)
Banish is now Stun + RB (was Stun + RG) for rng theme
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'];
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])
|| (event[1].skill === 'Throw' && event[1].effect === 'Vulnerable')) return ['POST_SKILL'];

View File

@ -570,6 +570,11 @@ impl Skill {
// Stun Base
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
Skill::CorruptionTick => 80,
Skill::DecayTick => 25,
@ -597,7 +602,7 @@ impl Skill {
Skill::Sleep => 3,
Skill::Throw => 2,
Skill::Snare => 2,
Skill::Snare => 3,
Skill::Taunt => 1,
Skill::Empower => 2,
@ -612,7 +617,7 @@ impl Skill {
Skill::Haste => 2,
Skill::Amplify => 2,
Skill::Silence => 2,
Skill::Silence => 3,
Skill::Hostility => 2, // Primary Buff
Skill::Corrupt => 2, // Primary Buff
@ -654,7 +659,7 @@ impl Skill {
Skill::Block => None, // reduce damage
Skill::Parry => None, // avoid all damage
Skill::Riposte => None, // used on parry
Skill::Snare => Some(1),
Skill::Snare => Some(2),
Skill::Stun => Some(1),
Skill::Heal => None,
Skill::Triage => None, // hot
@ -671,7 +676,7 @@ impl Skill {
Skill::Curse => Some(1),
Skill::Empower => Some(1),
Skill::Shield => None,
Skill::Silence => Some(1),
Skill::Silence => Some(2),
Skill::Purify => None,
Skill::Purge => None,
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 {
let snare = CrypEffect::new(Effect::Snare, skill.duration());
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;
}
@ -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 {
let silence = CrypEffect::new(Effect::Silence, skill.duration());
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;
}

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