Buff effects represented as perectanges, slow is now applied by debuff
This commit is contained in:
parent
d87c73411e
commit
ae8a384b39
20
CHANGELOG.md
20
CHANGELOG.md
@ -39,13 +39,21 @@ New skill `Impurity`
|
||||
### Fixed
|
||||
|
||||
- Ruin sends a skill event so ruin only casts once, followed by debuffs
|
||||
-
|
||||
|
||||
### Changed
|
||||
|
||||
- Removed Empower (Buff + RR) -> combined effect with amplify
|
||||
- Skill Slow removed
|
||||
|
||||
- Debuff is now a usable skill `(add buff as a usable skill also)`
|
||||
Applies slow effect previously applied by skill Slow
|
||||
Slow effect lasts 3T
|
||||
Cooldown 1T
|
||||
|
||||
- Amplify
|
||||
Changed to Buff + RB (was Buff + BB)
|
||||
Inc red and blue multiplier changed 200% -> 150%
|
||||
Increases both red and blue power.
|
||||
|
||||
- Attack
|
||||
@ -59,11 +67,17 @@ New skill `Impurity`
|
||||
RNG range changed from (0 - 20%) -> (0 - 30%)
|
||||
Same dmg range but more RNG
|
||||
|
||||
- Curse
|
||||
Inc red and blue multiplier changed 200% -> 150%
|
||||
`(More reworks soon to make this skill fun)`
|
||||
|
||||
|
||||
- Haste
|
||||
Changed to Buff + RG (was Buff + RB)
|
||||
Buff causes target to deal an extra attack when using red attack base skills (strike / slay / chaos)
|
||||
Extra attack does 25% source speed as red damage
|
||||
Cooldown increased to 2T
|
||||
Speed bonused reduced 200% -> 150%
|
||||
|
||||
- Heal
|
||||
Changed multiplier 120% -> 130%
|
||||
@ -84,6 +98,7 @@ New skill `Impurity`
|
||||
|
||||
- Throw
|
||||
Stun duration reduced from 2T -> 1T
|
||||
Vulnerable dmg bonus reduced 200% -> 150%
|
||||
|
||||
- Triage
|
||||
Multiplier changed 65% -> 75%
|
||||
@ -131,13 +146,8 @@ New skill `Impurity`
|
||||
Cooldown changed 1T -> 2T
|
||||
Debuff duration increased 2T -> 3T
|
||||
Snare
|
||||
<<<<<<< HEAD
|
||||
Now also deals damage amount of 40% base blue damage
|
||||
This damage amount does 45% more damage per red skill blocked
|
||||
=======
|
||||
Now also deals damage amount of 40% base red damage
|
||||
This damage amount does 45% more damage per red skill blocked
|
||||
>>>>>>> rebalance
|
||||
Maximum = (0.40)(1.35)*base_red_damage
|
||||
Cooldown changed 1T -> 2T
|
||||
Debuff duration increased 2T -> 3T
|
||||
|
||||
@ -75,6 +75,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
||||
Skill::Corrupt => corrupt(source, target, resolutions, skill),
|
||||
Skill::CorruptionTick => corruption_tick(source, target, resolutions, skill),
|
||||
Skill::Curse => curse(source, target, resolutions, skill),
|
||||
Skill::Debuff => debuff(source, target, resolutions, skill), // speed slow
|
||||
Skill::Decay => decay(source, target, resolutions, skill), // dot
|
||||
Skill::DecayTick => decay_tick(source, target, resolutions, skill), // dot
|
||||
Skill::Haste => haste(source, target, resolutions, skill), // speed slow
|
||||
@ -99,7 +100,6 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
||||
Skill::SiphonTick => siphon_tick(source, target, resolutions, skill), // hot
|
||||
Skill::Slay => slay(source, target, resolutions, skill), // hybrid dmg self heal
|
||||
Skill::Sleep => sleep(source, target, resolutions, skill), // speed slow
|
||||
Skill::Slow => slow(source, target, resolutions, skill), // speed slow
|
||||
Skill::Snare => snare(source, target, resolutions, skill),
|
||||
Skill::Strangle => strangle(source, target, resolutions, skill),
|
||||
Skill::StrangleTick => strangle_tick(source, target, resolutions, skill),
|
||||
@ -387,17 +387,17 @@ impl Effect {
|
||||
|
||||
pub fn apply(&self, value: u64, meta: Option<EffectMeta>) -> u64 {
|
||||
match self {
|
||||
Effect::Vulnerable => value << 1,
|
||||
Effect::Block => value >> 1,
|
||||
Effect::Vulnerable => value.pct(150),
|
||||
Effect::Block => value.pct(50),
|
||||
|
||||
Effect::Amplify => value << 1,
|
||||
Effect::Curse => value << 1,
|
||||
Effect::Amplify => value.pct(150),
|
||||
Effect::Curse => value.pct(150),
|
||||
|
||||
Effect::Haste => value << 1,
|
||||
Effect::Slow => value >> 1,
|
||||
Effect::Haste => value.pct(150),
|
||||
Effect::Slow => value.pct(50),
|
||||
|
||||
Effect::Impurity => value << 1,
|
||||
Effect::Wither => value >> 1,
|
||||
Effect::Impurity => value.pct(150),
|
||||
Effect::Wither => value.pct(50),
|
||||
|
||||
Effect::Hatred => value + match meta {
|
||||
Some(EffectMeta::AddedDamage(d)) => d,
|
||||
@ -494,11 +494,13 @@ pub enum Category {
|
||||
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
|
||||
pub enum Skill {
|
||||
Attack,
|
||||
Debuff,
|
||||
Block, // reduce damage
|
||||
Stun,
|
||||
|
||||
// -----------------
|
||||
// Nature
|
||||
// -----------------
|
||||
Block, // reduce damage
|
||||
Parry, // avoid all damage
|
||||
Riposte,
|
||||
Snare,
|
||||
@ -521,7 +523,6 @@ pub enum Skill {
|
||||
Strike,
|
||||
StrikeII,
|
||||
StrikeIII,
|
||||
Stun,
|
||||
// Evade, // actively evade
|
||||
|
||||
// -----------------
|
||||
@ -568,7 +569,6 @@ pub enum Skill {
|
||||
Hex,
|
||||
Haste,
|
||||
HasteStrike,
|
||||
Slow,
|
||||
|
||||
// used by tests, no cd, 100% multiplier
|
||||
TestAttack,
|
||||
@ -627,7 +627,7 @@ impl Skill {
|
||||
Skill::Block => 1,
|
||||
Skill::Parry => 1,
|
||||
Skill::Clutch => 1,
|
||||
|
||||
Skill::Debuff => 3,
|
||||
Skill::Reflect => 1,
|
||||
|
||||
Skill::Injure => 2,
|
||||
@ -649,7 +649,6 @@ impl Skill {
|
||||
Skill::Curse => 2,
|
||||
Skill::Banish => 1,
|
||||
|
||||
Skill::Slow => 2,
|
||||
Skill::Haste => 2,
|
||||
|
||||
Skill::Amplify => 2,
|
||||
@ -689,6 +688,7 @@ impl Skill {
|
||||
pub fn base_cd(&self) -> Cooldown {
|
||||
match self {
|
||||
Skill::Attack => None,
|
||||
Skill::Debuff => Some(1),
|
||||
Skill::Strike => None,
|
||||
Skill::StrikeII => None,
|
||||
Skill::StrikeIII => None,
|
||||
@ -721,7 +721,6 @@ impl Skill {
|
||||
Skill::Haste => Some(2),
|
||||
Skill::HasteStrike => None, // Used in haste
|
||||
|
||||
Skill::Slow => None,
|
||||
Skill::Reflect => Some(2),
|
||||
Skill::Recharge => Some(2),
|
||||
Skill::Ruin => Some(3),
|
||||
@ -797,7 +796,7 @@ impl Skill {
|
||||
Skill::Purge => Category::Blue,
|
||||
Skill::Banish => Category::Blue,
|
||||
Skill::Hex => Category::Blue,
|
||||
Skill::Slow => Category::Blue,
|
||||
Skill::Debuff => Category::Blue,
|
||||
Skill::Ruin => Category::Blue,
|
||||
Skill::Hostility => Category::Blue,
|
||||
Skill::Corrupt => Category::Blue,
|
||||
@ -1128,7 +1127,7 @@ fn haste(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
|
||||
return results;;
|
||||
}
|
||||
|
||||
fn slow(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
fn debuff(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
let effect = CrypEffect::new(Effect::Slow, skill.duration());
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
||||
return results;;
|
||||
@ -1638,7 +1637,7 @@ mod tests {
|
||||
|
||||
amplify(&mut x.clone(), &mut x, vec![], Skill::Amplify);
|
||||
assert!(x.effects.iter().any(|e| e.effect == Effect::Amplify));
|
||||
assert_eq!(x.blue_damage(), 100);
|
||||
assert_eq!(x.blue_damage(), 75);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@ -86,7 +86,6 @@ pub enum Var {
|
||||
Silence,
|
||||
Slay,
|
||||
Sleep,
|
||||
Slow,
|
||||
Snare,
|
||||
Strangle,
|
||||
Strike,
|
||||
@ -196,6 +195,7 @@ impl Var {
|
||||
Var::Block => Some(Skill::Block),
|
||||
Var::Chaos => Some(Skill::Chaos),
|
||||
Var::Curse => Some(Skill::Curse),
|
||||
Var::Debuff => Some(Skill::Debuff),
|
||||
Var::Decay => Some(Skill::Decay),
|
||||
Var::Haste => Some(Skill::Haste),
|
||||
Var::Heal => Some(Skill::Heal),
|
||||
@ -213,7 +213,6 @@ impl Var {
|
||||
Var::Silence => Some(Skill::Silence),
|
||||
Var::Slay => Some(Skill::Slay),
|
||||
Var::Sleep => Some(Skill::Sleep),
|
||||
Var::Slow => Some(Skill::Slow),
|
||||
Var::Siphon => Some(Skill::Siphon),
|
||||
Var::Snare => Some(Skill::Snare),
|
||||
Var::Strangle => Some(Skill::Strangle),
|
||||
@ -290,7 +289,6 @@ impl From<Skill> for Var {
|
||||
Skill::Siphon => Var::Siphon,
|
||||
Skill::Slay => Var::Slay,
|
||||
Skill::Sleep => Var::Sleep,
|
||||
Skill::Slow => Var::Slow,
|
||||
Skill::Snare => Var::Snare,
|
||||
Skill::Strangle => Var::Strangle,
|
||||
Skill::Strike => Var::Strike,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user