Merge pull request #10778 from Mailaender/test-nuke-sprites

Exposed nuke missile sprites to lint testing
This commit is contained in:
Oliver Brakmann
2016-03-05 21:52:20 +01:00
2 changed files with 15 additions and 7 deletions

View File

@@ -25,6 +25,7 @@ namespace OpenRA.Mods.Common.Effects
readonly Animation anim; readonly Animation anim;
readonly WeaponInfo weapon; readonly WeaponInfo weapon;
readonly string weaponPalette; readonly string weaponPalette;
readonly string downSequence;
readonly string flashType; readonly string flashType;
readonly WPos ascendSource; readonly WPos ascendSource;
@@ -37,12 +38,13 @@ namespace OpenRA.Mods.Common.Effects
WPos pos; WPos pos;
int ticks; int ticks;
public NukeLaunch(Player firedBy, string name, WeaponInfo weapon, string weaponPalette, public NukeLaunch(Player firedBy, string name, WeaponInfo weapon, string weaponPalette, string upSequence, string downSequence,
WPos launchPos, WPos targetPos, WDist velocity, int delay, bool skipAscent, string flashType) WPos launchPos, WPos targetPos, WDist velocity, int delay, bool skipAscent, string flashType)
{ {
this.firedBy = firedBy; this.firedBy = firedBy;
this.weapon = weapon; this.weapon = weapon;
this.weaponPalette = weaponPalette; this.weaponPalette = weaponPalette;
this.downSequence = downSequence;
this.delay = delay; this.delay = delay;
turn = delay / 2; turn = delay / 2;
this.flashType = flashType; this.flashType = flashType;
@@ -54,7 +56,7 @@ namespace OpenRA.Mods.Common.Effects
descendTarget = targetPos; descendTarget = targetPos;
anim = new Animation(firedBy.World, name); anim = new Animation(firedBy.World, name);
anim.PlayRepeating("up"); anim.PlayRepeating(upSequence);
pos = launchPos; pos = launchPos;
if (weapon.Report != null && weapon.Report.Any()) if (weapon.Report != null && weapon.Report.Any())
@@ -69,7 +71,7 @@ namespace OpenRA.Mods.Common.Effects
anim.Tick(); anim.Tick();
if (ticks == turn) if (ticks == turn)
anim.PlayRepeating("down"); anim.PlayRepeating(downSequence);
if (ticks <= turn) if (ticks <= turn)
pos = WPos.LerpQuadratic(ascendSource, ascendTarget, WAngle.Zero, ticks, turn); pos = WPos.LerpQuadratic(ascendSource, ascendTarget, WAngle.Zero, ticks, turn);

View File

@@ -21,12 +21,17 @@ namespace OpenRA.Mods.Common.Traits
{ {
class NukePowerInfo : SupportPowerInfo, IRulesetLoaded, Requires<BodyOrientationInfo> class NukePowerInfo : SupportPowerInfo, IRulesetLoaded, Requires<BodyOrientationInfo>
{ {
[WeaponReference] [WeaponReference, FieldLoader.Require]
[Desc("Weapon to use for the impact.", [Desc("Weapon to use for the impact.",
"But also image to use for the missile.", "Also image to use for the missile.")]
"Requires an 'up' and a 'down' sequence on the image.")]
public readonly string MissileWeapon = ""; public readonly string MissileWeapon = "";
[Desc("Sprite sequence for the ascending missile.")]
[SequenceReference("MissileWeapon")] public readonly string MissileUp = "up";
[Desc("Sprite sequence for the descending missile.")]
[SequenceReference("MissileWeapon")] public readonly string MissileDown = "down";
[Desc("Offset from the actor the missile spawns on.")] [Desc("Offset from the actor the missile spawns on.")]
public readonly WVec SpawnOffset = WVec.Zero; public readonly WVec SpawnOffset = WVec.Zero;
@@ -55,6 +60,7 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Amount of time after detonation to remove the camera")] [Desc("Amount of time after detonation to remove the camera")]
public readonly int CameraRemoveDelay = 25; public readonly int CameraRemoveDelay = 25;
[Desc("Corresponds to `Type` from `FlashPaletteEffect` on the world actor.")]
public readonly string FlashType = null; public readonly string FlashType = null;
[SequenceReference] [SequenceReference]
@@ -95,7 +101,7 @@ namespace OpenRA.Mods.Common.Traits
} }
var targetPosition = self.World.Map.CenterOfCell(order.TargetLocation); var targetPosition = self.World.Map.CenterOfCell(order.TargetLocation);
var missile = new NukeLaunch(self.Owner, info.MissileWeapon, info.WeaponInfo, info.MissilePalette, var missile = new NukeLaunch(self.Owner, info.MissileWeapon, info.WeaponInfo, info.MissilePalette, info.MissileUp, info.MissileDown,
self.CenterPosition + body.LocalToWorld(info.SpawnOffset), self.CenterPosition + body.LocalToWorld(info.SpawnOffset),
targetPosition, targetPosition,
info.FlightVelocity, info.FlightDelay, info.SkipAscent, info.FlightVelocity, info.FlightDelay, info.SkipAscent,