Remove TargetableAircraft

This commit is contained in:
atlimit8
2015-07-16 08:57:50 -05:00
parent 97ce4766f3
commit 6986cd9f0e
13 changed files with 111 additions and 54 deletions

View File

@@ -256,7 +256,6 @@
<Compile Include="Traits\Air\Helicopter.cs" /> <Compile Include="Traits\Air\Helicopter.cs" />
<Compile Include="Traits\Air\Plane.cs" /> <Compile Include="Traits\Air\Plane.cs" />
<Compile Include="Traits\Air\ReturnOnIdle.cs" /> <Compile Include="Traits\Air\ReturnOnIdle.cs" />
<Compile Include="Traits\Air\TargetableAircraft.cs" />
<Compile Include="Traits\AppearsOnRadar.cs" /> <Compile Include="Traits\AppearsOnRadar.cs" />
<Compile Include="Traits\Armament.cs" /> <Compile Include="Traits\Armament.cs" />
<Compile Include="Traits\Armor.cs" /> <Compile Include="Traits\Armor.cs" />

View File

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

View File

@@ -2012,6 +2012,42 @@ namespace OpenRA.Mods.Common.UtilityCommands
untargetableSubmarine.Key = "-Targetable"; untargetableSubmarine.Key = "-Targetable";
node.Value.Nodes.Add(new MiniYamlNode("-Targetable@UNDERWATER", "")); 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<MiniYamlNode> {
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", ""));
}
} }
} }

View File

@@ -16,6 +16,7 @@ TRAN:
InitialFacing: 0 InitialFacing: 0
LandableTerrainTypes: Clear,Rough,Road,Ore,Beach,Tiberium,BlueTiberium LandableTerrainTypes: Clear,Rough,Road,Ore,Beach,Tiberium,BlueTiberium
AltitudeVelocity: 0c100 AltitudeVelocity: 0c100
AirborneUpgrades: airborne
Health: Health:
HP: 90 HP: 90
Armor: Armor:
@@ -56,6 +57,7 @@ HELI:
RearmBuildings: hpad RearmBuildings: hpad
ROT: 4 ROT: 4
Speed: 186 Speed: 186
AirborneUpgrades: airborne
Health: Health:
HP: 125 HP: 125
Armor: Armor:
@@ -107,6 +109,7 @@ ORCA:
RearmBuildings: hpad RearmBuildings: hpad
ROT: 4 ROT: 4
Speed: 186 Speed: 186
AirborneUpgrades: airborne
Health: Health:
HP: 90 HP: 90
Armor: Armor:
@@ -152,6 +155,7 @@ C17:
ROT: 5 ROT: 5
Speed: 326 Speed: 326
Repulsable: False Repulsable: False
AirborneUpgrades: airborne
Health: Health:
HP: 25 HP: 25
Armor: Armor:
@@ -188,6 +192,7 @@ A10:
ROT: 4 ROT: 4
Speed: 373 Speed: 373
Repulsable: False Repulsable: False
AirborneUpgrades: airborne
Health: Health:
HP: 150 HP: 150
Armor: Armor:
@@ -219,6 +224,7 @@ TRAN.Husk:
Helicopter: Helicopter:
ROT: 5 ROT: 5
Speed: 140 Speed: 140
AirborneUpgrades: airborne
RevealsShroud: RevealsShroud:
Range: 8c0 Range: 8c0
Type: CenterPosition Type: CenterPosition
@@ -236,6 +242,7 @@ HELI.Husk:
Helicopter: Helicopter:
ROT: 4 ROT: 4
Speed: 186 Speed: 186
AirborneUpgrades: airborne
RevealsShroud: RevealsShroud:
Range: 10c0 Range: 10c0
Type: CenterPosition Type: CenterPosition
@@ -251,6 +258,7 @@ ORCA.Husk:
Helicopter: Helicopter:
ROT: 4 ROT: 4
Speed: 186 Speed: 186
AirborneUpgrades: airborne
RevealsShroud: RevealsShroud:
Range: 10c0 Range: 10c0
Type: CenterPosition Type: CenterPosition

