factor out resupply activity queueing for plane/heli into aircraft
This commit is contained in:
@@ -13,6 +13,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
|
||||
namespace OpenRA.Mods.RA.Air
|
||||
{
|
||||
@@ -173,5 +174,14 @@ namespace OpenRA.Mods.RA.Air
|
||||
var type = self.World.GetTerrainType(cell);
|
||||
return Info.LandableTerrainTypes.Contains(type);
|
||||
}
|
||||
|
||||
public void QueueResupplyActivities(Actor a)
|
||||
{
|
||||
var name = a.Info.Name;
|
||||
if (Info.RearmBuildings.Contains(name))
|
||||
self.QueueActivity(new Rearm());
|
||||
if (Info.RepairBuildings.Contains(name))
|
||||
self.QueueActivity(new Repair(a));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,12 +103,9 @@ namespace OpenRA.Mods.RA.Air
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new HeliFly(order.TargetActor.Trait<IHasLocation>().PxPosition + offset));
|
||||
self.QueueActivity(new Turn(Info.InitialFacing));
|
||||
self.QueueActivity(new HeliLand(false));
|
||||
|
||||
if (Info.RearmBuildings.Contains(order.TargetActor.Info.Name))
|
||||
self.QueueActivity( new Rearm() );
|
||||
if (Info.RepairBuildings.Contains(order.TargetActor.Info.Name))
|
||||
self.QueueActivity( new Repair( order.TargetActor ));
|
||||
self.QueueActivity(new HeliLand(false));
|
||||
|
||||
QueueResupplyActivities(order.TargetActor);
|
||||
}
|
||||
|
||||
if (order.OrderString == "Stop")
|
||||
|
||||
@@ -98,16 +98,12 @@ namespace OpenRA.Mods.RA.Air
|
||||
|
||||
UnReserve();
|
||||
|
||||
var info = self.Info.Traits.Get<PlaneInfo>();
|
||||
self.SetTargetLine(Target.FromOrder(order), Color.Green);
|
||||
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new ReturnToBase(self, order.TargetActor));
|
||||
|
||||
if (info.RearmBuildings.Contains(order.TargetActor.Info.Name))
|
||||
self.QueueActivity( new Rearm() );
|
||||
if (info.RepairBuildings.Contains(order.TargetActor.Info.Name))
|
||||
self.QueueActivity( new Repair( order.TargetActor ));
|
||||
self.QueueActivity(new ReturnToBase(self, order.TargetActor));
|
||||
|
||||
QueueResupplyActivities(order.TargetActor);
|
||||
}
|
||||
else if (order.OrderString == "Stop")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user