remove categories for colours
This commit is contained in:
parent
4722b4507d
commit
623bbffd47
@ -29,6 +29,8 @@
|
||||
|
||||
*CLIENT*
|
||||
|
||||
mobile info page
|
||||
|
||||
rework scatter
|
||||
hatred maybe
|
||||
|
||||
|
||||
@ -466,16 +466,6 @@ pub enum Event {
|
||||
type Resolutions = Vec<Resolution>;
|
||||
pub type Cooldown = Option<u8>;
|
||||
|
||||
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
|
||||
enum EffectCategory {
|
||||
Buff,
|
||||
Debuff,
|
||||
|
||||
Constant,
|
||||
|
||||
Ko,
|
||||
}
|
||||
|
||||
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
|
||||
pub enum Effect {
|
||||
Amplify,
|
||||
@ -632,50 +622,50 @@ impl Effect {
|
||||
}
|
||||
}
|
||||
|
||||
fn category(&self) -> EffectCategory {
|
||||
fn colour(&self) -> Option<Colour> {
|
||||
match self {
|
||||
// physical
|
||||
Effect::Stun => EffectCategory::Debuff,
|
||||
Effect::Block => EffectCategory::Buff,
|
||||
Effect::Buff => EffectCategory::Buff,
|
||||
Effect::Parry => EffectCategory::Buff,
|
||||
Effect::Vulnerable => EffectCategory::Debuff,
|
||||
Effect::Snare => EffectCategory::Debuff,
|
||||
Effect::Clutch => EffectCategory::Buff,
|
||||
Effect::Taunt => EffectCategory::Buff,
|
||||
Effect::Stun => Some(Colour::Red),
|
||||
Effect::Block => Some(Colour::Green),
|
||||
Effect::Buff => Some(Colour::Green),
|
||||
Effect::Parry => Some(Colour::Green),
|
||||
Effect::Vulnerable => Some(Colour::Red),
|
||||
Effect::Snare => Some(Colour::Red),
|
||||
Effect::Clutch => Some(Colour::Green),
|
||||
Effect::Taunt => Some(Colour::Green),
|
||||
|
||||
// magic
|
||||
Effect::Hex => EffectCategory::Debuff,
|
||||
Effect::Curse => EffectCategory::Debuff,
|
||||
Effect::Banish => EffectCategory::Debuff, // todo randomise
|
||||
Effect::Hex => Some(Colour::Blue),
|
||||
Effect::Curse => Some(Colour::Blue),
|
||||
Effect::Banish => None,
|
||||
// Effect::Banish => rng.gen_bool(0.5),
|
||||
|
||||
Effect::Slow => EffectCategory::Debuff,
|
||||
Effect::Haste => EffectCategory::Buff,
|
||||
Effect::Hatred => EffectCategory::Buff,
|
||||
Effect::Reflect => EffectCategory::Buff,
|
||||
Effect::Amplify => EffectCategory::Buff,
|
||||
Effect::Silence => EffectCategory::Debuff,
|
||||
Effect::Wither => EffectCategory::Debuff,
|
||||
Effect::Purge => EffectCategory::Debuff,
|
||||
Effect::Slow => Some(Colour::Blue),
|
||||
Effect::Haste => Some(Colour::Green),
|
||||
Effect::Hatred => Some(Colour::Green),
|
||||
Effect::Reflect => Some(Colour::Green),
|
||||
Effect::Amplify => Some(Colour::Green),
|
||||
Effect::Silence => Some(Colour::Blue),
|
||||
Effect::Wither => Some(Colour::Blue),
|
||||
Effect::Purge => Some(Colour::Blue),
|
||||
|
||||
Effect::Corrupt => EffectCategory::Buff,
|
||||
Effect::Corruption => EffectCategory::Debuff,
|
||||
Effect::Corrupt => Some(Colour::Green),
|
||||
Effect::Corruption => Some(Colour::Blue),
|
||||
|
||||
Effect::Hostility => EffectCategory::Buff,
|
||||
Effect::Hostility => Some(Colour::Green),
|
||||
|
||||
// magic
|
||||
Effect::Impurity => EffectCategory::Buff,
|
||||
Effect::Scatter => EffectCategory::Buff,
|
||||
Effect::Invert => EffectCategory::Buff,
|
||||
Effect::Impurity => Some(Colour::Green),
|
||||
Effect::Scatter => Some(Colour::Green),
|
||||
Effect::Invert => Some(Colour::Green),
|
||||
|
||||
// effects over time
|
||||
Effect::Triage => EffectCategory::Buff,
|
||||
Effect::Decay => EffectCategory::Debuff,
|
||||
Effect::Regen => EffectCategory::Buff,
|
||||
Effect::Siphon => EffectCategory::Debuff,
|
||||
Effect::Triage => Some(Colour::Green),
|
||||
Effect::Decay => Some(Colour::Blue),
|
||||
Effect::Regen => Some(Colour::Green),
|
||||
Effect::Siphon => Some(Colour::Blue),
|
||||
|
||||
Effect::Ko => EffectCategory::Ko,
|
||||
Effect::Ko => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1864,7 +1854,13 @@ fn silence(source: &mut Construct, target: &mut Construct, mut results: Resoluti
|
||||
fn purge(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
while let Some(i) = target.effects
|
||||
.iter()
|
||||
.position(|ce| ce.effect.category() == EffectCategory::Buff) {
|
||||
.position(|ce| {
|
||||
if let Some(c) = ce.effect.colour() {
|
||||
c == Colour::Green
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}) {
|
||||
let ce = target.effects.remove(i);
|
||||
results.push(Resolution::new(source, target)
|
||||
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() }));
|
||||
@ -1890,7 +1886,13 @@ fn purify(source: &mut Construct, target: &mut Construct, mut results: Resolutio
|
||||
let amount = source.green_power().pct(skill.multiplier());
|
||||
while let Some(i) = target.effects
|
||||
.iter()
|
||||
.position(|ce| ce.effect.category() == EffectCategory::Debuff) {
|
||||
.position(|ce| {
|
||||
if let Some(c) = ce.effect.colour() {
|
||||
[Colour::Red, Colour::Blue].contains(&c)
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}) {
|
||||
let ce = target.effects.remove(i);
|
||||
results.push(Resolution::new(source, target)
|
||||
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() })
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user