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")]
|
[Desc("Recoil recovery per-frame")]
|
||||||
public readonly WDist RecoilRecovery = new WDist(9);
|
public readonly WDist RecoilRecovery = new WDist(9);
|
||||||
|
|
||||||
|
[SequenceReference]
|
||||||
[Desc("Muzzle flash sequence to render")]
|
[Desc("Muzzle flash sequence to render")]
|
||||||
public readonly string MuzzleSequence = null;
|
public readonly string MuzzleSequence = null;
|
||||||
|
|
||||||
@@ -60,9 +61,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Palette to render Muzzle flash sequence in")]
|
[Desc("Palette to render Muzzle flash sequence in")]
|
||||||
public readonly string MuzzlePalette = "effect";
|
public readonly string MuzzlePalette = "effect";
|
||||||
|
|
||||||
[Desc("Use multiple muzzle images if non-zero")]
|
|
||||||
public readonly int MuzzleSplitFacings = 0;
|
|
||||||
|
|
||||||
[GrantedConditionReference]
|
[GrantedConditionReference]
|
||||||
[Desc("Condition to grant while reloading.")]
|
[Desc("Condition to grant while reloading.")]
|
||||||
public readonly string ReloadingCondition = null;
|
public readonly string ReloadingCondition = null;
|
||||||
|
|||||||
@@ -173,10 +173,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
// Muzzle facing is fixed once the firing starts
|
// Muzzle facing is fixed once the firing starts
|
||||||
var muzzleAnim = new Animation(self.World, paxRender[a.Actor].GetImage(a.Actor), () => targetYaw);
|
var muzzleAnim = new Animation(self.World, paxRender[a.Actor].GetImage(a.Actor), () => targetYaw);
|
||||||
var sequence = a.Info.MuzzleSequence;
|
var sequence = a.Info.MuzzleSequence;
|
||||||
|
|
||||||
if (a.Info.MuzzleSplitFacings > 0)
|
|
||||||
sequence += Util.IndexFacing(targetYaw, a.Info.MuzzleSplitFacings).ToString();
|
|
||||||
|
|
||||||
var muzzleFlash = new AnimationWithOffset(muzzleAnim,
|
var muzzleFlash = new AnimationWithOffset(muzzleAnim,
|
||||||
() => PortOffset(self, port),
|
() => PortOffset(self, port),
|
||||||
() => false,
|
() => false,
|
||||||
|
|||||||
@@ -76,9 +76,6 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var sequence = a.Info.MuzzleSequence;
|
var sequence = a.Info.MuzzleSequence;
|
||||||
if (a.Info.MuzzleSplitFacings > 0)
|
|
||||||
sequence += Util.IndexFacing(getFacing(), a.Info.MuzzleSplitFacings).ToString();
|
|
||||||
|
|
||||||
visible[barrel] = true;
|
visible[barrel] = true;
|
||||||
anims[barrel].Animation.PlayThen(sequence, () => visible[barrel] = false);
|
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 ReplaceFacingAngles(),
|
||||||
new RenameSelfHealing(),
|
new RenameSelfHealing(),
|
||||||
new ReplaceBurns(),
|
new ReplaceBurns(),
|
||||||
|
new RemoveMuzzleSplitFacings(),
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ GACTWR:
|
|||||||
LocalOffset: 588,120,1358
|
LocalOffset: 588,120,1358
|
||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
MuzzlePalette: effect-ignore-lighting
|
MuzzlePalette: effect-ignore-lighting
|
||||||
MuzzleSplitFacings: 8
|
|
||||||
Armament@VULCSECONDARY:
|
Armament@VULCSECONDARY:
|
||||||
RequiresCondition: tower.vulcan
|
RequiresCondition: tower.vulcan
|
||||||
Name: secondary
|
Name: secondary
|
||||||
@@ -104,7 +103,6 @@ GACTWR:
|
|||||||
LocalOffset: 588,-120,1358
|
LocalOffset: 588,-120,1358
|
||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
MuzzlePalette: effect-ignore-lighting
|
MuzzlePalette: effect-ignore-lighting
|
||||||
MuzzleSplitFacings: 8
|
|
||||||
Armament@ROCKET:
|
Armament@ROCKET:
|
||||||
RequiresCondition: tower.rocket
|
RequiresCondition: tower.rocket
|
||||||
Weapon: RPGTower
|
Weapon: RPGTower
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ BGGY:
|
|||||||
LocalOffset: 0,-61,543, 0,61,543
|
LocalOffset: 0,-61,543, 0,61,543
|
||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
MuzzlePalette: effect-ignore-lighting
|
MuzzlePalette: effect-ignore-lighting
|
||||||
MuzzleSplitFacings: 8
|
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
Voice: Attack
|
Voice: Attack
|
||||||
PauseOnCondition: empdisable
|
PauseOnCondition: empdisable
|
||||||
|
|||||||
@@ -1210,36 +1210,26 @@ gactwr:
|
|||||||
UseTilesetCode: false
|
UseTilesetCode: false
|
||||||
turret-sam: gtctwr_d
|
turret-sam: gtctwr_d
|
||||||
Facings: 32
|
Facings: 32
|
||||||
muzzle0: mgun-n
|
muzzle:
|
||||||
Length: *
|
Combine:
|
||||||
Offset: 0, 0, 12
|
mgun-n:
|
||||||
UseTilesetCode: false
|
Length: 6
|
||||||
muzzle1: mgun-nw
|
mgun-nw:
|
||||||
Length: *
|
Length: 6
|
||||||
Offset: 0, 0, 12
|
mgun-w:
|
||||||
UseTilesetCode: false
|
Length: 6
|
||||||
muzzle2: mgun-w
|
mgun-sw:
|
||||||
Length: *
|
Length: 6
|
||||||
Offset: 0, 0, 12
|
mgun-s:
|
||||||
UseTilesetCode: false
|
Length: 6
|
||||||
muzzle3: mgun-sw
|
mgun-se:
|
||||||
Length: *
|
Length: 6
|
||||||
Offset: 0, 0, 12
|
mgun-e:
|
||||||
UseTilesetCode: false
|
Length: 6
|
||||||
muzzle4: mgun-s
|
mgun-ne:
|
||||||
Length: *
|
Length: 6
|
||||||
Offset: 0, 0, 12
|
Facings: 8
|
||||||
UseTilesetCode: false
|
Length: 6
|
||||||
muzzle5: mgun-se
|
|
||||||
Length: *
|
|
||||||
Offset: 0, 0, 12
|
|
||||||
UseTilesetCode: false
|
|
||||||
muzzle6: mgun-e
|
|
||||||
Length: *
|
|
||||||
Offset: 0, 0, 12
|
|
||||||
UseTilesetCode: false
|
|
||||||
muzzle7: mgun-ne
|
|
||||||
Length: *
|
|
||||||
Offset: 0, 0, 12
|
Offset: 0, 0, 12
|
||||||
UseTilesetCode: false
|
UseTilesetCode: false
|
||||||
emp-overlay: emp_fx01
|
emp-overlay: emp_fx01
|
||||||
|
|||||||
@@ -105,16 +105,27 @@ bike:
|
|||||||
bggy:
|
bggy:
|
||||||
Inherits: ^VehicleOverlays
|
Inherits: ^VehicleOverlays
|
||||||
Defaults:
|
Defaults:
|
||||||
Length: *
|
|
||||||
Offset: 0, 0, 24
|
Offset: 0, 0, 24
|
||||||
muzzle0: mgun-n
|
muzzle:
|
||||||
muzzle1: mgun-nw
|
Combine:
|
||||||
muzzle2: mgun-w
|
mgun-n:
|
||||||
muzzle3: mgun-sw
|
Length: 6
|
||||||
muzzle4: mgun-s
|
mgun-nw:
|
||||||
muzzle5: mgun-se
|
Length: 6
|
||||||
muzzle6: mgun-e
|
mgun-w:
|
||||||
muzzle7: mgun-ne
|
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
|
icon: bggyicon
|
||||||
Offset: 0, 0
|
Offset: 0, 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user