Move ChildActivity handling into base Activity class.

This commit is contained in:
tovl
2019-04-30 22:45:02 +02:00
committed by teinarss
parent 37379daf3c
commit b9c302a73a
43 changed files with 139 additions and 342 deletions

View File

@@ -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)));
}

View File

@@ -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;
}

View File

@@ -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));
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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()

View File

@@ -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)));