Remove TargetableSubmarine
This commit is contained in:
@@ -1974,6 +1974,45 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
else if (node.Key == "-TargetableUnit" || node.Key == "-TargetableBuilding")
|
||||
node.Key = "-Targetable";
|
||||
}
|
||||
else if (depth == 0)
|
||||
{
|
||||
// Split TargetableSubmarine into two Targetable traits
|
||||
var targetableSubmarine = node.Value.Nodes.FirstOrDefault(n => n.Key == "TargetableSubmarine");
|
||||
if (targetableSubmarine != null)
|
||||
{
|
||||
node.Value.Nodes.RemoveAll(n => n.Key == "-Targetable");
|
||||
targetableSubmarine.Key = "Targetable";
|
||||
targetableSubmarine.Value.Nodes.Add(new MiniYamlNode("UpgradeTypes", "underwater"));
|
||||
targetableSubmarine.Value.Nodes.Add(new MiniYamlNode("UpgradeMaxEnabledLevel", "0"));
|
||||
var cloakedTargetTypes = targetableSubmarine.Value.Nodes.FirstOrDefault(n => n.Key == "CloakedTargetTypes");
|
||||
if (cloakedTargetTypes != null)
|
||||
{
|
||||
targetableSubmarine.Value.Nodes.Remove(cloakedTargetTypes);
|
||||
cloakedTargetTypes.Key = "TargetTypes";
|
||||
}
|
||||
else
|
||||
cloakedTargetTypes = new MiniYamlNode("TargetTypes", "");
|
||||
node.Value.Nodes.Add(new MiniYamlNode("Targetable@UNDERWATER", "", new List<MiniYamlNode> {
|
||||
cloakedTargetTypes,
|
||||
new MiniYamlNode("UpgradeTypes", "underwater"),
|
||||
new MiniYamlNode("UpgradeMinEnabledLevel", "1")
|
||||
}));
|
||||
}
|
||||
|
||||
// Add `WhileCloakedUpgrades: underwater` to Cloak trait if `CloakTypes: Underwater`
|
||||
var cloak = node.Value.Nodes.FirstOrDefault(n => (n.Key == "Cloak" || n.Key.StartsWith("Cloak@"))
|
||||
&& n.Value.Nodes.Any(p => p.Key == "CloakTypes" && p.Value.Value == "Underwater"));
|
||||
if (cloak != null)
|
||||
cloak.Value.Nodes.Add(new MiniYamlNode("WhileCloakedUpgrades", "underwater"));
|
||||
|
||||
// Remove split traits if TargetableSubmarine was removed
|
||||
var untargetableSubmarine = node.Value.Nodes.FirstOrDefault(n => n.Key == "-TargetableSubmarine");
|
||||
if (untargetableSubmarine != null)
|
||||
{
|
||||
untargetableSubmarine.Key = "-Targetable";
|
||||
node.Value.Nodes.Add(new MiniYamlNode("-Targetable@UNDERWATER", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
|
||||
@@ -112,7 +112,6 @@
|
||||
<Compile Include="Traits\SupportPowers\GpsPower.cs" />
|
||||
<Compile Include="Traits\SupportPowers\ParatroopersPower.cs" />
|
||||
<Compile Include="Traits\SpawnActorOnDeath.cs" />
|
||||
<Compile Include="Traits\TargetableSubmarine.cs" />
|
||||
<Compile Include="Scripting\Properties\ChronosphereProperties.cs" />
|
||||
<Compile Include="Scripting\Properties\ParadropProperties.cs" />
|
||||
<Compile Include="Scripting\Properties\ParatroopersProperties.cs" />
|
||||
|
||||
@@ -1,41 +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 OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA.Traits
|
||||
{
|
||||
public class TargetableSubmarineInfo : TargetableInfo, Requires<CloakInfo>
|
||||
{
|
||||
public readonly string[] CloakedTargetTypes = { };
|
||||
|
||||
public override object Create(ActorInitializer init) { return new TargetableSubmarine(init.Self, this); }
|
||||
}
|
||||
|
||||
public class TargetableSubmarine : Targetable
|
||||
{
|
||||
readonly TargetableSubmarineInfo info;
|
||||
|
||||
public TargetableSubmarine(Actor self, TargetableSubmarineInfo info)
|
||||
: base(self, info)
|
||||
{
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public override string[] TargetTypes
|
||||
{
|
||||
get
|
||||
{
|
||||
return cloak.Cloaked ? info.CloakedTargetTypes : info.TargetTypes;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,16 +19,21 @@ SS:
|
||||
Speed: 71
|
||||
RevealsShroud:
|
||||
Range: 6c0
|
||||
-Targetable:
|
||||
TargetableSubmarine:
|
||||
Targetable:
|
||||
TargetTypes: Ground, Water, Repair
|
||||
CloakedTargetTypes: Underwater, Repair
|
||||
UpgradeTypes: underwater
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
Targetable@UNDERWATER:
|
||||
TargetTypes: Underwater, Repair
|
||||
UpgradeTypes: underwater
|
||||
UpgradeMinEnabledLevel: 1
|
||||
Cloak:
|
||||
CloakTypes: Underwater
|
||||
InitialDelay: 0
|
||||
CloakDelay: 50
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
WhileCloakedUpgrades: underwater
|
||||
Armament:
|
||||
Weapon: TorpTube
|
||||
LocalOffset: 0,-171,0, 0,171,0
|
||||
@@ -68,16 +73,21 @@ MSUB:
|
||||
Speed: 42
|
||||
RevealsShroud:
|
||||
Range: 6c0
|
||||
-Targetable:
|
||||
TargetableSubmarine:
|
||||
Targetable:
|
||||
TargetTypes: Ground, Water, Repair
|
||||
CloakedTargetTypes: Underwater, Repair
|
||||
UpgradeTypes: underwater
|
||||
UpgradeMaxEnabledLevel: 0
|
||||
Targetable@UNDERWATER:
|
||||
TargetTypes: Underwater, Repair
|
||||
UpgradeTypes: underwater
|
||||
UpgradeMinEnabledLevel: 1
|
||||
Cloak:
|
||||
CloakTypes: Underwater
|
||||
InitialDelay: 0
|
||||
CloakDelay: 100
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
WhileCloakedUpgrades: underwater
|
||||
Armament:
|
||||
Weapon: SubMissile
|
||||
LocalOffset: 0,-171,0, 0,171,0
|
||||
|
||||
Reference in New Issue
Block a user