diff --git a/OpenRA.Mods.RA/Air/Helicopter.cs b/OpenRA.Mods.RA/Air/Helicopter.cs index 1ed2a8bbf1..2d416bef2a 100755 --- a/OpenRA.Mods.RA/Air/Helicopter.cs +++ b/OpenRA.Mods.RA/Air/Helicopter.cs @@ -19,8 +19,15 @@ namespace OpenRA.Mods.RA.Air class HelicopterInfo : AircraftInfo, IMoveInfo { public readonly WRange IdealSeparation = new WRange(1706); + + [Desc("Allow the helicopter land after it has no more commands.")] public readonly bool LandWhenIdle = true; + + [Desc("Allow the helicopter turn before landing.")] + public readonly bool TurnToLand = false; public readonly WRange LandAltitude = WRange.Zero; + + [Desc("How fast the helicopter ascends or descends.")] public readonly WRange AltitudeVelocity = new WRange(43); public override object Create(ActorInitializer init) { return new Helicopter(init, this); } @@ -59,7 +66,9 @@ namespace OpenRA.Mods.RA.Air if (Info.LandWhenIdle) { - self.QueueActivity(new Turn(Info.InitialFacing)); + if (Info.TurnToLand) + self.QueueActivity(new Turn(Info.InitialFacing)); + self.QueueActivity(new HeliLand(true)); } } @@ -103,7 +112,9 @@ namespace OpenRA.Mods.RA.Air if (Info.LandWhenIdle) { - self.QueueActivity(new Turn(Info.InitialFacing)); + if (Info.TurnToLand) + self.QueueActivity(new Turn(Info.InitialFacing)); + self.QueueActivity(new HeliLand(true)); } } diff --git a/mods/cnc/rules/aircraft.yaml b/mods/cnc/rules/aircraft.yaml index 6839c9bd6a..d229b496d4 100644 --- a/mods/cnc/rules/aircraft.yaml +++ b/mods/cnc/rules/aircraft.yaml @@ -17,6 +17,7 @@ TRAN: Speed: 140 InitialFacing: 0 LandableTerrainTypes: Clear,Rough,Road,Ore,Beach,Tiberium,BlueTiberium + AltitudeVelocity: 0c100 Health: HP: 90 Armor: diff --git a/mods/ra/rules/aircraft.yaml b/mods/ra/rules/aircraft.yaml index c228237611..adc028ab8a 100644 --- a/mods/ra/rules/aircraft.yaml +++ b/mods/ra/rules/aircraft.yaml @@ -206,6 +206,7 @@ TRAN: ROT: 5 Speed: 112 LandableTerrainTypes: Clear,Rough,Road,Ore,Beach + AltitudeVelocity: 0c100 RenderUnit: WithRotor@PRIMARY: Offset: -597,0,341