Remove MuzzleSplitFacings and expose MuzzleSequence to testing.
This commit is contained in:
committed by
abcdefg30
parent
b03ab1212f
commit
c48eb572e3
@@ -53,6 +53,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[Desc("Recoil recovery per-frame")]
|
||||
public readonly WDist RecoilRecovery = new WDist(9);
|
||||
|
||||
[SequenceReference]
|
||||
[Desc("Muzzle flash sequence to render")]
|
||||
public readonly string MuzzleSequence = null;
|
||||
|
||||
@@ -60,9 +61,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[Desc("Palette to render Muzzle flash sequence in")]
|
||||
public readonly string MuzzlePalette = "effect";
|
||||
|
||||
[Desc("Use multiple muzzle images if non-zero")]
|
||||
public readonly int MuzzleSplitFacings = 0;
|
||||
|
||||
[GrantedConditionReference]
|
||||
[Desc("Condition to grant while reloading.")]
|
||||
public readonly string ReloadingCondition = null;
|
||||
|
||||
@@ -173,10 +173,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
// Muzzle facing is fixed once the firing starts
|
||||
var muzzleAnim = new Animation(self.World, paxRender[a.Actor].GetImage(a.Actor), () => targetYaw);
|
||||
var sequence = a.Info.MuzzleSequence;
|
||||
|
||||
if (a.Info.MuzzleSplitFacings > 0)
|
||||
sequence += Util.IndexFacing(targetYaw, a.Info.MuzzleSplitFacings).ToString();
|
||||
|
||||
var muzzleFlash = new AnimationWithOffset(muzzleAnim,
|
||||
() => PortOffset(self, port),
|
||||
() => false,
|
||||
|
||||
@@ -76,9 +76,6 @@ namespace OpenRA.Mods.Common.Traits.Render
|
||||
return;
|
||||
|
||||
var sequence = a.Info.MuzzleSequence;
|
||||
if (a.Info.MuzzleSplitFacings > 0)
|
||||
sequence += Util.IndexFacing(getFacing(), a.Info.MuzzleSplitFacings).ToString();
|
||||
|
||||
visible[barrel] = true;
|
||||
anims[barrel].Animation.PlayThen(sequence, () => visible[barrel] = false);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2020 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, either version 3 of
|
||||
* the License, or (at your option) any later version. For more
|
||||
* information, see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace OpenRA.Mods.Common.UpdateRules.Rules
|
||||
{
|
||||
public class RemoveMuzzleSplitFacings : UpdateRule
|
||||
{
|
||||
public override string Name { get { return "Remove Armament.MuzzleSplitFacings."; } }
|
||||
public override string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return "The legacy MuzzleSplitFacings option was removed from Armament.\n" +
|
||||
"The same result can be created by using `Combine` in the sequence definitions to\n" +
|
||||
"assemble the different facings sprites into a single sequence.";
|
||||
}
|
||||
}
|
||||
|
||||
public override IEnumerable<string> UpdateActorNode(ModData modData, MiniYamlNode actorNode)
|
||||
{
|
||||
foreach (var a in actorNode.ChildrenMatching("Armament"))
|
||||
{
|
||||
var muzzleSplitFacings = a.LastChildMatching("MuzzleSplitFacings");
|
||||
var sequenceNode = a.LastChildMatching("MuzzleSequence");
|
||||
if (muzzleSplitFacings != null && sequenceNode != null)
|
||||
{
|
||||
var sequence = sequenceNode.Value.Value;
|
||||
var facings = muzzleSplitFacings.NodeValue<int>() - 1;
|
||||
var actor = actorNode.Key.ToLowerInvariant();
|
||||
yield return "The Armament muzzle effect has been removed from {0} ({1}).\n".F(actor, actorNode.Location.Filename) +
|
||||
"If you would like to restore the muzzle effect you must redefine `MuzzleSequence: {0}`\n".F(sequence) +
|
||||
"and replace the {0}0-{1} sequence definitions with a single `{0}` sequence that uses\n".F(sequence, facings) +
|
||||
"the Combine syntax to assemble the different facing sprites.";
|
||||
|
||||
a.RemoveNode(muzzleSplitFacings);
|
||||
a.RemoveNode(sequenceNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,6 +72,7 @@ namespace OpenRA.Mods.Common.UpdateRules
|
||||
new ReplaceFacingAngles(),
|
||||
new RenameSelfHealing(),
|
||||
new ReplaceBurns(),
|
||||
new RemoveMuzzleSplitFacings(),
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
@@ -96,7 +96,6 @@ GACTWR:
|
||||
LocalOffset: 588,120,1358
|
||||
MuzzleSequence: muzzle
|
||||
MuzzlePalette: effect-ignore-lighting
|
||||
MuzzleSplitFacings: 8
|
||||
Armament@VULCSECONDARY:
|
||||
RequiresCondition: tower.vulcan
|
||||
Name: secondary
|
||||
@@ -104,7 +103,6 @@ GACTWR:
|
||||
LocalOffset: 588,-120,1358
|
||||
MuzzleSequence: muzzle
|
||||
MuzzlePalette: effect-ignore-lighting
|
||||
MuzzleSplitFacings: 8
|
||||
Armament@ROCKET:
|
||||
RequiresCondition: tower.rocket
|
||||
Weapon: RPGTower
|
||||
|
||||
@@ -30,7 +30,6 @@ BGGY:
|
||||
LocalOffset: 0,-61,543, 0,61,543
|
||||
MuzzleSequence: muzzle
|
||||
MuzzlePalette: effect-ignore-lighting
|
||||
MuzzleSplitFacings: 8
|
||||
AttackFrontal:
|
||||
Voice: Attack
|
||||
PauseOnCondition: empdisable
|
||||
|
||||
@@ -1210,36 +1210,26 @@ gactwr:
|
||||
UseTilesetCode: false
|
||||
turret-sam: gtctwr_d
|
||||
Facings: 32
|
||||
muzzle0: mgun-n
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle1: mgun-nw
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle2: mgun-w
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle3: mgun-sw
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle4: mgun-s
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle5: mgun-se
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle6: mgun-e
|
||||
Length: *
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
muzzle7: mgun-ne
|
||||
Length: *
|
||||
muzzle:
|
||||
Combine:
|
||||
mgun-n:
|
||||
Length: 6
|
||||
mgun-nw:
|
||||
Length: 6
|
||||
mgun-w:
|
||||
Length: 6
|
||||
mgun-sw:
|
||||
Length: 6
|
||||
mgun-s:
|
||||
Length: 6
|
||||
mgun-se:
|
||||
Length: 6
|
||||
mgun-e:
|
||||
Length: 6
|
||||
mgun-ne:
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Length: 6
|
||||
Offset: 0, 0, 12
|
||||
UseTilesetCode: false
|
||||
emp-overlay: emp_fx01
|
||||
|
||||
@@ -105,16 +105,27 @@ bike:
|
||||
bggy:
|
||||
Inherits: ^VehicleOverlays
|
||||
Defaults:
|
||||
Length: *
|
||||
Offset: 0, 0, 24
|
||||
muzzle0: mgun-n
|
||||
muzzle1: mgun-nw
|
||||
muzzle2: mgun-w
|
||||
muzzle3: mgun-sw
|
||||
muzzle4: mgun-s
|
||||
muzzle5: mgun-se
|
||||
muzzle6: mgun-e
|
||||
muzzle7: mgun-ne
|
||||
muzzle:
|
||||
Combine:
|
||||
mgun-n:
|
||||
Length: 6
|
||||
mgun-nw:
|
||||
Length: 6
|
||||
mgun-w:
|
||||
Length: 6
|
||||
mgun-sw:
|
||||
Length: 6
|
||||
mgun-s:
|
||||
Length: 6
|
||||
mgun-se:
|
||||
Length: 6
|
||||
mgun-e:
|
||||
Length: 6
|
||||
mgun-ne:
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Length: 6
|
||||
icon: bggyicon
|
||||
Offset: 0, 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user