#117 off-map planes should spawn at cruise altitude

This commit is contained in:
Chris Forbes
2010-03-27 18:07:01 +13:00
parent 17b135926d
commit f6a52f4e50
4 changed files with 5 additions and 2 deletions

View File

@@ -24,7 +24,7 @@ using OpenRA.Traits.Activities;
namespace OpenRA.Traits namespace OpenRA.Traits
{ {
class PlaneInfo : ITraitInfo public class PlaneInfo : ITraitInfo
{ {
public readonly int CruiseAltitude = 20; public readonly int CruiseAltitude = 20;
public readonly string[] RearmBuildings = { "afld" }; public readonly string[] RearmBuildings = { "afld" };
@@ -33,7 +33,7 @@ namespace OpenRA.Traits
public object Create(Actor self) { return new Plane(self); } public object Create(Actor self) { return new Plane(self); }
} }
class Plane : IIssueOrder, IResolveOrder, IMovement public class Plane : IIssueOrder, IResolveOrder, IMovement
{ {
public IDisposable reservation; public IDisposable reservation;

View File

@@ -49,6 +49,7 @@ namespace OpenRA.Mods.Cnc
var a = w.CreateActor("C17", startPos, owner); var a = w.CreateActor("C17", startPos, owner);
var cargo = a.traits.Get<Cargo>(); var cargo = a.traits.Get<Cargo>();
a.traits.Get<Unit>().Facing = 64; a.traits.Get<Unit>().Facing = 64;
a.traits.Get<Unit>().Altitude = a.Info.Traits.Get<PlaneInfo>().CruiseAltitude;
var newUnit = new Actor(self.World, producee.Name, new int2(0, 0), self.Owner); var newUnit = new Actor(self.World, producee.Name, new int2(0, 0), self.Owner);
cargo.Load(a, newUnit); cargo.Load(a, newUnit);

View File

@@ -78,6 +78,7 @@ namespace OpenRA.Mods.RA
{ {
var a = w.CreateActor("BADR", startPos, owner); var a = w.CreateActor("BADR", startPos, owner);
a.traits.Get<Unit>().Facing = Util.GetFacing(p - startPos, 0); a.traits.Get<Unit>().Facing = Util.GetFacing(p - startPos, 0);
a.traits.Get<Unit>().Altitude = a.Info.Traits.Get<PlaneInfo>().CruiseAltitude;
a.CancelActivity(); a.CancelActivity();
a.QueueActivity(new FlyCircle(p)); a.QueueActivity(new FlyCircle(p));

View File

@@ -53,6 +53,7 @@ namespace OpenRA.Mods.RA
var enterCell = self.World.ChooseRandomEdgeCell(); var enterCell = self.World.ChooseRandomEdgeCell();
var plane = self.World.CreateActor("U2", enterCell, self.Owner); var plane = self.World.CreateActor("U2", enterCell, self.Owner);
plane.traits.Get<Unit>().Altitude = plane.Info.Traits.Get<PlaneInfo>().CruiseAltitude;
plane.traits.Get<Unit>().Facing = Util.GetFacing(order.TargetLocation - enterCell, 0); plane.traits.Get<Unit>().Facing = Util.GetFacing(order.TargetLocation - enterCell, 0);
plane.CancelActivity(); plane.CancelActivity();