From 1124c6e6c25fc215a41dd0b94da7479bc8448529 Mon Sep 17 00:00:00 2001 From: Gustas <37534529+PunkPun@users.noreply.github.com> Date: Mon, 30 Jun 2025 19:33:55 +0300 Subject: [PATCH] Fix FireProjectilesOnDeath not working for aircraft husks --- OpenRA.Mods.Common/Traits/FireProjectilesOnDeath.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/FireProjectilesOnDeath.cs b/OpenRA.Mods.Common/Traits/FireProjectilesOnDeath.cs index cbb9f23bfe..5f34138298 100644 --- a/OpenRA.Mods.Common/Traits/FireProjectilesOnDeath.cs +++ b/OpenRA.Mods.Common/Traits/FireProjectilesOnDeath.cs @@ -81,6 +81,8 @@ namespace OpenRA.Mods.Common.Traits for (var i = 0; pieces > i; i++) { var rotation = WRot.FromYaw(new WAngle(self.World.SharedRandom.Next(1024))); + var dat = self.World.Map.DistanceAboveTerrain(self.CenterPosition); + var source = dat.Length < 0 ? self.CenterPosition - new WVec(0, 0, dat.Length) : self.CenterPosition; var args = new ProjectileArgs { Weapon = wep, @@ -96,10 +98,10 @@ namespace OpenRA.Mods.Common.Traits RangeModifiers = self.TraitsImplementing() .Select(a => a.GetRangeModifier()).ToArray(), - Source = self.CenterPosition, - CurrentSource = () => self.CenterPosition, + Source = source, + CurrentSource = () => source, SourceActor = self, - PassiveTarget = self.CenterPosition + new WVec(range, 0, 0).Rotate(rotation) + PassiveTarget = source + new WVec(range, 0, 0).Rotate(rotation) }; self.World.AddFrameEndTask(x =>