Fix undeploy orders always being queued.
This commit is contained in:
@@ -140,6 +140,9 @@ namespace OpenRA.Mods.Common.Activities
|
||||
// Use self.CurrentActivity to capture the parent activity if Transform is a child
|
||||
foreach (var transfer in currentActivity.ActivitiesImplementing<IssueOrderAfterTransform>(false))
|
||||
{
|
||||
if (transfer.IsCanceling)
|
||||
continue;
|
||||
|
||||
var order = transfer.IssueOrderForTransformedActor(a);
|
||||
foreach (var t in a.TraitsImplementing<IResolveOrder>())
|
||||
t.ResolveOrder(a, order);
|
||||
|
||||
@@ -125,7 +125,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (transform == null && currentTransform == null)
|
||||
return;
|
||||
|
||||
// Manually manage the inner activity queue
|
||||
var activity = currentTransform ?? transform.GetTransformActivity(self);
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
|
||||
@@ -81,7 +81,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
self.SetTargetLine(order.Target, Color.Green);
|
||||
|
||||
// Manually manage the inner activity queue
|
||||
var activity = currentTransform ?? transform.GetTransformActivity(self);
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
|
||||
@@ -106,7 +106,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
self.SetTargetLine(Target.FromCell(self.World, cell), Color.Green);
|
||||
|
||||
// Manually manage the inner activity queue
|
||||
var activity = currentTransform ?? transform.GetTransformActivity(self);
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform("Move", order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
|
||||
@@ -115,7 +115,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
self.SetTargetLine(order.Target, Color.Green);
|
||||
|
||||
// Manually manage the inner activity queue
|
||||
var activity = currentTransform ?? transform.GetTransformActivity(self);
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
|
||||
@@ -106,7 +106,11 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
self.SetTargetLine(order.Target, Color.Green);
|
||||
|
||||
// Manually manage the inner activity queue
|
||||
var activity = currentTransform ?? transform.GetTransformActivity(self);
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
|
||||
Reference in New Issue
Block a user