remove categories for colours

This commit is contained in:
ntr 2019-06-08 16:35:06 +10:00
parent 4722b4507d
commit 623bbffd47
2 changed files with 47 additions and 43 deletions

View File

@ -29,6 +29,8 @@
*CLIENT* *CLIENT*
mobile info page
rework scatter rework scatter
hatred maybe hatred maybe

View File

@ -466,16 +466,6 @@ pub enum Event {
type Resolutions = Vec<Resolution>; type Resolutions = Vec<Resolution>;
pub type Cooldown = Option<u8>; 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)] #[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
pub enum Effect { pub enum Effect {
Amplify, Amplify,
@ -632,50 +622,50 @@ impl Effect {
} }
} }
fn category(&self) -> EffectCategory { fn colour(&self) -> Option<Colour> {
match self { match self {
// physical // physical
Effect::Stun => EffectCategory::Debuff, Effect::Stun => Some(Colour::Red),
Effect::Block => EffectCategory::Buff, Effect::Block => Some(Colour::Green),
Effect::Buff => EffectCategory::Buff, Effect::Buff => Some(Colour::Green),
Effect::Parry => EffectCategory::Buff, Effect::Parry => Some(Colour::Green),
Effect::Vulnerable => EffectCategory::Debuff, Effect::Vulnerable => Some(Colour::Red),
Effect::Snare => EffectCategory::Debuff, Effect::Snare => Some(Colour::Red),
Effect::Clutch => EffectCategory::Buff, Effect::Clutch => Some(Colour::Green),
Effect::Taunt => EffectCategory::Buff, Effect::Taunt => Some(Colour::Green),
// magic // magic
Effect::Hex => EffectCategory::Debuff, Effect::Hex => Some(Colour::Blue),
Effect::Curse => EffectCategory::Debuff, Effect::Curse => Some(Colour::Blue),
Effect::Banish => EffectCategory::Debuff, // todo randomise Effect::Banish => None,
// Effect::Banish => rng.gen_bool(0.5), // Effect::Banish => rng.gen_bool(0.5),
Effect::Slow => EffectCategory::Debuff, Effect::Slow => Some(Colour::Blue),
Effect::Haste => EffectCategory::Buff, Effect::Haste => Some(Colour::Green),
Effect::Hatred => EffectCategory::Buff, Effect::Hatred => Some(Colour::Green),
Effect::Reflect => EffectCategory::Buff, Effect::Reflect => Some(Colour::Green),
Effect::Amplify => EffectCategory::Buff, Effect::Amplify => Some(Colour::Green),
Effect::Silence => EffectCategory::Debuff, Effect::Silence => Some(Colour::Blue),
Effect::Wither => EffectCategory::Debuff, Effect::Wither => Some(Colour::Blue),
Effect::Purge => EffectCategory::Debuff, Effect::Purge => Some(Colour::Blue),
Effect::Corrupt => EffectCategory::Buff, Effect::Corrupt => Some(Colour::Green),
Effect::Corruption => EffectCategory::Debuff, Effect::Corruption => Some(Colour::Blue),
Effect::Hostility => EffectCategory::Buff, Effect::Hostility => Some(Colour::Green),
// magic // magic
Effect::Impurity => EffectCategory::Buff, Effect::Impurity => Some(Colour::Green),
Effect::Scatter => EffectCategory::Buff, Effect::Scatter => Some(Colour::Green),
Effect::Invert => EffectCategory::Buff, Effect::Invert => Some(Colour::Green),
// effects over time // effects over time
Effect::Triage => EffectCategory::Buff, Effect::Triage => Some(Colour::Green),
Effect::Decay => EffectCategory::Debuff, Effect::Decay => Some(Colour::Blue),
Effect::Regen => EffectCategory::Buff, Effect::Regen => Some(Colour::Green),
Effect::Siphon => EffectCategory::Debuff, 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 { fn purge(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
while let Some(i) = target.effects while let Some(i) = target.effects
.iter() .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); let ce = target.effects.remove(i);
results.push(Resolution::new(source, target) results.push(Resolution::new(source, target)
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() })); .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()); let amount = source.green_power().pct(skill.multiplier());
while let Some(i) = target.effects while let Some(i) = target.effects
.iter() .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); let ce = target.effects.remove(i);
results.push(Resolution::new(source, target) results.push(Resolution::new(source, target)
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() }) .event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() })