Merge pull request #9541 from reaperrr/rename-rendertraits-xy
Rename WithTurret, WithBarrel and WithReloadingTurret to include 'Sprite' in trait name
This commit is contained in:
@@ -84,7 +84,7 @@
|
|||||||
<Compile Include="Traits\Render\WithGunboatBody.cs" />
|
<Compile Include="Traits\Render\WithGunboatBody.cs" />
|
||||||
<Compile Include="Traits\Render\WithCargo.cs" />
|
<Compile Include="Traits\Render\WithCargo.cs" />
|
||||||
<Compile Include="Traits\Render\WithDeliveryAnimation.cs" />
|
<Compile Include="Traits\Render\WithDeliveryAnimation.cs" />
|
||||||
<Compile Include="Traits\Render\WithReloadingTurret.cs" />
|
<Compile Include="Traits\Render\WithReloadingSpriteTurret.cs" />
|
||||||
<Compile Include="Traits\Render\WithRoof.cs" />
|
<Compile Include="Traits\Render\WithRoof.cs" />
|
||||||
<Compile Include="Traits\SupportPowers\IonCannonPower.cs" />
|
<Compile Include="Traits\SupportPowers\IonCannonPower.cs" />
|
||||||
<Compile Include="Widgets\Logic\CncMainMenuLogic.cs" />
|
<Compile Include="Widgets\Logic\CncMainMenuLogic.cs" />
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Cnc.Traits
|
namespace OpenRA.Mods.Cnc.Traits
|
||||||
{
|
{
|
||||||
[Desc("Renders ammo-dependent turret graphics for units with the Turreted trait.")]
|
[Desc("Renders ammo-dependent turret graphics for units with the Turreted trait.")]
|
||||||
public class WithReloadingTurretInfo : WithTurretInfo, Requires<AmmoPoolInfo>, Requires<ArmamentInfo>
|
public class WithReloadingSpriteTurretInfo : WithSpriteTurretInfo, Requires<AmmoPoolInfo>, Requires<ArmamentInfo>
|
||||||
{
|
{
|
||||||
[Desc("AmmoPool to use for ammo-dependent sequences.")]
|
[Desc("AmmoPool to use for ammo-dependent sequences.")]
|
||||||
public readonly string AmmoPoolName = null;
|
public readonly string AmmoPoolName = null;
|
||||||
@@ -27,17 +27,17 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
"Adds current reload stage to Sequence as suffix when a matching AmmoPool is present.")]
|
"Adds current reload stage to Sequence as suffix when a matching AmmoPool is present.")]
|
||||||
public readonly int ReloadStages = -1;
|
public readonly int ReloadStages = -1;
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new WithReloadingTurret(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new WithReloadingSpriteTurret(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WithReloadingTurret : WithTurret
|
public class WithReloadingSpriteTurret : WithSpriteTurret
|
||||||
{
|
{
|
||||||
readonly int reloadStages;
|
readonly int reloadStages;
|
||||||
readonly AmmoPool ammoPool;
|
readonly AmmoPool ammoPool;
|
||||||
string sequence;
|
string sequence;
|
||||||
string ammoSuffix;
|
string ammoSuffix;
|
||||||
|
|
||||||
public WithReloadingTurret(Actor self, WithReloadingTurretInfo info)
|
public WithReloadingSpriteTurret(Actor self, WithReloadingSpriteTurretInfo info)
|
||||||
: base(self, info)
|
: base(self, info)
|
||||||
{
|
{
|
||||||
ammoPool = self.TraitsImplementing<AmmoPool>().FirstOrDefault(a => a.Info.Name == info.AmmoPoolName);
|
ammoPool = self.TraitsImplementing<AmmoPool>().FirstOrDefault(a => a.Info.Name == info.AmmoPoolName);
|
||||||
@@ -402,6 +402,7 @@
|
|||||||
<Compile Include="Traits\Render\LeavesTrails.cs" />
|
<Compile Include="Traits\Render\LeavesTrails.cs" />
|
||||||
<Compile Include="Traits\Render\RenderSpritesEditorOnly.cs" />
|
<Compile Include="Traits\Render\RenderSpritesEditorOnly.cs" />
|
||||||
<Compile Include="Traits\Render\WithTurretedSpriteBody.cs" />
|
<Compile Include="Traits\Render\WithTurretedSpriteBody.cs" />
|
||||||
|
<Compile Include="Traits\Render\RenderUtils.cs" />
|
||||||
<Compile Include="Traits\Render\RenderNameTag.cs" />
|
<Compile Include="Traits\Render\RenderNameTag.cs" />
|
||||||
<Compile Include="Traits\Render\RenderSprites.cs" />
|
<Compile Include="Traits\Render\RenderSprites.cs" />
|
||||||
<Compile Include="Traits\Render\WithWallSpriteBody.cs" />
|
<Compile Include="Traits\Render\WithWallSpriteBody.cs" />
|
||||||
@@ -411,7 +412,7 @@
|
|||||||
<Compile Include="Traits\Render\ProductionBar.cs" />
|
<Compile Include="Traits\Render\ProductionBar.cs" />
|
||||||
<Compile Include="Traits\Render\SupportPowerChargeBar.cs" />
|
<Compile Include="Traits\Render\SupportPowerChargeBar.cs" />
|
||||||
<Compile Include="Traits\Render\TimedUpgradeBar.cs" />
|
<Compile Include="Traits\Render\TimedUpgradeBar.cs" />
|
||||||
<Compile Include="Traits\Render\WithBarrel.cs" />
|
<Compile Include="Traits\Render\WithSpriteBarrel.cs" />
|
||||||
<Compile Include="Traits\Render\WithBuildingExplosion.cs" />
|
<Compile Include="Traits\Render\WithBuildingExplosion.cs" />
|
||||||
<Compile Include="Traits\Render\WithActiveAnimation.cs" />
|
<Compile Include="Traits\Render\WithActiveAnimation.cs" />
|
||||||
<Compile Include="Traits\Render\WithAttackAnimation.cs" />
|
<Compile Include="Traits\Render\WithAttackAnimation.cs" />
|
||||||
@@ -440,7 +441,7 @@
|
|||||||
<Compile Include="Traits\Render\WithShadow.cs" />
|
<Compile Include="Traits\Render\WithShadow.cs" />
|
||||||
<Compile Include="Traits\Render\WithSmoke.cs" />
|
<Compile Include="Traits\Render\WithSmoke.cs" />
|
||||||
<Compile Include="Traits\Render\WithSpriteBody.cs" />
|
<Compile Include="Traits\Render\WithSpriteBody.cs" />
|
||||||
<Compile Include="Traits\Render\WithTurret.cs" />
|
<Compile Include="Traits\Render\WithSpriteTurret.cs" />
|
||||||
<Compile Include="Traits\Render\WithFacingSpriteBody.cs" />
|
<Compile Include="Traits\Render\WithFacingSpriteBody.cs" />
|
||||||
<Compile Include="Traits\Render\WithBuildingPlacedOverlay.cs" />
|
<Compile Include="Traits\Render\WithBuildingPlacedOverlay.cs" />
|
||||||
<Compile Include="Traits\Render\WithProductionDoorOverlay.cs" />
|
<Compile Include="Traits\Render\WithProductionDoorOverlay.cs" />
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
() => PortOffset(self, port),
|
() => PortOffset(self, port),
|
||||||
() => false,
|
() => false,
|
||||||
() => false,
|
() => false,
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 1024));
|
p => RenderUtils.ZOffsetFromCenter(self, p, 1024));
|
||||||
|
|
||||||
muzzles.Add(muzzleFlash);
|
muzzles.Add(muzzleFlash);
|
||||||
muzzleAnim.PlayThen(sequence, () => muzzles.Remove(muzzleFlash));
|
muzzleAnim.PlayThen(sequence, () => muzzles.Remove(muzzleFlash));
|
||||||
|
|||||||
23
OpenRA.Mods.Common/Traits/Render/RenderUtils.cs
Normal file
23
OpenRA.Mods.Common/Traits/Render/RenderUtils.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#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.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Traits
|
||||||
|
{
|
||||||
|
public class RenderUtils
|
||||||
|
{
|
||||||
|
public static int ZOffsetFromCenter(Actor self, WPos pos, int offset)
|
||||||
|
{
|
||||||
|
var delta = self.CenterPosition - pos;
|
||||||
|
return delta.Y + delta.Z + offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -80,7 +80,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
||||||
() => IsTraitDisabled || !buildComplete,
|
() => IsTraitDisabled || !buildComplete,
|
||||||
() => (info.PauseOnLowPower && self.IsDisabled()) || !buildComplete,
|
() => (info.PauseOnLowPower && self.IsDisabled()) || !buildComplete,
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 1));
|
p => RenderUtils.ZOffsetFromCenter(self, p, 1));
|
||||||
|
|
||||||
rs.Add(anim, info.Palette, info.IsPlayerPalette);
|
rs.Add(anim, info.Palette, info.IsPlayerPalette);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
() => info.IgnoreOffset ? WVec.Zero : armClosure.MuzzleOffset(self, barrel),
|
() => info.IgnoreOffset ? WVec.Zero : armClosure.MuzzleOffset(self, barrel),
|
||||||
() => IsTraitDisabled || !visible[barrel],
|
() => IsTraitDisabled || !visible[barrel],
|
||||||
() => false,
|
() => false,
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 2)));
|
p => RenderUtils.ZOffsetFromCenter(self, p, 2)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
||||||
() => IsTraitDisabled && !renderProlonged,
|
() => IsTraitDisabled && !renderProlonged,
|
||||||
() => false,
|
() => false,
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 1));
|
p => RenderUtils.ZOffsetFromCenter(self, p, 1));
|
||||||
|
|
||||||
var rs = self.Trait<RenderSprites>();
|
var rs = self.Trait<RenderSprites>();
|
||||||
rs.Add(anim, info.Palette);
|
rs.Add(anim, info.Palette);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
() => body.LocalToWorld(info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation))),
|
||||||
() => !visible || !buildComplete,
|
() => !visible || !buildComplete,
|
||||||
() => info.PauseOnLowPower && self.IsDisabled(),
|
() => info.PauseOnLowPower && self.IsDisabled(),
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 1));
|
p => RenderUtils.ZOffsetFromCenter(self, p, 1));
|
||||||
|
|
||||||
rs.Add(anim, info.Palette, info.IsPlayerPalette);
|
rs.Add(anim, info.Palette, info.IsPlayerPalette);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.Common.Traits
|
||||||
{
|
{
|
||||||
[Desc("Renders barrels for units with the Turreted trait.")]
|
[Desc("Renders barrels for units with the Turreted trait.")]
|
||||||
public class WithBarrelInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires<TurretedInfo>,
|
public class WithSpriteBarrelInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo, Requires<TurretedInfo>,
|
||||||
Requires<ArmamentInfo>, Requires<RenderSpritesInfo>, Requires<BodyOrientationInfo>
|
Requires<ArmamentInfo>, Requires<RenderSpritesInfo>, Requires<BodyOrientationInfo>
|
||||||
{
|
{
|
||||||
[Desc("Sequence name to use.")]
|
[Desc("Sequence name to use.")]
|
||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Visual offset.")]
|
[Desc("Visual offset.")]
|
||||||
public readonly WVec LocalOffset = WVec.Zero;
|
public readonly WVec LocalOffset = WVec.Zero;
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new WithBarrel(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new WithSpriteBarrel(init.Self, this); }
|
||||||
|
|
||||||
public IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
public IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
||||||
{
|
{
|
||||||
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WithBarrel : UpgradableTrait<WithBarrelInfo>
|
public class WithSpriteBarrel : UpgradableTrait<WithSpriteBarrelInfo>
|
||||||
{
|
{
|
||||||
public readonly Animation DefaultAnimation;
|
public readonly Animation DefaultAnimation;
|
||||||
readonly RenderSprites rs;
|
readonly RenderSprites rs;
|
||||||
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
readonly Turreted turreted;
|
readonly Turreted turreted;
|
||||||
readonly BodyOrientation body;
|
readonly BodyOrientation body;
|
||||||
|
|
||||||
public WithBarrel(Actor self, WithBarrelInfo info)
|
public WithSpriteBarrel(Actor self, WithSpriteBarrelInfo info)
|
||||||
: base(info)
|
: base(info)
|
||||||
{
|
{
|
||||||
this.self = self;
|
this.self = self;
|
||||||
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
DefaultAnimation = new Animation(self.World, rs.GetImage(self), () => turreted.TurretFacing);
|
DefaultAnimation = new Animation(self.World, rs.GetImage(self), () => turreted.TurretFacing);
|
||||||
DefaultAnimation.PlayRepeating(NormalizeSequence(self, Info.Sequence));
|
DefaultAnimation.PlayRepeating(NormalizeSequence(self, Info.Sequence));
|
||||||
rs.Add(new AnimationWithOffset(
|
rs.Add(new AnimationWithOffset(
|
||||||
DefaultAnimation, () => BarrelOffset(), () => IsTraitDisabled, () => false, p => WithTurret.ZOffsetFromCenter(self, p, 0)));
|
DefaultAnimation, () => BarrelOffset(), () => IsTraitDisabled, () => false, p => RenderUtils.ZOffsetFromCenter(self, p, 0)));
|
||||||
|
|
||||||
// Restrict turret facings to match the sprite
|
// Restrict turret facings to match the sprite
|
||||||
turreted.QuantizedFacings = DefaultAnimation.CurrentSequence.Facings;
|
turreted.QuantizedFacings = DefaultAnimation.CurrentSequence.Facings;
|
||||||
@@ -17,7 +17,7 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.Common.Traits
|
||||||
{
|
{
|
||||||
[Desc("Renders turrets for units with the Turreted trait.")]
|
[Desc("Renders turrets for units with the Turreted trait.")]
|
||||||
public class WithTurretInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo,
|
public class WithSpriteTurretInfo : UpgradableTraitInfo, IRenderActorPreviewSpritesInfo,
|
||||||
Requires<RenderSpritesInfo>, Requires<TurretedInfo>, Requires<BodyOrientationInfo>, Requires<ArmamentInfo>
|
Requires<RenderSpritesInfo>, Requires<TurretedInfo>, Requires<BodyOrientationInfo>, Requires<ArmamentInfo>
|
||||||
{
|
{
|
||||||
[Desc("Sequence name to use")]
|
[Desc("Sequence name to use")]
|
||||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Render recoil")]
|
[Desc("Render recoil")]
|
||||||
public readonly bool Recoils = true;
|
public readonly bool Recoils = true;
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new WithTurret(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new WithSpriteTurret(init.Self, this); }
|
||||||
|
|
||||||
public IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
public IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
||||||
{
|
{
|
||||||
@@ -56,7 +56,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WithTurret : UpgradableTrait<WithTurretInfo>, ITick, INotifyDamageStateChanged
|
public class WithSpriteTurret : UpgradableTrait<WithSpriteTurretInfo>, ITick, INotifyDamageStateChanged
|
||||||
{
|
{
|
||||||
public readonly Animation DefaultAnimation;
|
public readonly Animation DefaultAnimation;
|
||||||
protected readonly AttackBase Attack;
|
protected readonly AttackBase Attack;
|
||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
readonly Turreted t;
|
readonly Turreted t;
|
||||||
readonly Armament[] arms;
|
readonly Armament[] arms;
|
||||||
|
|
||||||
public WithTurret(Actor self, WithTurretInfo info)
|
public WithSpriteTurret(Actor self, WithSpriteTurretInfo info)
|
||||||
: base(info)
|
: base(info)
|
||||||
{
|
{
|
||||||
rs = self.Trait<RenderSprites>();
|
rs = self.Trait<RenderSprites>();
|
||||||
@@ -79,7 +79,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
DefaultAnimation = new Animation(self.World, rs.GetImage(self), () => t.TurretFacing);
|
DefaultAnimation = new Animation(self.World, rs.GetImage(self), () => t.TurretFacing);
|
||||||
DefaultAnimation.PlayRepeating(NormalizeSequence(self, info.Sequence));
|
DefaultAnimation.PlayRepeating(NormalizeSequence(self, info.Sequence));
|
||||||
rs.Add(new AnimationWithOffset(
|
rs.Add(new AnimationWithOffset(
|
||||||
DefaultAnimation, () => TurretOffset(self), () => IsTraitDisabled, () => false, p => ZOffsetFromCenter(self, p, 1)));
|
DefaultAnimation, () => TurretOffset(self), () => IsTraitDisabled, () => false, p => RenderUtils.ZOffsetFromCenter(self, p, 1)));
|
||||||
|
|
||||||
// Restrict turret facings to match the sprite
|
// Restrict turret facings to match the sprite
|
||||||
t.QuantizedFacings = DefaultAnimation.CurrentSequence.Facings;
|
t.QuantizedFacings = DefaultAnimation.CurrentSequence.Facings;
|
||||||
@@ -116,11 +116,5 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
var sequence = Attack.IsAttacking ? Info.AimSequence : Info.Sequence;
|
var sequence = Attack.IsAttacking ? Info.AimSequence : Info.Sequence;
|
||||||
DefaultAnimation.ReplaceAnim(sequence);
|
DefaultAnimation.ReplaceAnim(sequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int ZOffsetFromCenter(Actor self, WPos pos, int offset)
|
|
||||||
{
|
|
||||||
var delta = self.CenterPosition - pos;
|
|
||||||
return delta.Y + delta.Z + offset;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2456,6 +2456,60 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (engineVersion < 20151127)
|
||||||
|
{
|
||||||
|
// Rename WithTurret to WithSpriteTurret
|
||||||
|
if (depth == 1 && node.Key.StartsWith("WithTurret"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "WithSpriteTurret";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (depth == 1 && node.Key.StartsWith("-WithTurret"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "-WithSpriteTurret";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rename WithBarrel to WithSpriteBarrel
|
||||||
|
if (depth == 1 && node.Key.StartsWith("WithBarrel"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "WithSpriteBarrel";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (depth == 1 && node.Key.StartsWith("-WithBarrel"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "-WithSpriteBarrel";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rename WithReloadingTurret to WithReloadingSpriteTurret
|
||||||
|
if (depth == 1 && node.Key.StartsWith("WithReloadingTurret"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "WithReloadingSpriteTurret";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (depth == 1 && node.Key.StartsWith("-WithReloadingTurret"))
|
||||||
|
{
|
||||||
|
var parts = node.Key.Split('@');
|
||||||
|
node.Key = "-WithReloadingSpriteTurret";
|
||||||
|
if (parts.Length > 1)
|
||||||
|
node.Key += "@" + parts[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ APC:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Cargo:
|
Cargo:
|
||||||
Types: Infantry
|
Types: Infantry
|
||||||
@@ -220,7 +220,7 @@ BGGY:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: BGGY.Husk
|
Actor: BGGY.Husk
|
||||||
@@ -290,7 +290,7 @@ JEEP:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: JEEP.Husk
|
Actor: JEEP.Husk
|
||||||
@@ -325,7 +325,7 @@ LTNK:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: LTNK.Husk
|
Actor: LTNK.Husk
|
||||||
@@ -359,7 +359,7 @@ MTNK:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: MTNK.Husk
|
Actor: MTNK.Husk
|
||||||
@@ -387,7 +387,7 @@ HTNK:
|
|||||||
Type: Heavy
|
Type: Heavy
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 6c0
|
Range: 6c0
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 3
|
ROT: 3
|
||||||
Armament@PRIMARY:
|
Armament@PRIMARY:
|
||||||
@@ -445,7 +445,7 @@ MSAM:
|
|||||||
Weapon: 227mm
|
Weapon: 227mm
|
||||||
LocalOffset: 213,-128,0, 213,128,0
|
LocalOffset: 213,-128,0, 213,128,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AimSequence: aim
|
AimSequence: aim
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
@@ -485,7 +485,7 @@ MLRS:
|
|||||||
ReloadCount: 1
|
ReloadCount: 1
|
||||||
SelfReloadTicks: 100
|
SelfReloadTicks: 100
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithReloadingTurret:
|
WithReloadingSpriteTurret:
|
||||||
AmmoPoolName: primary
|
AmmoPoolName: primary
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStanceAI: Defend
|
InitialStanceAI: Defend
|
||||||
|
|||||||
@@ -284,7 +284,7 @@
|
|||||||
|
|
||||||
^Defense:
|
^Defense:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ siege_tank:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplodeMed
|
Weapon: UnitExplodeMed
|
||||||
EmptyWeapon: UnitExplodeMed
|
EmptyWeapon: UnitExplodeMed
|
||||||
@@ -465,7 +465,7 @@ deviator:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplodeMed
|
Weapon: UnitExplodeMed
|
||||||
|
|||||||
@@ -1388,7 +1388,7 @@ Rules:
|
|||||||
-Huntable:
|
-Huntable:
|
||||||
-Targetable:
|
-Targetable:
|
||||||
-Armament:
|
-Armament:
|
||||||
-WithTurret:
|
-WithSpriteTurret:
|
||||||
-WithMuzzleOverlay:
|
-WithMuzzleOverlay:
|
||||||
Cargo:
|
Cargo:
|
||||||
Types: ~disabled
|
Types: ~disabled
|
||||||
|
|||||||
@@ -2209,7 +2209,7 @@ Rules:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: MiniNuke
|
Weapon: MiniNuke
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ DD:
|
|||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
VisualBounds: 38,38
|
VisualBounds: 38,38
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
@@ -204,9 +204,9 @@ CA:
|
|||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
VisualBounds: 44,44
|
VisualBounds: 44,44
|
||||||
WithTurret@PRIMARY:
|
WithSpriteTurret@PRIMARY:
|
||||||
Turret: primary
|
Turret: primary
|
||||||
WithTurret@SECONDARY:
|
WithSpriteTurret@SECONDARY:
|
||||||
Turret: secondary
|
Turret: secondary
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
|
||||||
@@ -277,7 +277,7 @@ PT:
|
|||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
VisualBounds: 36,36
|
VisualBounds: 36,36
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ V2RL:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: 1TNK.Husk
|
Actor: 1TNK.Husk
|
||||||
@@ -98,7 +98,7 @@ V2RL:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: 2TNK.Husk
|
Actor: 2TNK.Husk
|
||||||
@@ -137,7 +137,7 @@ V2RL:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: 3TNK.Husk
|
Actor: 3TNK.Husk
|
||||||
@@ -185,7 +185,7 @@ V2RL:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: 4TNK.Husk
|
Actor: 4TNK.Husk
|
||||||
@@ -344,7 +344,7 @@ JEEP:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Cargo:
|
Cargo:
|
||||||
Types: Infantry
|
Types: Infantry
|
||||||
@@ -608,7 +608,7 @@ FTRK:
|
|||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithMuzzleOverlay:
|
WithMuzzleOverlay:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
VisualBounds: 28,28
|
VisualBounds: 28,28
|
||||||
@@ -738,7 +738,7 @@ STNK:
|
|||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Cargo:
|
Cargo:
|
||||||
Types: Infantry
|
Types: Infantry
|
||||||
MaxWeight: 4
|
MaxWeight: 4
|
||||||
|
|||||||
@@ -62,17 +62,17 @@ GACTWR:
|
|||||||
UpgradeMinEnabledLevel: 1
|
UpgradeMinEnabledLevel: 1
|
||||||
CanPowerDown:
|
CanPowerDown:
|
||||||
IndicatorPalette: mouse
|
IndicatorPalette: mouse
|
||||||
WithTurret@VULC:
|
WithSpriteTurret@VULC:
|
||||||
UpgradeTypes: tower.vulcan
|
UpgradeTypes: tower.vulcan
|
||||||
UpgradeMinEnabledLevel: 1
|
UpgradeMinEnabledLevel: 1
|
||||||
Recoils: no
|
Recoils: no
|
||||||
Sequence: turret-vulcan
|
Sequence: turret-vulcan
|
||||||
WithTurret@ROCKET:
|
WithSpriteTurret@ROCKET:
|
||||||
UpgradeTypes: tower.rocket
|
UpgradeTypes: tower.rocket
|
||||||
UpgradeMinEnabledLevel: 1
|
UpgradeMinEnabledLevel: 1
|
||||||
Recoils: no
|
Recoils: no
|
||||||
Sequence: turret-rocket
|
Sequence: turret-rocket
|
||||||
WithTurret@SAM:
|
WithSpriteTurret@SAM:
|
||||||
UpgradeTypes: tower.sam
|
UpgradeTypes: tower.sam
|
||||||
UpgradeMinEnabledLevel: 1
|
UpgradeMinEnabledLevel: 1
|
||||||
Recoils: no
|
Recoils: no
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ MMCH:
|
|||||||
ROT: 5
|
ROT: 5
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
Voice: Attack
|
Voice: Attack
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Recoils: no
|
Recoils: no
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: 120mm
|
Weapon: 120mm
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ NASAM:
|
|||||||
ROT: 10
|
ROT: 10
|
||||||
InitialFacing: 50
|
InitialFacing: 50
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Recoils: no
|
Recoils: no
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: RedEye2
|
Weapon: RedEye2
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ NAPULS:
|
|||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: EMPulseCannon
|
Weapon: EMPulseCannon
|
||||||
WithTurret:
|
WithSpriteTurret:
|
||||||
Sequence: turret
|
Sequence: turret
|
||||||
Power:
|
Power:
|
||||||
Amount: -150
|
Amount: -150
|
||||||
|
|||||||
Reference in New Issue
Block a user