hide certain effects
This commit is contained in:
parent
5a34bb9435
commit
9ec1d2974e
@ -3,6 +3,6 @@ last round of animations skipped cause no skill phase to add new vec
|
|||||||
check silence skill multiplier
|
check silence skill multiplier
|
||||||
|
|
||||||
game ready not auto starting resolve phase
|
game ready not auto starting resolve phase
|
||||||
purify conditional healing
|
|
||||||
|
|
||||||
|
purify conditional healing
|
||||||
absorb post resolve
|
absorb post resolve
|
||||||
|
|||||||
@ -518,7 +518,7 @@ impl Construct {
|
|||||||
|
|
||||||
Stat::Cooldowns => self.skills.iter().filter(|cs| cs.cd.is_some()).count(),
|
Stat::Cooldowns => self.skills.iter().filter(|cs| cs.cd.is_some()).count(),
|
||||||
Stat::Skills(colour) => self.skills.iter().filter(|cs| cs.skill.colours().contains(&colour)).count(),
|
Stat::Skills(colour) => self.skills.iter().filter(|cs| cs.skill.colours().contains(&colour)).count(),
|
||||||
Stat::EffectsCount => self.effects.len(),
|
Stat::EffectsCount => self.effects.iter().filter(|ce| !ce.effect.hidden()).count(),
|
||||||
|
|
||||||
_ => panic!("{:?} cannot be calculated without an amount", stat),
|
_ => panic!("{:?} cannot be calculated without an amount", stat),
|
||||||
}
|
}
|
||||||
@ -893,6 +893,7 @@ impl Construct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn effect_add(&mut self, effect: ConstructEffect) -> Vec<Event> {
|
pub fn effect_add(&mut self, effect: ConstructEffect) -> Vec<Event> {
|
||||||
|
let mut results = vec![];
|
||||||
if self.is_ko() { return vec![Event::TargetKo { construct: self.id }] }
|
if self.is_ko() { return vec![Event::TargetKo { construct: self.id }] }
|
||||||
|
|
||||||
if let Some(p) = self.effects.iter().position(|ce| ce.effect == effect.effect) {
|
if let Some(p) = self.effects.iter().position(|ce| ce.effect == effect.effect) {
|
||||||
@ -902,19 +903,20 @@ impl Construct {
|
|||||||
self.effects[p] = effect;
|
self.effects[p] = effect;
|
||||||
} else {
|
} else {
|
||||||
// new effect
|
// new effect
|
||||||
// info!("{:?} {:?} adding effect", self.name, effect.effect);
|
|
||||||
self.effects.push(effect);
|
self.effects.push(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo modified durations cause of buffs
|
// probably not a good idea
|
||||||
let result = Event::Effect {
|
if !effect.effect.hidden() {
|
||||||
construct: self.id,
|
results.push(Event::Effect {
|
||||||
effect: effect.effect,
|
construct: self.id,
|
||||||
duration: effect.duration,
|
effect: effect.effect,
|
||||||
display: EventConstruct::new(self)
|
duration: effect.duration,
|
||||||
|
display: EventConstruct::new(self)
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return vec![result];
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn effect_remove(&mut self, effect: Effect) -> Vec<Event> {
|
pub fn effect_remove(&mut self, effect: Effect) -> Vec<Event> {
|
||||||
|
|||||||
@ -117,6 +117,18 @@ impl Effect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hidden effects are used generally for immunities
|
||||||
|
// they are not displayed on client
|
||||||
|
// and not included in counts
|
||||||
|
pub fn hidden(&self) -> bool {
|
||||||
|
match self {
|
||||||
|
Effect::Siphoned => true,
|
||||||
|
Effect::Decayed => true,
|
||||||
|
Effect::Triaged => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn disables_skill(&self, skill: Skill) -> bool {
|
pub fn disables_skill(&self, skill: Skill) -> bool {
|
||||||
if skill.is_tick() {
|
if skill.is_tick() {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -995,7 +995,7 @@ impl EventConstruct {
|
|||||||
red: construct.stat(Stat::RedLife),
|
red: construct.stat(Stat::RedLife),
|
||||||
green: construct.stat(Stat::GreenLife),
|
green: construct.stat(Stat::GreenLife),
|
||||||
blue: construct.stat(Stat::BlueLife),
|
blue: construct.stat(Stat::BlueLife),
|
||||||
effects: construct.effects.clone(),
|
effects: construct.effects.iter().cloned().filter(|ce| !ce.effect.hidden()).collect(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user