castable logic
This commit is contained in:
parent
122c385f1c
commit
3503c4b864
@ -494,14 +494,19 @@ impl Game {
|
||||
self.resolve(Cast { skill, ..cast });
|
||||
}
|
||||
|
||||
if cast.skill.aoe() {
|
||||
if cast.skill.cast_animation() {
|
||||
self.action(cast, Action::Cast);
|
||||
let casts = self.modify_cast(cast);
|
||||
|
||||
let castable = casts.clone()
|
||||
.into_iter()
|
||||
.any(|c| !self.construct(c.target).is_ko() && !self.construct(c.target).immune(c.skill).is_some());
|
||||
|
||||
if castable {
|
||||
self.action(cast, Action::Cast);
|
||||
if cast.skill.aoe() {
|
||||
self.action(cast, Action::HitAoe);
|
||||
}
|
||||
self.action(cast, Action::HitAoe);
|
||||
}
|
||||
|
||||
let casts = self.modify_cast(cast);
|
||||
for cast in casts {
|
||||
self.execute(cast);
|
||||
}
|
||||
@ -520,11 +525,6 @@ impl Game {
|
||||
return self;
|
||||
}
|
||||
|
||||
// For normal skills we show the cast as long as the target isn't ko
|
||||
if !cast.skill.aoe() && cast.skill.cast_animation() {
|
||||
self.action(cast, Action::Cast);
|
||||
}
|
||||
|
||||
// maybe this should be done with a status immunity
|
||||
if self.construct(cast.target).affected(Effect::Reflect) && cast.skill.colours().contains(&Colour::Blue) && !cast.skill.is_tick() {
|
||||
self.add_resolution(&cast, &Event::Reflection { construct: cast.target });
|
||||
@ -538,7 +538,9 @@ impl Game {
|
||||
return self.resolve(Cast { target: cast.source, ..cast });
|
||||
}
|
||||
|
||||
self.action(cast, Action::Hit);
|
||||
if !cast.skill.aoe() {
|
||||
self.action(cast, Action::Hit);
|
||||
}
|
||||
|
||||
cast.resolve(self);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user