Spawn ejected pilots inside a FrameEndTask.

This commit is contained in:
Paul Chote
2019-11-16 20:08:57 +00:00
committed by abcdefg30
parent 04912ea996
commit 6b1e81a7b5

View File

@@ -58,6 +58,8 @@ namespace OpenRA.Mods.Common.Traits
if ((inAir && !Info.EjectInAir) || (!inAir && !Info.EjectOnGround))
return;
self.World.AddFrameEndTask(w =>
{
if (!Info.AllowUnsuitableCell)
{
var pilotInfo = self.World.Map.Rules.Actors[Info.PilotActor.ToLowerInvariant()];
@@ -89,16 +91,14 @@ namespace OpenRA.Mods.Common.Traits
var pilot = self.World.CreateActor(true, Info.PilotActor.ToLowerInvariant(), td);
if (!inAir)
{
self.World.AddFrameEndTask(w =>
{
var pilotMobile = pilot.TraitOrDefault<Mobile>();
if (pilotMobile != null)
pilotMobile.Nudge(pilot);
});
}
else
Game.Sound.Play(SoundType.World, Info.ChuteSound, cp);
});
}
}
}