Remove TargetableSubmarine
This commit is contained in:
@@ -1974,6 +1974,45 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
else if (node.Key == "-TargetableUnit" || node.Key == "-TargetableBuilding")
|
else if (node.Key == "-TargetableUnit" || node.Key == "-TargetableBuilding")
|
||||||
node.Key = "-Targetable";
|
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);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
|
|||||||
@@ -112,7 +112,6 @@
|
|||||||
<Compile Include="Traits\SupportPowers\GpsPower.cs" />
|
<Compile Include="Traits\SupportPowers\GpsPower.cs" />
|
||||||
<Compile Include="Traits\SupportPowers\ParatroopersPower.cs" />
|
<Compile Include="Traits\SupportPowers\ParatroopersPower.cs" />
|
||||||
<Compile Include="Traits\SpawnActorOnDeath.cs" />
|
<Compile Include="Traits\SpawnActorOnDeath.cs" />
|
||||||
<Compile Include="Traits\TargetableSubmarine.cs" />
|
|
||||||
<Compile Include="Scripting\Properties\ChronosphereProperties.cs" />
|
<Compile Include="Scripting\Properties\ChronosphereProperties.cs" />
|
||||||
<Compile Include="Scripting\Properties\ParadropProperties.cs" />
|
<Compile Include="Scripting\Properties\ParadropProperties.cs" />
|
||||||
<Compile Include="Scripting\Properties\ParatroopersProperties.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
|
Speed: 71
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 6c0
|
Range: 6c0
|
||||||
-Targetable:
|
Targetable:
|
||||||
TargetableSubmarine:
|
|
||||||
TargetTypes: Ground, Water, Repair
|
TargetTypes: Ground, Water, Repair
|
||||||
CloakedTargetTypes: Underwater, Repair
|
UpgradeTypes: underwater
|
||||||
|
UpgradeMaxEnabledLevel: 0
|
||||||
|
Targetable@UNDERWATER:
|
||||||
|
TargetTypes: Underwater, Repair
|
||||||
|
UpgradeTypes: underwater
|
||||||
|
UpgradeMinEnabledLevel: 1
|
||||||
Cloak:
|
Cloak:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
InitialDelay: 0
|
InitialDelay: 0
|
||||||
CloakDelay: 50
|
CloakDelay: 50
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
|
WhileCloakedUpgrades: underwater
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: TorpTube
|
Weapon: TorpTube
|
||||||
LocalOffset: 0,-171,0, 0,171,0
|
LocalOffset: 0,-171,0, 0,171,0
|
||||||
@@ -68,16 +73,21 @@ MSUB:
|
|||||||
Speed: 42
|
Speed: 42
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 6c0
|
Range: 6c0
|
||||||
-Targetable:
|
Targetable:
|
||||||
TargetableSubmarine:
|
|
||||||
TargetTypes: Ground, Water, Repair
|
TargetTypes: Ground, Water, Repair
|
||||||
CloakedTargetTypes: Underwater, Repair
|
UpgradeTypes: underwater
|
||||||
|
UpgradeMaxEnabledLevel: 0
|
||||||
|
Targetable@UNDERWATER:
|
||||||
|
TargetTypes: Underwater, Repair
|
||||||
|
UpgradeTypes: underwater
|
||||||
|
UpgradeMinEnabledLevel: 1
|
||||||
Cloak:
|
Cloak:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
InitialDelay: 0
|
InitialDelay: 0
|
||||||
CloakDelay: 100
|
CloakDelay: 100
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
|
WhileCloakedUpgrades: underwater
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: SubMissile
|
Weapon: SubMissile
|
||||||
LocalOffset: 0,-171,0, 0,171,0
|
LocalOffset: 0,-171,0, 0,171,0
|
||||||
|
|||||||
Reference in New Issue
Block a user