View File

@@ -116,9 +116,14 @@
Inherits@2: ^GainsExperience Inherits@2: ^GainsExperience
AppearsOnRadar: AppearsOnRadar:
UseLocation: yes UseLocation: yes
TargetableAircraft: Targetable@GROUND:
TargetTypes: Ground, Vehicle
UpgradeTypes: airborne
UpgradeMaxEnabledLevel: 0
Targetable@AIRBORNE:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground, Vehicle UpgradeTypes: airborne
UpgradeMinEnabledLevel: 1
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24 Bounds: 24,24
@@ -126,6 +131,7 @@
RepairBuildings: hpad RepairBuildings: hpad
RearmBuildings: RearmBuildings:
LandWhenIdle: false LandWhenIdle: false
AirborneUpgrades: airborne
HiddenUnderFog: HiddenUnderFog:
Type: CenterPosition Type: CenterPosition
ActorLostNotification: ActorLostNotification:

View File

@@ -20,6 +20,7 @@ carryall.reinforce:
Repulsable: False Repulsable: False
LandAltitude: 100 LandAltitude: 100
LandWhenIdle: False LandWhenIdle: False
AirborneUpgrades: airborne
SpawnActorOnDeath: SpawnActorOnDeath:
Actor: carryall.husk Actor: carryall.husk
Carryall: Carryall:
@@ -53,6 +54,7 @@ carryall.infantry:
RepairBuildings: repair RepairBuildings: repair
RearmBuildings: RearmBuildings:
Repulsable: False Repulsable: False
AirborneUpgrades: airborne
Cargo: Cargo:
MaxWeight: 5 MaxWeight: 5
Types: Infantry Types: Infantry
@@ -77,6 +79,7 @@ frigate:
RepairBuildings: repair RepairBuildings: repair
RearmBuildings: RearmBuildings:
Repulsable: False Repulsable: False
AirborneUpgrades: airborne
Health: Health:
HP: 500 HP: 500
-AppearsOnRadar: -AppearsOnRadar:
@@ -116,14 +119,20 @@ orni:
Speed: 280 Speed: 280
RepairBuildings: repair RepairBuildings: repair
RearmBuildings: RearmBuildings:
AirborneUpgrades: airborne
SpawnActorOnDeath: SpawnActorOnDeath:
Actor: orni.husk Actor: orni.husk
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 32,32 Bounds: 32,32
TargetableAircraft: Targetable@GROUND:
TargetTypes: Ground, Vehicle
UpgradeTypes: airborne
UpgradeMaxEnabledLevel: 0
Targetable@AIRBORNE:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground, Vehicle UpgradeTypes: airborne
UpgradeMinEnabledLevel: 1
Voiced: Voiced:
VoiceSet: GenericVoice VoiceSet: GenericVoice
@@ -142,6 +151,7 @@ orni.bomber:
RepairBuildings: repair RepairBuildings: repair
RearmBuildings: RearmBuildings:
Repulsable: False Repulsable: False
AirborneUpgrades: airborne
AmmoPool: AmmoPool:
Ammo: 5 Ammo: 5
Tooltip: Tooltip:
@@ -161,6 +171,7 @@ orni.husk:
Speed: 280 Speed: 280
RepairBuildings: RepairBuildings:
RearmBuildings: RearmBuildings:
AirborneUpgrades: airborne
RenderSprites: RenderSprites:
Image: orni Image: orni
@@ -173,6 +184,7 @@ orni.bomber.husk:
Speed: 350 Speed: 350
RepairBuildings: RepairBuildings:
RearmBuildings: RearmBuildings:
AirborneUpgrades: airborne
RenderSprites: RenderSprites:
Image: orni Image: orni
@@ -185,6 +197,7 @@ carryall.husk:
Speed: 210 Speed: 210
RepairBuildings: RepairBuildings:
RearmBuildings: RearmBuildings:
AirborneUpgrades: airborne
RenderSprites: RenderSprites:
Image: carryall Image: carryall
@@ -197,6 +210,7 @@ carryall.infantry.husk:
Speed: 280 Speed: 280
RepairBuildings: RepairBuildings:
RearmBuildings: RearmBuildings:
AirborneUpgrades: airborne
RenderSprites: RenderSprites:
Image: carryall Image: carryall

