Make HeliReturnToBase use a landingProcedures list
Like ReturnToBase already does. Makes them easier to compare and later merge.
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Activities;
|
using OpenRA.Activities;
|
||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
@@ -95,24 +96,26 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var landingProcedures = new List<Activity>();
|
||||||
var exit = dest.FirstExitOrDefault(null);
|
var exit = dest.FirstExitOrDefault(null);
|
||||||
var offset = exit != null ? exit.Info.SpawnOffset : WVec.Zero;
|
var offset = exit != null ? exit.Info.SpawnOffset : WVec.Zero;
|
||||||
|
|
||||||
|
landingProcedures.Add(new HeliFly(self, Target.FromPos(dest.CenterPosition + offset)));
|
||||||
|
|
||||||
if (ShouldLandAtBuilding(self, dest))
|
if (ShouldLandAtBuilding(self, dest))
|
||||||
{
|
{
|
||||||
aircraft.MakeReservation(dest);
|
aircraft.MakeReservation(dest);
|
||||||
|
|
||||||
return ActivityUtils.SequenceActivities(
|
landingProcedures.Add(new Turn(self, initialFacing));
|
||||||
new HeliFly(self, Target.FromPos(dest.CenterPosition + offset)),
|
landingProcedures.Add(new HeliLand(self, false));
|
||||||
new Turn(self, initialFacing),
|
landingProcedures.Add(new ResupplyAircraft(self));
|
||||||
new HeliLand(self, false),
|
if (!abortOnResupply)
|
||||||
new ResupplyAircraft(self),
|
landingProcedures.Add(NextActivity);
|
||||||
!abortOnResupply ? NextActivity : null);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
landingProcedures.Add(NextActivity);
|
||||||
|
|
||||||
return ActivityUtils.SequenceActivities(
|
return ActivityUtils.SequenceActivities(landingProcedures.ToArray());
|
||||||
new HeliFly(self, Target.FromPos(dest.CenterPosition + offset)),
|
|
||||||
NextActivity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShouldLandAtBuilding(Actor self, Actor dest)
|
bool ShouldLandAtBuilding(Actor self, Actor dest)
|
||||||
|
|||||||
Reference in New Issue
Block a user