Add LeaveMapAtClosestEdge idle behaviour for Aircraft
This commit is contained in:
committed by
Paul Chote
parent
ef69a3de66
commit
3eeb677f14
@@ -27,6 +27,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Land,
|
Land,
|
||||||
ReturnToBase,
|
ReturnToBase,
|
||||||
LeaveMap,
|
LeaveMap,
|
||||||
|
LeaveMapAtClosestEdge
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AircraftInfo : PausableConditionalTraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, ICruiseAltitudeInfo,
|
public class AircraftInfo : PausableConditionalTraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, ICruiseAltitudeInfo,
|
||||||
@@ -725,6 +726,12 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
self.QueueActivity(new FlyOffMap(self));
|
self.QueueActivity(new FlyOffMap(self));
|
||||||
self.QueueActivity(new RemoveSelf());
|
self.QueueActivity(new RemoveSelf());
|
||||||
}
|
}
|
||||||
|
else if (Info.IdleBehavior == IdleBehaviorType.LeaveMapAtClosestEdge)
|
||||||
|
{
|
||||||
|
var edgeCell = self.World.Map.ChooseClosestEdgeCell(self.Location);
|
||||||
|
self.QueueActivity(new FlyOffMap(self, Target.FromCell(self.World, edgeCell)));
|
||||||
|
self.QueueActivity(new RemoveSelf());
|
||||||
|
}
|
||||||
else if (Info.IdleBehavior == IdleBehaviorType.ReturnToBase && GetActorBelow() == null)
|
else if (Info.IdleBehavior == IdleBehaviorType.ReturnToBase && GetActorBelow() == null)
|
||||||
self.QueueActivity(new ReturnToBase(self, null, !Info.TakeOffOnResupply));
|
self.QueueActivity(new ReturnToBase(self, null, !Info.TakeOffOnResupply));
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user