wip
This commit is contained in:
parent
18784e59ce
commit
c1655c9496
@ -360,6 +360,25 @@ impl Construct {
|
||||
None
|
||||
}
|
||||
|
||||
pub fn immune(&self, skill: Skill) -> Option<Immunity> {
|
||||
// also checked in resolve stage so shouldn't happen really
|
||||
if self.is_ko() {
|
||||
return Some(vec![Effect::Ko]);
|
||||
}
|
||||
|
||||
let immunities = self.effects.iter()
|
||||
.filter(|e| e.effect.immune(skill))
|
||||
.map(|e| e.effect)
|
||||
.collect::<Vec<Effect>>();
|
||||
|
||||
if immunities.len() > 0 {
|
||||
return Some(immunities);
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
|
||||
pub fn is_stunned(&self) -> bool {
|
||||
self.available_skills().len() == 0
|
||||
}
|
||||
|
||||
@ -72,6 +72,7 @@ impl Effect {
|
||||
pub fn immune(&self, skill: Skill) -> bool {
|
||||
match self {
|
||||
Effect::Banish => true,
|
||||
|
||||
Effect::Sustain => [
|
||||
Skill::Stun,
|
||||
Skill::Silence,
|
||||
@ -84,6 +85,12 @@ impl Effect {
|
||||
Skill::RestrictPlus,
|
||||
Skill::RestrictPlusPlus
|
||||
].contains(&skill),
|
||||
|
||||
Effect::Siphoned => [
|
||||
Skill::SiphonTick,
|
||||
Skill::SiphonTickPlus,
|
||||
Skill::SiphonTickPlusPlus,
|
||||
].contains(&skill),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user