diff --git a/OpenRA.Game/GameRules/WeaponInfo.cs b/OpenRA.Game/GameRules/WeaponInfo.cs index 55ab9d5e8d..5f15ee3a04 100644 --- a/OpenRA.Game/GameRules/WeaponInfo.cs +++ b/OpenRA.Game/GameRules/WeaponInfo.cs @@ -25,6 +25,7 @@ namespace OpenRA.GameRules public int[] InaccuracyModifiers; public int[] RangeModifiers; public int Facing; + public Func CurrentMuzzleFacing; public WPos Source; public Func CurrentSource; public Actor SourceActor; diff --git a/OpenRA.Mods.Common/Traits/Armament.cs b/OpenRA.Mods.Common/Traits/Armament.cs index dfda4c714b..8f65f09861 100644 --- a/OpenRA.Mods.Common/Traits/Armament.cs +++ b/OpenRA.Mods.Common/Traits/Armament.cs @@ -277,6 +277,7 @@ namespace OpenRA.Mods.Common.Traits { Func muzzlePosition = () => self.CenterPosition + MuzzleOffset(self, barrel); var legacyFacing = MuzzleOrientation(self, barrel).Yaw.Angle / 4; + Func legacyMuzzleFacing = () => MuzzleOrientation(self, barrel).Yaw.Angle / 4; var passiveTarget = Weapon.TargetActorCenter ? target.CenterPosition : target.Positions.PositionClosestTo(muzzlePosition()); var initialOffset = Weapon.FirstBurstTargetOffset; @@ -299,6 +300,7 @@ namespace OpenRA.Mods.Common.Traits { Weapon = Weapon, Facing = legacyFacing, + CurrentMuzzleFacing = legacyMuzzleFacing, DamageModifiers = damageModifiers.ToArray(), diff --git a/OpenRA.Mods.Common/Traits/ThrowsShrapnel.cs b/OpenRA.Mods.Common/Traits/ThrowsShrapnel.cs index 78e8f9bc80..049266191f 100644 --- a/OpenRA.Mods.Common/Traits/ThrowsShrapnel.cs +++ b/OpenRA.Mods.Common/Traits/ThrowsShrapnel.cs @@ -68,6 +68,7 @@ namespace OpenRA.Mods.Common.Traits { Weapon = wep, Facing = self.World.SharedRandom.Next(-1, 255), + CurrentMuzzleFacing = () => 0, DamageModifiers = self.TraitsImplementing() .Select(a => a.GetFirepowerModifier()).ToArray(), diff --git a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs index a32303a959..2cbaceabf6 100644 --- a/OpenRA.Mods.D2k/Traits/SpiceBloom.cs +++ b/OpenRA.Mods.D2k/Traits/SpiceBloom.cs @@ -137,6 +137,7 @@ namespace OpenRA.Mods.D2k.Traits { Weapon = self.World.Map.Rules.Weapons[info.Weapon.ToLowerInvariant()], Facing = 0, + CurrentMuzzleFacing = () => 0, DamageModifiers = self.TraitsImplementing() .Select(a => a.GetFirepowerModifier()).ToArray(),