Add missing self and optional pretick parameters to Queue, QueueChild and PrintActivity methods.

This means sequenceActivities needs to accept self as well.
This commit is contained in:
tovl
2019-02-27 23:24:45 +01:00
committed by Paul Chote
parent 69004f2b94
commit 8191a6566b
32 changed files with 82 additions and 101 deletions

View File

@@ -77,7 +77,7 @@ namespace OpenRA.Mods.Common.Activities
// If all valid weapons have depleted their ammo and Rearmable trait exists, return to RearmActor to reload and then resume the activity
if (rearmable != null && !useLastVisibleTarget && attackAircraft.Armaments.All(x => x.IsTraitPaused || !x.Weapon.IsValidAgainst(target, self.World, self)))
return ActivityUtils.SequenceActivities(new ReturnToBase(self, aircraft.Info.AbortOnResupply), this);
return ActivityUtils.SequenceActivities(self, new ReturnToBase(self, aircraft.Info.AbortOnResupply), this);
var pos = self.CenterPosition;
var checkTarget = useLastVisibleTarget ? lastVisibleTarget : target;
@@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Activities
return NextActivity;
// Fly towards the last known position
return ActivityUtils.SequenceActivities(
return ActivityUtils.SequenceActivities(self,
new Fly(self, target, WDist.Zero, lastVisibleMaximumRange, checkTarget.CenterPosition, Color.Red),
this);
}
@@ -103,18 +103,18 @@ namespace OpenRA.Mods.Common.Activities
{
// TODO: This should fire each weapon at its maximum range
if (attackAircraft != null && target.IsInRange(self.CenterPosition, attackAircraft.GetMinimumRange()))
ChildActivity = ActivityUtils.SequenceActivities(
ChildActivity = ActivityUtils.SequenceActivities(self,
new FlyTimed(ticksUntilTurn, self),
new Fly(self, target, checkTarget.CenterPosition, Color.Red),
new FlyTimed(ticksUntilTurn, self));
else
ChildActivity = ActivityUtils.SequenceActivities(
ChildActivity = ActivityUtils.SequenceActivities(self,
new Fly(self, target, checkTarget.CenterPosition, Color.Red),
new FlyTimed(ticksUntilTurn, self));
// HACK: This needs to be done in this round-about way because TakeOff doesn't behave as expected when it doesn't have a NextActivity.
if (self.World.Map.DistanceAboveTerrain(self.CenterPosition).Length < aircraft.Info.MinAirborneAltitude)
ChildActivity = ActivityUtils.SequenceActivities(new TakeOff(self), ChildActivity);
ChildActivity = ActivityUtils.SequenceActivities(self, new TakeOff(self), ChildActivity);
}
ActivityUtils.RunActivity(self, ChildActivity);

View File

@@ -89,7 +89,7 @@ namespace OpenRA.Mods.Common.Activities
}
wasMovingWithinRange = true;
return ActivityUtils.SequenceActivities(
return ActivityUtils.SequenceActivities(self,
aircraft.MoveWithinRange(target, minRange, maxRange, checkTarget.CenterPosition, targetLineColor),
this);
}

View File

@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Activities
// If all valid weapons have depleted their ammo and Rearmable trait exists, return to RearmActor to reload and then resume the activity
if (rearmable != null && !useLastVisibleTarget && attackAircraft.Armaments.All(x => x.IsTraitPaused || !x.Weapon.IsValidAgainst(target, self.World, self)))
return ActivityUtils.SequenceActivities(new HeliReturnToBase(self, aircraft.Info.AbortOnResupply), this);
return ActivityUtils.SequenceActivities(self, new HeliReturnToBase(self, aircraft.Info.AbortOnResupply), this);
var pos = self.CenterPosition;
var checkTarget = useLastVisibleTarget ? lastVisibleTarget : target;

View File

@@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Activities
if (nearestResupplier == null && aircraft.Info.LandWhenIdle)
{
if (aircraft.Info.TurnToLand)
return ActivityUtils.SequenceActivities(new Turn(self, initialFacing), new HeliLand(self, true));
return ActivityUtils.SequenceActivities(self, new Turn(self, initialFacing), new HeliLand(self, true));
return new HeliLand(self, true);
}
@@ -79,7 +79,7 @@ namespace OpenRA.Mods.Common.Activities
var target = Target.FromPos(nearestResupplier.CenterPosition + randomPosition);
return ActivityUtils.SequenceActivities(
return ActivityUtils.SequenceActivities(self,
new HeliFly(self, target, WDist.Zero, aircraft.Info.WaitDistanceFromResupplyBase, targetLineColor: Color.Green),
this);
}
@@ -109,7 +109,7 @@ namespace OpenRA.Mods.Common.Activities
else
landingProcedures.Add(NextActivity);
return ActivityUtils.SequenceActivities(landingProcedures.ToArray());
return ActivityUtils.SequenceActivities(self, landingProcedures.ToArray());
}
bool ShouldLandAtBuilding(Actor self, Actor dest)

View File

@@ -30,19 +30,15 @@ namespace OpenRA.Mods.Common.Activities
if (!aircraft.Info.TakeOffOnResupply)
{
ChildActivity = ActivityUtils.SequenceActivities(
aircraft.GetResupplyActivities(host)
.Append(new AllowYieldingReservation(self))
.Append(new WaitFor(() => NextInQueue != null || aircraft.ReservedActor == null))
.ToArray());
ChildActivity = ActivityUtils.SequenceActivities(self, aircraft.GetResupplyActivities(host).ToArray());
QueueChild(self, new AllowYieldingReservation(self));
QueueChild(self, new WaitFor(() => NextInQueue != null || aircraft.ReservedActor == null));
}
else
{
ChildActivity = ActivityUtils.SequenceActivities(
aircraft.GetResupplyActivities(host)
.Append(new AllowYieldingReservation(self))
.Append(new TakeOff(self, (a, b, c) => NextInQueue == null && b.NextInQueue == null))
.ToArray());
ChildActivity = ActivityUtils.SequenceActivities(self, aircraft.GetResupplyActivities(host).ToArray());
QueueChild(self, new AllowYieldingReservation(self));
QueueChild(self, new TakeOff(self, (a, b, c) => NextInQueue == null && b.NextInQueue == null));
}
}

View File

@@ -135,7 +135,7 @@ namespace OpenRA.Mods.Common.Activities
var nearestResupplier = ChooseResupplier(self, false);
if (nearestResupplier != null)
return ActivityUtils.SequenceActivities(
return ActivityUtils.SequenceActivities(self,
new Fly(self, Target.FromActor(nearestResupplier), WDist.Zero, aircraft.Info.WaitDistanceFromResupplyBase, targetLineColor: Color.Green),
new FlyCircle(self, aircraft.Info.NumberOfTicksToVerifyAvailableAirport),
this);
@@ -168,7 +168,7 @@ namespace OpenRA.Mods.Common.Activities
if (!abortOnResupply)
landingProcedures.Add(NextActivity);
return ActivityUtils.SequenceActivities(landingProcedures.ToArray());
return ActivityUtils.SequenceActivities(self, landingProcedures.ToArray());
}
}
}