View File

@@ -133,6 +133,7 @@ waypoint:
Inherits: carryall Inherits: carryall
Helicopter: Helicopter:
InitialFacing: 104 InitialFacing: 104
AirborneUpgrades: airborne
RenderSprites: RenderSprites:
Image: carryall Image: carryall
Palette: colorpicker Palette: colorpicker

View File

@@ -1668,8 +1668,8 @@ Rules:
Range: 4c0 Range: 4c0
Tooltip: Tooltip:
ShowOwnerRow: false ShowOwnerRow: false
TargetableAircraft: Targetable@GROUND:
GroundedTargetTypes: Ground TargetTypes: Ground
TRAN.IN: TRAN.IN:
Inherits: TRAN Inherits: TRAN
RenderSprites: RenderSprites:

View File

@@ -12,6 +12,7 @@ BADR:
Speed: 149 Speed: 149
Repulsable: False Repulsable: False
MaximumPitch: 56 MaximumPitch: 56
AirborneUpgrades: airborne
Cargo: Cargo:
MaxWeight: 10 MaxWeight: 10
-Selectable: -Selectable:
@@ -49,6 +50,7 @@ BADR.Bomber:
Speed: 149 Speed: 149
Repulsable: False Repulsable: False
MaximumPitch: 56 MaximumPitch: 56
AirborneUpgrades: airborne
AmmoPool: AmmoPool:
Ammo: 7 Ammo: 7
-Selectable: -Selectable:
@@ -106,6 +108,7 @@ MIG:
RearmBuildings: afld RearmBuildings: afld
RepulsionSpeed: 40 RepulsionSpeed: 40
MaximumPitch: 56 MaximumPitch: 56
AirborneUpgrades: airborne
AutoTarget: AutoTarget:
TargetWhenIdle: false TargetWhenIdle: false
TargetWhenDamaged: false TargetWhenDamaged: false
@@ -167,6 +170,7 @@ YAK:
Speed: 178 Speed: 178
RepulsionSpeed: 40 RepulsionSpeed: 40
MaximumPitch: 56 MaximumPitch: 56
AirborneUpgrades: airborne
AutoTarget: AutoTarget:
TargetWhenIdle: false TargetWhenIdle: false
TargetWhenDamaged: false TargetWhenDamaged: false
@@ -215,6 +219,7 @@ TRAN:
Speed: 112 Speed: 112
LandableTerrainTypes: Clear,Rough,Road,Ore,Beach LandableTerrainTypes: Clear,Rough,Road,Ore,Beach
AltitudeVelocity: 0c100 AltitudeVelocity: 0c100
AirborneUpgrades: airborne
WithRotor@PRIMARY: WithRotor@PRIMARY:
Offset: -597,0,341 Offset: -597,0,341
Sequence: rotor2 Sequence: rotor2
@@ -261,6 +266,7 @@ HELI:
InitialFacing: 20 InitialFacing: 20
ROT: 4 ROT: 4
Speed: 149 Speed: 149
AirborneUpgrades: airborne
AutoTarget: AutoTarget:
InitialStance: HoldFire InitialStance: HoldFire
WithRotor: WithRotor:
@@ -312,6 +318,7 @@ HIND:
InitialFacing: 20 InitialFacing: 20
ROT: 4 ROT: 4
Speed: 112 Speed: 112
AirborneUpgrades: airborne
AutoTarget: AutoTarget:
InitialStance: HoldFire InitialStance: HoldFire
WithRotor: WithRotor:
@@ -341,10 +348,11 @@ U2:
Speed: 373 Speed: 373
Repulsable: False Repulsable: False
MaximumPitch: 56 MaximumPitch: 56
AirborneUpgrades: airborne
AttackBomber: AttackBomber:
-Selectable: -Selectable:
-Voiced: -Voiced:
-TargetableAircraft: -Targetable@AIRBORNE:
-GainsExperience: -GainsExperience:
Contrail@1: Contrail@1:
Offset: -725,683,0 Offset: -725,683,0

