diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d8fa157..fd40a41d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/WORKLOG.md b/WORKLOG.md old mode 100644 new mode 100755 diff --git a/client/src/utils.jsx b/client/src/utils.jsx index 494d1ce0..44cb24e3 100644 --- a/client/src/utils.jsx +++ b/client/src/utils.jsx @@ -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']; diff --git a/server/src/skill.rs b/server/src/skill.rs index 832ce072..4f82a5f0 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -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; } diff --git a/server/src/vbox.rs b/server/src/vbox.rs index dec3556c..b0f4d93b 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -358,9 +358,9 @@ fn get_combos() -> Vec { 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 },