diff --git a/OpenRA.Mods.RA/Effects/Corpse.cs b/OpenRA.Mods.RA/Effects/Corpse.cs index 48b2a539a5..55aa334bed 100644 --- a/OpenRA.Mods.RA/Effects/Corpse.cs +++ b/OpenRA.Mods.RA/Effects/Corpse.cs @@ -21,12 +21,12 @@ namespace OpenRA.Mods.RA.Effects readonly float2 pos; readonly string palette; - public Corpse(Actor fromActor, int death) + public Corpse(Actor fromActor, string sequence) { var rs = fromActor.Trait(); palette = rs.Palette(fromActor.Owner); anim = new Animation(rs.GetImage(fromActor)); - anim.PlayThen("die{0}".F(death + 1), + anim.PlayThen(sequence, () => fromActor.World.AddFrameEndTask(w => w.Remove(this))); pos = fromActor.CenterLocation; diff --git a/OpenRA.Mods.RA/Render/RenderInfantry.cs b/OpenRA.Mods.RA/Render/RenderInfantry.cs index e17f810ea0..7e5a6e8767 100644 --- a/OpenRA.Mods.RA/Render/RenderInfantry.cs +++ b/OpenRA.Mods.RA/Render/RenderInfantry.cs @@ -119,9 +119,12 @@ namespace OpenRA.Mods.RA.Render public void Killed(Actor self, AttackInfo e) { - var death = e.Warhead != null ? e.Warhead.InfDeath : 0; + // Killed by some non-standard means + if (e.Warhead == null) + return; + Sound.PlayVoice("Die", self, self.Owner.Country.Race); - self.World.AddFrameEndTask(w => w.Add(new Corpse(self, death))); + self.World.AddFrameEndTask(w => w.Add(new Corpse(self, "die{0}".F(e.Warhead.InfDeath + 1)))); } } }