Fix FlyAttack invalid target crash.

This commit is contained in:
Paul Chote
2020-02-15 23:14:52 +00:00
committed by atlimit8
parent 9a6602656b
commit 7e72cd262c

View File

@@ -221,10 +221,16 @@ namespace OpenRA.Mods.Common.Activities
} }
protected override void OnFirstRun(Actor self) protected override void OnFirstRun(Actor self)
{
// The target may have died while this activity was queued
if (target.IsValidFor(self))
{ {
QueueChild(new Fly(self, target, target.CenterPosition)); QueueChild(new Fly(self, target, target.CenterPosition));
QueueChild(new Fly(self, target, exitRange, WDist.MaxValue, target.CenterPosition)); QueueChild(new Fly(self, target, exitRange, WDist.MaxValue, target.CenterPosition));
} }
else
Cancel(self);
}
public override bool Tick(Actor self) public override bool Tick(Actor self)
{ {
@@ -260,10 +266,16 @@ namespace OpenRA.Mods.Common.Activities
} }
protected override void OnFirstRun(Actor self) protected override void OnFirstRun(Actor self)
{
// The target may have died while this activity was queued
if (target.IsValidFor(self))
{ {
QueueChild(new Fly(self, target, target.CenterPosition)); QueueChild(new Fly(self, target, target.CenterPosition));
QueueChild(new Fly(self, target, exitRange, WDist.MaxValue, target.CenterPosition)); QueueChild(new Fly(self, target, exitRange, WDist.MaxValue, target.CenterPosition));
} }
else
Cancel(self);
}
public override bool Tick(Actor self) public override bool Tick(Actor self)
{ {