View File

@@ -339,9 +339,14 @@
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24 Bounds: 24,24
TargetableAircraft: Targetable@GROUND:
TargetTypes: Ground, Repair, Vehicle
UpgradeTypes: airborne
UpgradeMaxEnabledLevel: 0
Targetable@AIRBORNE:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground, Repair, Vehicle UpgradeTypes: airborne
UpgradeMinEnabledLevel: 1
HiddenUnderFog: HiddenUnderFog:
Type: CenterPosition Type: CenterPosition
AttackMove: AttackMove:

View File

@@ -88,6 +88,7 @@ TRAN.Husk:
Helicopter: Helicopter:
ROT: 4 ROT: 4
Speed: 149 Speed: 149
AirborneUpgrades: airborne
WithRotor@PRIMARY: WithRotor@PRIMARY:
Offset: -597,0,341 Offset: -597,0,341
WithRotor@SECONDARY: WithRotor@SECONDARY:
@@ -119,6 +120,7 @@ BADR.Husk:
Plane: Plane:
ROT: 5 ROT: 5
Speed: 149 Speed: 149
AirborneUpgrades: airborne
SmokeTrailWhenDamaged@0: SmokeTrailWhenDamaged@0:
Offset: -432,560,0 Offset: -432,560,0
Interval: 2 Interval: 2
@@ -141,6 +143,7 @@ MIG.Husk:
Plane: Plane:
ROT: 5 ROT: 5
Speed: 186 Speed: 186
AirborneUpgrades: airborne
SmokeTrailWhenDamaged: SmokeTrailWhenDamaged:
Offset: -853,0,171 Offset: -853,0,171
Interval: 2 Interval: 2
@@ -160,6 +163,7 @@ YAK.Husk:
Plane: Plane:
ROT: 5 ROT: 5
Speed: 149 Speed: 149
AirborneUpgrades: airborne
SmokeTrailWhenDamaged: SmokeTrailWhenDamaged:
Offset: -853,0,0 Offset: -853,0,0
Interval: 2 Interval: 2
@@ -177,6 +181,7 @@ HELI.Husk:
Helicopter: Helicopter:
ROT: 4 ROT: 4
Speed: 149 Speed: 149
AirborneUpgrades: airborne
WithRotor: WithRotor:
Offset: 0,0,85 Offset: 0,0,85
SmokeTrailWhenDamaged: SmokeTrailWhenDamaged:
@@ -195,6 +200,7 @@ HIND.Husk:
Helicopter: Helicopter:
ROT: 4 ROT: 4
Speed: 112 Speed: 112
AirborneUpgrades: airborne
WithRotor: WithRotor:
SmokeTrailWhenDamaged: SmokeTrailWhenDamaged:
Offset: -427,0,0 Offset: -427,0,0
@@ -210,6 +216,7 @@ U2.Husk:
Plane: Plane:
ROT: 7 ROT: 7
Speed: 373 Speed: 373
AirborneUpgrades: airborne
Contrail@1: Contrail@1:
Offset: -725,683,0 Offset: -725,683,0
Contrail@2: Contrail@2:

View File

