From 3aea7bf955f96d241e926d78ac370da314f474f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Tue, 12 Jul 2016 07:33:30 +0200 Subject: [PATCH] Unhardcode, lint-test and self-document the ion cannon sequence. --- OpenRA.Mods.Cnc/Projectiles/IonCannon.cs | 4 ++-- OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Cnc/Projectiles/IonCannon.cs b/OpenRA.Mods.Cnc/Projectiles/IonCannon.cs index e710ebf7f9..1f4a81dcc5 100644 --- a/OpenRA.Mods.Cnc/Projectiles/IonCannon.cs +++ b/OpenRA.Mods.Cnc/Projectiles/IonCannon.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.Cnc.Effects int weaponDelay; bool impacted = false; - public IonCannon(Player firedBy, WeaponInfo weapon, World world, CPos location, string effect, string palette, int delay) + public IonCannon(Player firedBy, WeaponInfo weapon, World world, CPos location, string effect, string sequence, string palette, int delay) { this.firedBy = firedBy; this.weapon = weapon; @@ -37,7 +37,7 @@ namespace OpenRA.Mods.Cnc.Effects weaponDelay = delay; target = Target.FromCell(world, location); anim = new Animation(world, effect); - anim.PlayThen("idle", () => Finish(world)); + anim.PlayThen(sequence, () => Finish(world)); } public void Tick(World world) diff --git a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs index 34e995c31d..44ac999112 100644 --- a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs +++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs @@ -27,8 +27,12 @@ namespace OpenRA.Mods.Cnc.Traits [Desc("Amount of time to keep the camera alive")] public readonly int CameraRemoveDelay = 25; - [Desc("Effect sequence to display")] + [Desc("Effect sequence sprite image")] public readonly string Effect = "ionsfx"; + + [Desc("Effect sequence to display")] + [SequenceReference("Effect")] public readonly string EffectSequence = "idle"; + [PaletteReference] public readonly string EffectPalette = "effect"; [Desc("Which weapon to fire"), WeaponReference] @@ -60,7 +64,7 @@ namespace OpenRA.Mods.Cnc.Traits self.World.AddFrameEndTask(w => { Game.Sound.Play(Info.LaunchSound, self.World.Map.CenterOfCell(order.TargetLocation)); - w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, order.TargetLocation, info.Effect, info.EffectPalette, info.WeaponDelay)); + w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, order.TargetLocation, info.Effect, info.EffectSequence, info.EffectPalette, info.WeaponDelay)); if (info.CameraActor == null) return;