From 6986cd9f0eaeeb73f1d9abc7ea0d32120c1c1a6e Mon Sep 17 00:00:00 2001 From: atlimit8 Date: Thu, 16 Jul 2015 08:57:50 -0500 Subject: [PATCH] Remove TargetableAircraft --- OpenRA.Mods.Common/OpenRA.Mods.Common.csproj | 1 - .../Traits/Air/TargetableAircraft.cs | 42 ------------------- .../UtilityCommands/UpgradeRules.cs | 36 ++++++++++++++++ mods/cnc/rules/aircraft.yaml | 8 ++++ mods/cnc/rules/defaults.yaml | 10 ++++- mods/d2k/rules/aircraft.yaml | 18 +++++++- mods/d2k/rules/misc.yaml | 1 + mods/ra/maps/allies-05a/map.yaml | 4 +- mods/ra/rules/aircraft.yaml | 10 ++++- mods/ra/rules/defaults.yaml | 9 +++- mods/ra/rules/husks.yaml | 7 ++++ mods/ts/rules/aircraft.yaml | 8 ++++ mods/ts/rules/defaults.yaml | 11 ++++- 13 files changed, 111 insertions(+), 54 deletions(-) delete mode 100644 OpenRA.Mods.Common/Traits/Air/TargetableAircraft.cs diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index e319012def..e0cc610688 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -256,7 +256,6 @@ - diff --git a/OpenRA.Mods.Common/Traits/Air/TargetableAircraft.cs b/OpenRA.Mods.Common/Traits/Air/TargetableAircraft.cs deleted file mode 100644 index 0bb6f759f6..0000000000 --- a/OpenRA.Mods.Common/Traits/Air/TargetableAircraft.cs +++ /dev/null @@ -1,42 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Collections.Generic; -using OpenRA.Traits; - -namespace OpenRA.Mods.Common.Traits -{ - public class TargetableAircraftInfo : TargetableInfo - { - public readonly string[] GroundedTargetTypes = { }; - public override object Create(ActorInitializer init) { return new TargetableAircraft(init.Self, this); } - } - - public class TargetableAircraft : Targetable - { - readonly TargetableAircraftInfo info; - readonly Actor self; - - public TargetableAircraft(Actor self, TargetableAircraftInfo info) - : base(self, info) - { - this.info = info; - this.self = self; - } - - public override string[] TargetTypes - { - get - { - return (self.CenterPosition.Z > 0) ? info.TargetTypes : info.GroundedTargetTypes; - } - } - } -} diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index 49e62850c5..7138902dc0 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -2012,6 +2012,42 @@ namespace OpenRA.Mods.Common.UtilityCommands untargetableSubmarine.Key = "-Targetable"; node.Value.Nodes.Add(new MiniYamlNode("-Targetable@UNDERWATER", "")); } + + // Split TargetableAircraft into two Targetable traits + var targetableAircraft = node.Value.Nodes.FirstOrDefault(n => n.Key == "TargetableAircraft"); + if (targetableAircraft != null) + { + node.Value.Nodes.RemoveAll(n => n.Key == "-Targetable"); + targetableAircraft.Key = "Targetable@AIRBORNE"; + targetableAircraft.Value.Nodes.Add(new MiniYamlNode("UpgradeTypes", "airborne")); + targetableAircraft.Value.Nodes.Add(new MiniYamlNode("UpgradeMinEnabledLevel", "1")); + var groundTargetTypes = targetableAircraft.Value.Nodes.FirstOrDefault(n => n.Key == "GroundedTargetTypes"); + if (groundTargetTypes != null) + { + targetableAircraft.Value.Nodes.Remove(groundTargetTypes); + groundTargetTypes.Key = "TargetTypes"; + } + else + groundTargetTypes = new MiniYamlNode("TargetTypes", ""); + node.Value.Nodes.Add(new MiniYamlNode("Targetable@GROUND", "", new List { + groundTargetTypes, + new MiniYamlNode("UpgradeTypes", "airborne"), + new MiniYamlNode("UpgradeMaxEnabledLevel", "0") + })); + } + + // Add `AirborneUpgrades: airborne` to Plane and Helicopter + var aircraft = node.Value.Nodes.FirstOrDefault(n => n.Key == "Plane" || n.Key == "Helicopter"); + if (aircraft != null) + aircraft.Value.Nodes.Add(new MiniYamlNode("AirborneUpgrades", "airborne")); + + // Remove split traits if TargetableAircraft was removed + var untargetableAircraft = node.Value.Nodes.FirstOrDefault(n => n.Key == "-TargetableAircraft"); + if (untargetableAircraft != null) + { + untargetableAircraft.Key = "-TargetableUnit@GROUND"; + node.Value.Nodes.Add(new MiniYamlNode("-TargetableUnit@AIRBORNE", "")); + } } } diff --git a/mods/cnc/rules/aircraft.yaml b/mods/cnc/rules/aircraft.yaml index d994101f9a..ee46c40815 100644 --- a/mods/cnc/rules/aircraft.yaml +++ b/mods/cnc/rules/aircraft.yaml @@ -16,6 +16,7 @@ TRAN: InitialFacing: 0 LandableTerrainTypes: Clear,Rough,Road,Ore,Beach,Tiberium,BlueTiberium AltitudeVelocity: 0c100 + AirborneUpgrades: airborne Health: HP: 90 Armor: @@ -56,6 +57,7 @@ HELI: RearmBuildings: hpad ROT: 4 Speed: 186 + AirborneUpgrades: airborne Health: HP: 125 Armor: @@ -107,6 +109,7 @@ ORCA: RearmBuildings: hpad ROT: 4 Speed: 186 + AirborneUpgrades: airborne Health: HP: 90 Armor: @@ -152,6 +155,7 @@ C17: ROT: 5 Speed: 326 Repulsable: False + AirborneUpgrades: airborne Health: HP: 25 Armor: @@ -188,6 +192,7 @@ A10: ROT: 4 Speed: 373 Repulsable: False + AirborneUpgrades: airborne Health: HP: 150 Armor: @@ -219,6 +224,7 @@ TRAN.Husk: Helicopter: ROT: 5 Speed: 140 + AirborneUpgrades: airborne RevealsShroud: Range: 8c0 Type: CenterPosition @@ -236,6 +242,7 @@ HELI.Husk: Helicopter: ROT: 4 Speed: 186 + AirborneUpgrades: airborne RevealsShroud: Range: 10c0 Type: CenterPosition @@ -251,6 +258,7 @@ ORCA.Husk: Helicopter: ROT: 4 Speed: 186 + AirborneUpgrades: airborne RevealsShroud: Range: 10c0 Type: CenterPosition diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 115d76afc8..5f4966994c 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -116,9 +116,14 @@ Inherits@2: ^GainsExperience AppearsOnRadar: UseLocation: yes - TargetableAircraft: + Targetable@GROUND: + TargetTypes: Ground, Vehicle + UpgradeTypes: airborne + UpgradeMaxEnabledLevel: 0 + Targetable@AIRBORNE: TargetTypes: Air - GroundedTargetTypes: Ground, Vehicle + UpgradeTypes: airborne + UpgradeMinEnabledLevel: 1 SelectionDecorations: Selectable: Bounds: 24,24 @@ -126,6 +131,7 @@ RepairBuildings: hpad RearmBuildings: LandWhenIdle: false + AirborneUpgrades: airborne HiddenUnderFog: Type: CenterPosition ActorLostNotification: diff --git a/mods/d2k/rules/aircraft.yaml b/mods/d2k/rules/aircraft.yaml index 8ee9f578be..f2de72efea 100644 --- a/mods/d2k/rules/aircraft.yaml +++ b/mods/d2k/rules/aircraft.yaml @@ -20,6 +20,7 @@ carryall.reinforce: Repulsable: False LandAltitude: 100 LandWhenIdle: False + AirborneUpgrades: airborne SpawnActorOnDeath: Actor: carryall.husk Carryall: @@ -53,6 +54,7 @@ carryall.infantry: RepairBuildings: repair RearmBuildings: Repulsable: False + AirborneUpgrades: airborne Cargo: MaxWeight: 5 Types: Infantry @@ -77,6 +79,7 @@ frigate: RepairBuildings: repair RearmBuildings: Repulsable: False + AirborneUpgrades: airborne Health: HP: 500 -AppearsOnRadar: @@ -116,14 +119,20 @@ orni: Speed: 280 RepairBuildings: repair RearmBuildings: + AirborneUpgrades: airborne SpawnActorOnDeath: Actor: orni.husk SelectionDecorations: Selectable: Bounds: 32,32 - TargetableAircraft: + Targetable@GROUND: + TargetTypes: Ground, Vehicle + UpgradeTypes: airborne + UpgradeMaxEnabledLevel: 0 + Targetable@AIRBORNE: TargetTypes: Air - GroundedTargetTypes: Ground, Vehicle + UpgradeTypes: airborne + UpgradeMinEnabledLevel: 1 Voiced: VoiceSet: GenericVoice @@ -142,6 +151,7 @@ orni.bomber: RepairBuildings: repair RearmBuildings: Repulsable: False + AirborneUpgrades: airborne AmmoPool: Ammo: 5 Tooltip: @@ -161,6 +171,7 @@ orni.husk: Speed: 280 RepairBuildings: RearmBuildings: + AirborneUpgrades: airborne RenderSprites: Image: orni @@ -173,6 +184,7 @@ orni.bomber.husk: Speed: 350 RepairBuildings: RearmBuildings: + AirborneUpgrades: airborne RenderSprites: Image: orni @@ -185,6 +197,7 @@ carryall.husk: Speed: 210 RepairBuildings: RearmBuildings: + AirborneUpgrades: airborne RenderSprites: Image: carryall @@ -197,6 +210,7 @@ carryall.infantry.husk: Speed: 280 RepairBuildings: RearmBuildings: + AirborneUpgrades: airborne RenderSprites: Image: carryall diff --git a/mods/d2k/rules/misc.yaml b/mods/d2k/rules/misc.yaml index 785732fddf..c47a6a6244 100644 --- a/mods/d2k/rules/misc.yaml +++ b/mods/d2k/rules/misc.yaml @@ -133,6 +133,7 @@ waypoint: Inherits: carryall Helicopter: InitialFacing: 104 + AirborneUpgrades: airborne RenderSprites: Image: carryall Palette: colorpicker diff --git a/mods/ra/maps/allies-05a/map.yaml b/mods/ra/maps/allies-05a/map.yaml index 9dd53ff6e1..6664e0ae5a 100644 --- a/mods/ra/maps/allies-05a/map.yaml +++ b/mods/ra/maps/allies-05a/map.yaml @@ -1668,8 +1668,8 @@ Rules: Range: 4c0 Tooltip: ShowOwnerRow: false - TargetableAircraft: - GroundedTargetTypes: Ground + Targetable@GROUND: + TargetTypes: Ground TRAN.IN: Inherits: TRAN RenderSprites: diff --git a/mods/ra/rules/aircraft.yaml b/mods/ra/rules/aircraft.yaml index 8fd804704b..5fb48bd807 100644 --- a/mods/ra/rules/aircraft.yaml +++ b/mods/ra/rules/aircraft.yaml @@ -12,6 +12,7 @@ BADR: Speed: 149 Repulsable: False MaximumPitch: 56 + AirborneUpgrades: airborne Cargo: MaxWeight: 10 -Selectable: @@ -49,6 +50,7 @@ BADR.Bomber: Speed: 149 Repulsable: False MaximumPitch: 56 + AirborneUpgrades: airborne AmmoPool: Ammo: 7 -Selectable: @@ -106,6 +108,7 @@ MIG: RearmBuildings: afld RepulsionSpeed: 40 MaximumPitch: 56 + AirborneUpgrades: airborne AutoTarget: TargetWhenIdle: false TargetWhenDamaged: false @@ -167,6 +170,7 @@ YAK: Speed: 178 RepulsionSpeed: 40 MaximumPitch: 56 + AirborneUpgrades: airborne AutoTarget: TargetWhenIdle: false TargetWhenDamaged: false @@ -215,6 +219,7 @@ TRAN: Speed: 112 LandableTerrainTypes: Clear,Rough,Road,Ore,Beach AltitudeVelocity: 0c100 + AirborneUpgrades: airborne WithRotor@PRIMARY: Offset: -597,0,341 Sequence: rotor2 @@ -261,6 +266,7 @@ HELI: InitialFacing: 20 ROT: 4 Speed: 149 + AirborneUpgrades: airborne AutoTarget: InitialStance: HoldFire WithRotor: @@ -312,6 +318,7 @@ HIND: InitialFacing: 20 ROT: 4 Speed: 112 + AirborneUpgrades: airborne AutoTarget: InitialStance: HoldFire WithRotor: @@ -341,10 +348,11 @@ U2: Speed: 373 Repulsable: False MaximumPitch: 56 + AirborneUpgrades: airborne AttackBomber: -Selectable: -Voiced: - -TargetableAircraft: + -Targetable@AIRBORNE: -GainsExperience: Contrail@1: Offset: -725,683,0 diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 83d2b684fe..98159c7e57 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -339,9 +339,14 @@ SelectionDecorations: Selectable: Bounds: 24,24 - TargetableAircraft: + Targetable@GROUND: + TargetTypes: Ground, Repair, Vehicle + UpgradeTypes: airborne + UpgradeMaxEnabledLevel: 0 + Targetable@AIRBORNE: TargetTypes: Air - GroundedTargetTypes: Ground, Repair, Vehicle + UpgradeTypes: airborne + UpgradeMinEnabledLevel: 1 HiddenUnderFog: Type: CenterPosition AttackMove: diff --git a/mods/ra/rules/husks.yaml b/mods/ra/rules/husks.yaml index c318134b13..7053e6a84e 100644 --- a/mods/ra/rules/husks.yaml +++ b/mods/ra/rules/husks.yaml @@ -88,6 +88,7 @@ TRAN.Husk: Helicopter: ROT: 4 Speed: 149 + AirborneUpgrades: airborne WithRotor@PRIMARY: Offset: -597,0,341 WithRotor@SECONDARY: @@ -119,6 +120,7 @@ BADR.Husk: Plane: ROT: 5 Speed: 149 + AirborneUpgrades: airborne SmokeTrailWhenDamaged@0: Offset: -432,560,0 Interval: 2 @@ -141,6 +143,7 @@ MIG.Husk: Plane: ROT: 5 Speed: 186 + AirborneUpgrades: airborne SmokeTrailWhenDamaged: Offset: -853,0,171 Interval: 2 @@ -160,6 +163,7 @@ YAK.Husk: Plane: ROT: 5 Speed: 149 + AirborneUpgrades: airborne SmokeTrailWhenDamaged: Offset: -853,0,0 Interval: 2 @@ -177,6 +181,7 @@ HELI.Husk: Helicopter: ROT: 4 Speed: 149 + AirborneUpgrades: airborne WithRotor: Offset: 0,0,85 SmokeTrailWhenDamaged: @@ -195,6 +200,7 @@ HIND.Husk: Helicopter: ROT: 4 Speed: 112 + AirborneUpgrades: airborne WithRotor: SmokeTrailWhenDamaged: Offset: -427,0,0 @@ -210,6 +216,7 @@ U2.Husk: Plane: ROT: 7 Speed: 373 + AirborneUpgrades: airborne Contrail@1: Offset: -725,683,0 Contrail@2: diff --git a/mods/ts/rules/aircraft.yaml b/mods/ts/rules/aircraft.yaml index 846b931d68..6cdcc566d2 100644 --- a/mods/ts/rules/aircraft.yaml +++ b/mods/ts/rules/aircraft.yaml @@ -10,6 +10,7 @@ DPOD: Speed: 149 InitialFacing: 0 LandableTerrainTypes: Clear + AirborneUpgrades: airborne Health: HP: 60 Armor: @@ -47,6 +48,7 @@ DSHP: LandableTerrainTypes: Clear TakeoffSound: dropup1.aud LandingSound: dropdwn1.aud + AirborneUpgrades: airborne Health: HP: 200 Armor: @@ -78,6 +80,7 @@ ORCA: RearmBuildings: gahpad, nahpad ROT: 5 Speed: 186 + AirborneUpgrades: airborne Health: HP: 200 Armor: @@ -117,6 +120,7 @@ ORCAB: MaximumPitch: 120 ROT: 3 Speed: 96 + AirborneUpgrades: airborne Health: HP: 260 Armor: @@ -159,6 +163,7 @@ ORCATRAN: LandableTerrainTypes: Clear TakeoffSound: dropup1.aud LandingSound: dropdwn1.aud + AirborneUpgrades: airborne Health: HP: 200 Armor: @@ -193,6 +198,7 @@ TRNSPORT: TakeoffSound: dropup1.aud LandingSound: dropdwn1.aud AltitudeVelocity: 64 + AirborneUpgrades: airborne Health: HP: 175 Armor: @@ -224,6 +230,7 @@ SCRIN: MaximumPitch: 90 ROT: 3 Speed: 168 + AirborneUpgrades: airborne Health: HP: 280 Armor: @@ -262,6 +269,7 @@ APACHE: RearmBuildings: gahpad, nahpad ROT: 5 Speed: 130 + AirborneUpgrades: airborne Health: HP: 225 Armor: diff --git a/mods/ts/rules/defaults.yaml b/mods/ts/rules/defaults.yaml index b7b3ce04a6..921cc974df 100644 --- a/mods/ts/rules/defaults.yaml +++ b/mods/ts/rules/defaults.yaml @@ -453,9 +453,14 @@ DrawLineToTarget: AppearsOnRadar: UseLocation: yes - TargetableAircraft: + Targetable@GROUND: + TargetTypes: Ground + UpgradeTypes: airborne + UpgradeMaxEnabledLevel: 0 + Targetable@AIRBORNE: TargetTypes: Air - GroundedTargetTypes: Ground + UpgradeTypes: airborne + UpgradeMinEnabledLevel: 1 Selectable: SelectionDecorations: Palette: pips @@ -484,6 +489,7 @@ LandWhenIdle: no CruiseAltitude: 2048 Voice: Move + AirborneUpgrades: airborne ^Plane: Inherits: ^Aircraft @@ -493,6 +499,7 @@ LandWhenIdle: no CruiseAltitude: 2560 Voice: Move + AirborneUpgrades: airborne ReturnOnIdle: ^Viceroid: