factor out resupply activity queueing for plane/heli into aircraft

This commit is contained in:
Chris Forbes
2011-04-16 10:59:33 +12:00
committed by Paul Chote
parent 0cb133e038
commit 865f3e1b74
3 changed files with 16 additions and 13 deletions

View File

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

View File

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

View File

@@ -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")
{