diff --git a/OpenRA.Mods.RA/Render/WithShadow.cs b/OpenRA.Mods.RA/Render/WithShadow.cs index 4ef6c30d9b..a69fb29839 100644 --- a/OpenRA.Mods.RA/Render/WithShadow.cs +++ b/OpenRA.Mods.RA/Render/WithShadow.cs @@ -8,9 +8,11 @@ */ #endregion +using System; using System.Collections.Generic; using System.Linq; using OpenRA.Traits; +using OpenRA.Mods.RA.Air; namespace OpenRA.Mods.RA.Render { @@ -22,9 +24,13 @@ namespace OpenRA.Mods.RA.Render { var move = self.Trait(); + /* rude hack */ + var visualOffset = (move is Helicopter && move.Altitude > 0) + ? Math.Abs((self.ActorID + Game.LocalTick) / 5 % 4 - 1) - 1 : 0; + var shadowSprites = r.Select(a => a.WithPalette("shadow")); var flyingSprites = (move.Altitude <= 0) ? r - : r.Select(a => a.WithPos(a.Pos - new float2(0, move.Altitude)).WithZOffset(move.Altitude)); + : r.Select(a => a.WithPos(a.Pos - new float2(0, move.Altitude + visualOffset)).WithZOffset(move.Altitude)); return shadowSprites.Concat(flyingSprites); }