@@ -10,6 +10,7 @@ DPOD:
Speed: 149 Speed: 149
InitialFacing: 0 InitialFacing: 0
LandableTerrainTypes: Clear LandableTerrainTypes: Clear
AirborneUpgrades: airborne
Health: Health:
HP: 60 HP: 60
Armor: Armor:
@@ -47,6 +48,7 @@ DSHP:
LandableTerrainTypes: Clear LandableTerrainTypes: Clear
TakeoffSound: dropup1.aud TakeoffSound: dropup1.aud
LandingSound: dropdwn1.aud LandingSound: dropdwn1.aud
AirborneUpgrades: airborne
Health: Health:
HP: 200 HP: 200
Armor: Armor:
@@ -78,6 +80,7 @@ ORCA:
RearmBuildings: gahpad, nahpad RearmBuildings: gahpad, nahpad
ROT: 5 ROT: 5
Speed: 186 Speed: 186
AirborneUpgrades: airborne
Health: Health:
HP: 200 HP: 200
Armor: Armor:
@@ -117,6 +120,7 @@ ORCAB:
MaximumPitch: 120 MaximumPitch: 120
ROT: 3 ROT: 3
Speed: 96 Speed: 96
AirborneUpgrades: airborne
Health: Health:
HP: 260 HP: 260
Armor: Armor:
@@ -159,6 +163,7 @@ ORCATRAN:
LandableTerrainTypes: Clear LandableTerrainTypes: Clear
TakeoffSound: dropup1.aud TakeoffSound: dropup1.aud
LandingSound: dropdwn1.aud LandingSound: dropdwn1.aud
AirborneUpgrades: airborne
Health: Health:
HP: 200 HP: 200
Armor: Armor:
@@ -193,6 +198,7 @@ TRNSPORT:
TakeoffSound: dropup1.aud TakeoffSound: dropup1.aud
LandingSound: dropdwn1.aud LandingSound: dropdwn1.aud
AltitudeVelocity: 64 AltitudeVelocity: 64
AirborneUpgrades: airborne
Health: Health:
HP: 175 HP: 175
Armor: Armor:
@@ -224,6 +230,7 @@ SCRIN:
MaximumPitch: 90 MaximumPitch: 90
ROT: 3 ROT: 3
Speed: 168 Speed: 168
AirborneUpgrades: airborne
Health: Health:
HP: 280 HP: 280
Armor: Armor:
@@ -262,6 +269,7 @@ APACHE:
RearmBuildings: gahpad, nahpad RearmBuildings: gahpad, nahpad
ROT: 5 ROT: 5
Speed: 130 Speed: 130
AirborneUpgrades: airborne
Health: Health:
HP: 225 HP: 225
Armor: Armor:

View File

@@ -453,9 +453,14 @@
DrawLineToTarget: DrawLineToTarget:
AppearsOnRadar: AppearsOnRadar:
UseLocation: yes UseLocation: yes
TargetableAircraft: Targetable@GROUND:
TargetTypes: Ground
UpgradeTypes: airborne
UpgradeMaxEnabledLevel: 0
Targetable@AIRBORNE:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground UpgradeTypes: airborne
UpgradeMinEnabledLevel: 1
Selectable: Selectable:
SelectionDecorations: SelectionDecorations:
Palette: pips Palette: pips
@@ -484,6 +489,7 @@
LandWhenIdle: no LandWhenIdle: no
CruiseAltitude: 2048 CruiseAltitude: 2048
Voice: Move Voice: Move
AirborneUpgrades: airborne
^Plane: ^Plane:
Inherits: ^Aircraft Inherits: ^Aircraft
@@ -493,6 +499,7 @@
LandWhenIdle: no LandWhenIdle: no
CruiseAltitude: 2560 CruiseAltitude: 2560
Voice: Move Voice: Move
AirborneUpgrades: airborne
ReturnOnIdle: ReturnOnIdle:
^Viceroid: ^Viceroid: