simplify debuffs and buffs
This commit is contained in:
parent
a581f9ad3f
commit
a025900639
@ -374,56 +374,56 @@ impl Effect {
|
|||||||
pub fn category(&self) -> Category {
|
pub fn category(&self) -> Category {
|
||||||
match self {
|
match self {
|
||||||
// physical
|
// physical
|
||||||
Effect::Stun => Category::RedDebuff,
|
Effect::Stun => Category::Debuff,
|
||||||
Effect::Block => Category::RedBuff,
|
Effect::Block => Category::Buff,
|
||||||
Effect::Parry => Category::RedBuff,
|
Effect::Parry => Category::Buff,
|
||||||
Effect::Bleed => Category::RedDebuff,
|
Effect::Bleed => Category::Debuff,
|
||||||
Effect::Leech => Category::RedDebuff,
|
Effect::Leech => Category::Debuff,
|
||||||
Effect::Airborne => Category::RedDebuff,
|
Effect::Airborne => Category::Debuff,
|
||||||
Effect::Untouchable => Category::RedBuff,
|
Effect::Untouchable => Category::Buff,
|
||||||
Effect::Deadly => Category::RedBuff,
|
Effect::Deadly => Category::Buff,
|
||||||
Effect::Vulnerable => Category::RedDebuff,
|
Effect::Vulnerable => Category::Debuff,
|
||||||
Effect::Fury => Category::RedBuff,
|
Effect::Fury => Category::Buff,
|
||||||
Effect::Blind => Category::RedDebuff,
|
Effect::Blind => Category::Debuff,
|
||||||
Effect::Snare => Category::RedDebuff,
|
Effect::Snare => Category::Debuff,
|
||||||
Effect::Clutch => Category::RedBuff,
|
Effect::Clutch => Category::Buff,
|
||||||
Effect::Taunt => Category::RedBuff,
|
Effect::Taunt => Category::Buff,
|
||||||
Effect::Empower => Category::RedBuff,
|
Effect::Empower => Category::Buff,
|
||||||
Effect::Injured => Category::RedDebuff,
|
Effect::Injured => Category::Debuff,
|
||||||
Effect::Strangle => Category::RedDebuff,
|
Effect::Strangle => Category::Debuff,
|
||||||
Effect::Strangling => Category::RedBuff,
|
Effect::Strangling => Category::Buff,
|
||||||
|
|
||||||
// magic
|
// magic
|
||||||
Effect::Hex => Category::BlueDebuff,
|
Effect::Hex => Category::Debuff,
|
||||||
Effect::Ruin => Category::BlueDebuff,
|
Effect::Ruin => Category::Debuff,
|
||||||
Effect::Curse => Category::BlueDebuff,
|
Effect::Curse => Category::Debuff,
|
||||||
Effect::Banish => Category::BlueDebuff, // todo randomise
|
Effect::Banish => Category::Debuff, // todo randomise
|
||||||
Effect::Slow => Category::BlueDebuff,
|
Effect::Slow => Category::Debuff,
|
||||||
Effect::Haste => Category::BlueBuff,
|
Effect::Haste => Category::Buff,
|
||||||
Effect::Hatred => Category::BlueBuff,
|
Effect::Hatred => Category::Buff,
|
||||||
Effect::Reflect => Category::BlueBuff,
|
Effect::Reflect => Category::Buff,
|
||||||
Effect::Enslave => Category::BlueDebuff,
|
Effect::Enslave => Category::Debuff,
|
||||||
Effect::Mesmerise => Category::BlueDebuff,
|
Effect::Mesmerise => Category::Debuff,
|
||||||
Effect::Amplify => Category::BlueBuff,
|
Effect::Amplify => Category::Buff,
|
||||||
Effect::Silence => Category::BlueDebuff,
|
Effect::Silence => Category::Debuff,
|
||||||
|
|
||||||
Effect::Corrupt => Category::BlueBuff,
|
Effect::Corrupt => Category::Buff,
|
||||||
Effect::Corruption => Category::BlueDebuff,
|
Effect::Corruption => Category::Debuff,
|
||||||
|
|
||||||
Effect::Hostility => Category::BlueBuff,
|
Effect::Hostility => Category::Buff,
|
||||||
|
|
||||||
// magic immunity
|
// magic immunity
|
||||||
Effect::Shield => Category::BlueBuff,
|
Effect::Shield => Category::Buff,
|
||||||
Effect::Invert => Category::GreenBuff,
|
Effect::Invert => Category::Buff,
|
||||||
|
|
||||||
// effects over time
|
// effects over time
|
||||||
Effect::Triage => Category::BlueBuff,
|
Effect::Triage => Category::Buff,
|
||||||
Effect::Decay => Category::BlueDebuff,
|
Effect::Decay => Category::Debuff,
|
||||||
Effect::Regen => Category::BlueBuff,
|
Effect::Regen => Category::Buff,
|
||||||
Effect::Siphon => Category::BlueDebuff,
|
Effect::Siphon => Category::Debuff,
|
||||||
|
|
||||||
Effect::SpeedSiphon => Category::BlueDebuff,
|
Effect::SpeedSiphon => Category::Debuff,
|
||||||
Effect::SpeedIncrease => Category::BlueBuff,
|
Effect::SpeedIncrease => Category::Buff,
|
||||||
|
|
||||||
Effect::Ko => Category::Ko,
|
Effect::Ko => Category::Ko,
|
||||||
}
|
}
|
||||||
@ -485,19 +485,20 @@ impl Effect {
|
|||||||
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
|
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
|
||||||
pub enum Category {
|
pub enum Category {
|
||||||
Red,
|
Red,
|
||||||
RedDamage,
|
|
||||||
RedDebuff,
|
|
||||||
RedBuff,
|
|
||||||
RedTick,
|
|
||||||
Blue,
|
Blue,
|
||||||
BlueDamage,
|
|
||||||
BlueDebuff,
|
|
||||||
BlueBuff,
|
|
||||||
BlueTick,
|
|
||||||
Green,
|
Green,
|
||||||
GreenTick,
|
|
||||||
|
RedDamage,
|
||||||
|
BlueDamage,
|
||||||
GreenDamage,
|
GreenDamage,
|
||||||
GreenBuff,
|
|
||||||
|
RedTick,
|
||||||
|
BlueTick,
|
||||||
|
GreenTick,
|
||||||
|
|
||||||
|
Buff,
|
||||||
|
Debuff,
|
||||||
|
|
||||||
Ko,
|
Ko,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1088,7 +1089,7 @@ fn silence(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Re
|
|||||||
fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions {
|
fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions {
|
||||||
while let Some(i) = target.effects
|
while let Some(i) = target.effects
|
||||||
.iter()
|
.iter()
|
||||||
.position(|ce| [Category::BlueBuff, Category::RedBuff].contains(&ce.effect.category())) {
|
.position(|ce| [Category::Buff, Category::Buff].contains(&ce.effect.category())) {
|
||||||
let ce = target.effects.remove(i);
|
let ce = target.effects.remove(i);
|
||||||
results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect }));
|
results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect }));
|
||||||
}
|
}
|
||||||
@ -1099,7 +1100,7 @@ fn purge(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Reso
|
|||||||
fn purify(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions {
|
fn purify(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions {
|
||||||
while let Some(i) = target.effects
|
while let Some(i) = target.effects
|
||||||
.iter()
|
.iter()
|
||||||
.position(|ce| [Category::BlueDebuff, Category::RedDebuff].contains(&ce.effect.category())) {
|
.position(|ce| [Category::Debuff, Category::Debuff].contains(&ce.effect.category())) {
|
||||||
let ce = target.effects.remove(i);
|
let ce = target.effects.remove(i);
|
||||||
results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect }));
|
results.push(Resolution::new(source, target).event(Event::Removal { effect: ce.effect }));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user