AttackBase handles canceling of (its) target when an unrelated order is issued
This commit is contained in:
@@ -154,6 +154,8 @@ namespace OpenRa.Game.Traits
|
||||
self.CancelActivity();
|
||||
QueueAttack(self, order);
|
||||
}
|
||||
else
|
||||
target = null;
|
||||
}
|
||||
|
||||
protected virtual void QueueAttack(Actor self, Order order)
|
||||
|
||||
@@ -8,9 +8,8 @@ namespace OpenRa.Game.Traits
|
||||
|
||||
protected override void QueueAttack(Actor self, Order order)
|
||||
{
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new HeliAttack(order.TargetActor));
|
||||
target = order.TargetActor;
|
||||
self.QueueActivity(new HeliAttack(order.TargetActor));
|
||||
// todo: fly home
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace OpenRa.Game.Traits
|
||||
|
||||
protected override void QueueAttack(Actor self, Order order)
|
||||
{
|
||||
self.CancelActivity();
|
||||
target = order.TargetActor;
|
||||
self.QueueActivity(new FlyAttack(order.TargetActor));
|
||||
self.QueueActivity(new ReturnToBase(self, null));
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace OpenRa.Game.Traits
|
||||
if (limitedAmmo != null)
|
||||
limitedAmmo.Attacking(self);
|
||||
|
||||
// todo: delay a bit?
|
||||
// todo: delay a bit? (req making deploy-mine an activity)
|
||||
|
||||
Game.world.AddFrameEndTask(
|
||||
w => w.Add(new Actor(Rules.UnitInfo[self.Info.Primary], self.Location, self.Owner)));
|
||||
|
||||
@@ -56,10 +56,6 @@ namespace OpenRa.Game.Traits
|
||||
{
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new Activities.Move(order.TargetLocation, 8));
|
||||
|
||||
var attackBase = self.traits.WithInterface<AttackBase>().FirstOrDefault();
|
||||
if (attackBase != null)
|
||||
attackBase.target = null; /* move cancels attack order */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user