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