Upgrade rule for AmmoPool.SelfReloads removal
This commit is contained in:
@@ -1053,6 +1053,66 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
// Self-reload properties were decoupled from AmmoPool to ReloadAmmoPool.
|
||||
if (engineVersion < 20171104)
|
||||
{
|
||||
var poolNumber = 0;
|
||||
var ammoPools = node.Value.Nodes.Where(n => n.Key.StartsWith("AmmoPool", StringComparison.Ordinal));
|
||||
foreach (var pool in ammoPools.ToList())
|
||||
{
|
||||
var selfReloads = pool.Value.Nodes.FirstOrDefault(n => n.Key == "SelfReloads");
|
||||
if (selfReloads != null && FieldLoader.GetValue<bool>("SelfReloads", selfReloads.Value.Value))
|
||||
{
|
||||
poolNumber++;
|
||||
var name = pool.Value.Nodes.FirstOrDefault(n => n.Key == "Name");
|
||||
var selfReloadDelay = pool.Value.Nodes.FirstOrDefault(n => n.Key == "SelfReloadDelay");
|
||||
var reloadCount = pool.Value.Nodes.FirstOrDefault(n => n.Key == "ReloadCount");
|
||||
var reset = pool.Value.Nodes.FirstOrDefault(n => n.Key == "ResetOnFire");
|
||||
var rearmSound = pool.Value.Nodes.FirstOrDefault(n => n.Key == "RearmSound");
|
||||
var reloadOnCond = new MiniYamlNode("ReloadAmmoPool@" + poolNumber.ToString(), "");
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
var rap = new MiniYamlNode("ReloadAmmoPool", name.Value.Value);
|
||||
reloadOnCond.Value.Nodes.Add(rap);
|
||||
}
|
||||
|
||||
if (selfReloadDelay != null)
|
||||
{
|
||||
var rd = selfReloadDelay;
|
||||
RenameNodeKey(rd, "Delay");
|
||||
reloadOnCond.Value.Nodes.Add(rd);
|
||||
pool.Value.Nodes.Remove(selfReloads);
|
||||
pool.Value.Nodes.Remove(selfReloadDelay);
|
||||
}
|
||||
|
||||
if (reloadCount != null)
|
||||
{
|
||||
var rc = reloadCount;
|
||||
RenameNodeKey(rc, "Count");
|
||||
reloadOnCond.Value.Nodes.Add(rc);
|
||||
pool.Value.Nodes.Remove(reloadCount);
|
||||
}
|
||||
|
||||
if (reset != null)
|
||||
{
|
||||
reloadOnCond.Value.Nodes.Add(reset);
|
||||
pool.Value.Nodes.Remove(reset);
|
||||
}
|
||||
|
||||
if (rearmSound != null)
|
||||
{
|
||||
var rs = rearmSound;
|
||||
RenameNodeKey(rs, "Sound");
|
||||
reloadOnCond.Value.Nodes.Add(rs);
|
||||
pool.Value.Nodes.Remove(rearmSound);
|
||||
}
|
||||
|
||||
node.Value.Nodes.Add(reloadOnCond);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -89,9 +89,6 @@ HELI:
|
||||
AmmoPool:
|
||||
Ammo: 10
|
||||
PipCount: 5
|
||||
SelfReloads: true
|
||||
ReloadCount: 1
|
||||
SelfReloadDelay: 40
|
||||
WithIdleOverlay@ROTORAIR:
|
||||
Offset: 0,0,85
|
||||
Sequence: rotor
|
||||
@@ -108,6 +105,9 @@ HELI:
|
||||
EmptyWeapon: HeliExplode
|
||||
SelectionDecorations:
|
||||
VisualBounds: 30,24
|
||||
ReloadAmmoPool:
|
||||
Delay: 40
|
||||
Count: 1
|
||||
|
||||
ORCA:
|
||||
Inherits: ^Helicopter
|
||||
@@ -144,9 +144,6 @@ ORCA:
|
||||
AmmoPool:
|
||||
Ammo: 6
|
||||
PipCount: 6
|
||||
SelfReloads: true
|
||||
ReloadCount: 2
|
||||
SelfReloadDelay: 100
|
||||
SpawnActorOnDeath:
|
||||
Actor: ORCA.Husk
|
||||
Explodes:
|
||||
@@ -156,6 +153,9 @@ ORCA:
|
||||
MoveSequence: move
|
||||
SelectionDecorations:
|
||||
VisualBounds: 30,24
|
||||
ReloadAmmoPool:
|
||||
Delay: 100
|
||||
Count: 2
|
||||
|
||||
C17:
|
||||
Inherits: ^Plane
|
||||
|
||||
@@ -510,9 +510,6 @@ MLRS:
|
||||
AmmoPool:
|
||||
Ammo: 2
|
||||
PipCount: 0
|
||||
SelfReloads: true
|
||||
ReloadCount: 1
|
||||
SelfReloadDelay: 45
|
||||
AttackTurreted:
|
||||
WithReloadingSpriteTurret:
|
||||
AmmoPoolName: primary
|
||||
@@ -521,6 +518,9 @@ MLRS:
|
||||
RenderRangeCircle:
|
||||
SpawnActorOnDeath:
|
||||
Actor: MLRS.Husk
|
||||
ReloadAmmoPool:
|
||||
Delay: 45
|
||||
Count: 1
|
||||
|
||||
STNK:
|
||||
Inherits: ^Vehicle
|
||||
|
||||
Reference in New Issue
Block a user