Move ChildActivity handling into base Activity class.
This commit is contained in:
@@ -861,7 +861,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
public Activity VisualMove(Actor self, WPos fromPos, WPos toPos)
|
||||
{
|
||||
// TODO: Ignore repulsion when moving
|
||||
return ActivityUtils.SequenceActivities(self,
|
||||
return ActivityUtils.SequenceActivities(
|
||||
new CallFunc(() => SetVisualPosition(self, fromPos)),
|
||||
new Fly(self, Target.FromPos(toPos)));
|
||||
}
|
||||
|
||||
@@ -257,13 +257,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public override Activity Tick(Actor self)
|
||||
{
|
||||
if (ChildActivity != null)
|
||||
{
|
||||
ChildActivity = ActivityUtils.RunActivity(self, ChildActivity);
|
||||
if (ChildActivity != null)
|
||||
return this;
|
||||
}
|
||||
|
||||
if (IsCanceling)
|
||||
{
|
||||
// Cancel the requested target, but keep firing on it while in range
|
||||
@@ -362,7 +355,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
|
||||
wasMovingWithinRange = true;
|
||||
QueueChild(self, move.MoveWithinRange(target, minRange, maxRange, checkTarget.CenterPosition, Color.Red), true);
|
||||
QueueChild(move.MoveWithinRange(target, minRange, maxRange, checkTarget.CenterPosition, Color.Red));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -164,9 +164,9 @@ namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
if (!preventDock)
|
||||
{
|
||||
dockOrder.QueueChild(self, new CallFunc(() => dockedHarv = harv, false));
|
||||
dockOrder.QueueChild(self, DockSequence(harv, self));
|
||||
dockOrder.QueueChild(self, new CallFunc(() => dockedHarv = null, false));
|
||||
dockOrder.QueueChild(new CallFunc(() => dockedHarv = harv, false));
|
||||
dockOrder.QueueChild(DockSequence(harv, self));
|
||||
dockOrder.QueueChild(new CallFunc(() => dockedHarv = null, false));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
activity.Queue(new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
self.QueueActivity(order.Queued, activity);
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
activity.Queue(new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
self.QueueActivity(order.Queued, activity);
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform("Move", order.Target));
|
||||
activity.Queue(new IssueOrderAfterTransform("Move", order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
self.QueueActivity(order.Queued, activity);
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
activity.Queue(new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
self.QueueActivity(order.Queued, activity);
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!order.Queued && activity.NextActivity != null)
|
||||
activity.NextActivity.Cancel(self);
|
||||
|
||||
activity.Queue(self, new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
activity.Queue(new IssueOrderAfterTransform(order.OrderString, order.Target));
|
||||
|
||||
if (currentTransform == null)
|
||||
self.QueueActivity(order.Queued, activity);
|
||||
|
||||
@@ -132,7 +132,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
return moveInner;
|
||||
|
||||
var activity = new DeployForGrantedCondition(self, this, true);
|
||||
activity.Queue(self, moveInner);
|
||||
activity.Queue(moveInner);
|
||||
return activity;
|
||||
}
|
||||
|
||||
|
||||
@@ -322,7 +322,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
var notifyBlocking = new CallFunc(() => self.NotifyBlocker(cellInfo.Cell));
|
||||
var waitFor = new WaitFor(() => CanEnterCell(cellInfo.Cell));
|
||||
var move = new Move(self, cellInfo.Cell);
|
||||
self.QueueActivity(ActivityUtils.SequenceActivities(self, notifyBlocking, waitFor, move));
|
||||
self.QueueActivity(ActivityUtils.SequenceActivities(notifyBlocking, waitFor, move));
|
||||
|
||||
Log.Write("debug", "OnNudge (notify next blocking actor, wait and move) #{0} from {1} to {2}",
|
||||
self.ActorID, self.Location, cellInfo.Cell);
|
||||
@@ -691,7 +691,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
var delta = toPos - fromPos;
|
||||
var facing = delta.HorizontalLengthSquared != 0 ? delta.Yaw.Facing : Facing;
|
||||
return ActivityUtils.SequenceActivities(self, new Turn(self, facing), new Drag(self, fromPos, toPos, length));
|
||||
return ActivityUtils.SequenceActivities(new Turn(self, facing), new Drag(self, fromPos, toPos, length));
|
||||
}
|
||||
|
||||
CPos? ClosestGroundCell()
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
self.CancelActivity();
|
||||
|
||||
self.SetTargetLine(order.Target, Color.Green);
|
||||
var activities = ActivityUtils.SequenceActivities(self,
|
||||
var activities = ActivityUtils.SequenceActivities(
|
||||
movement.MoveToTarget(self, order.Target, targetLineColor: Color.Green),
|
||||
new CallFunc(() => AfterReachActivities(self, order, movement)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user