From 17e15e1f3eb40849e4da98e091857b6b87dd70d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 2 Nov 2013 11:50:36 +0100 Subject: [PATCH 1/3] don't ignore bools --- OpenRA.Mods.RA/EjectOnDeath.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OpenRA.Mods.RA/EjectOnDeath.cs b/OpenRA.Mods.RA/EjectOnDeath.cs index 466597e774..eeb7906d5e 100644 --- a/OpenRA.Mods.RA/EjectOnDeath.cs +++ b/OpenRA.Mods.RA/EjectOnDeath.cs @@ -38,6 +38,8 @@ namespace OpenRA.Mods.RA return; var cp = self.CenterPosition; + if ((cp.Z > 0 && !info.EjectInAir) || (cp.Z == 0 && !info.EjectOnGround)) + return; var pilot = self.World.CreateActor(false, info.PilotActor.ToLowerInvariant(), new TypeDictionary { new OwnerInit(self.Owner), new LocationInit(self.Location) }); From ad25631d111c5c56841cbf30cc7cad98b4ae2033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 2 Nov 2013 11:51:00 +0100 Subject: [PATCH 2/3] nudge the grounded pilots after ejections --- OpenRA.Mods.RA/EjectOnDeath.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OpenRA.Mods.RA/EjectOnDeath.cs b/OpenRA.Mods.RA/EjectOnDeath.cs index eeb7906d5e..a839b94326 100644 --- a/OpenRA.Mods.RA/EjectOnDeath.cs +++ b/OpenRA.Mods.RA/EjectOnDeath.cs @@ -10,6 +10,7 @@ using OpenRA.FileFormats; using OpenRA.Mods.RA.Effects; +using OpenRA.Mods.RA.Move; using OpenRA.Traits; namespace OpenRA.Mods.RA @@ -53,7 +54,12 @@ namespace OpenRA.Mods.RA Sound.Play(info.ChuteSound, cp); } else + { self.World.AddFrameEndTask(w => w.Add(pilot)); + var pilotMobile = pilot.TraitOrDefault(); + if (pilotMobile != null) + pilotMobile.Nudge(pilot, pilot, true); + } } else pilot.Destroy(); From 4012ca7d17d3199676d5fd1c6fb06db11bd866e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 2 Nov 2013 11:52:50 +0100 Subject: [PATCH 3/3] added trait documentation --- OpenRA.Mods.RA/EjectOnDeath.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenRA.Mods.RA/EjectOnDeath.cs b/OpenRA.Mods.RA/EjectOnDeath.cs index a839b94326..6adc77b61a 100644 --- a/OpenRA.Mods.RA/EjectOnDeath.cs +++ b/OpenRA.Mods.RA/EjectOnDeath.cs @@ -15,6 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { + [Desc("Eject a ground soldier or a paratrooper while in the air.")] public class EjectOnDeathInfo : TraitInfo { [ActorReference]