diff --git a/OpenRA.Mods.Common/Projectiles/Bullet.cs b/OpenRA.Mods.Common/Projectiles/Bullet.cs index 827d26564e..bf2457a6e5 100644 --- a/OpenRA.Mods.Common/Projectiles/Bullet.cs +++ b/OpenRA.Mods.Common/Projectiles/Bullet.cs @@ -40,6 +40,9 @@ namespace OpenRA.Mods.Common.Projectiles [Desc("The palette used to draw this projectile.")] [PaletteReference] public readonly string Palette = "effect"; + [Desc("Palette is a player palette BaseName")] + public readonly bool IsPlayerPalette = false; + [Desc("Does this projectile have a shadow?")] public readonly bool Shadow = false; @@ -277,7 +280,7 @@ namespace OpenRA.Mods.Common.Projectiles yield return r; } - var palette = wr.Palette(info.Palette); + var palette = wr.Palette(info.Palette + (info.IsPlayerPalette ? args.SourceActor.Owner.InternalName : "")); foreach (var r in anim.Render(pos, palette)) yield return r; } diff --git a/OpenRA.Mods.Common/Projectiles/GravityBomb.cs b/OpenRA.Mods.Common/Projectiles/GravityBomb.cs index 2bb5637736..08d365c30c 100644 --- a/OpenRA.Mods.Common/Projectiles/GravityBomb.cs +++ b/OpenRA.Mods.Common/Projectiles/GravityBomb.cs @@ -28,8 +28,12 @@ namespace OpenRA.Mods.Common.Projectiles [Desc("Sequence to play when launched. Skipped if null or empty.")] [SequenceReference("Image")] public readonly string OpenSequence = null; + [Desc("The palette used to draw this projectile.")] [PaletteReference] public readonly string Palette = "effect"; + [Desc("Palette is a player palette BaseName")] + public readonly bool IsPlayerPalette = false; + public readonly bool Shadow = false; [PaletteReference] public readonly string ShadowPalette = "shadow"; @@ -104,7 +108,7 @@ namespace OpenRA.Mods.Common.Projectiles yield return r; } - var palette = wr.Palette(info.Palette); + var palette = wr.Palette(info.Palette + (info.IsPlayerPalette ? args.SourceActor.Owner.InternalName : "")); foreach (var r in anim.Render(pos, palette)) yield return r; } diff --git a/OpenRA.Mods.Common/Projectiles/Missile.cs b/OpenRA.Mods.Common/Projectiles/Missile.cs index b533e93388..d2b116256e 100644 --- a/OpenRA.Mods.Common/Projectiles/Missile.cs +++ b/OpenRA.Mods.Common/Projectiles/Missile.cs @@ -34,6 +34,9 @@ namespace OpenRA.Mods.Common.Projectiles [Desc("Palette used to render the projectile sequence.")] [PaletteReference] public readonly string Palette = "effect"; + [Desc("Palette is a player palette BaseName")] + public readonly bool IsPlayerPalette = false; + [Desc("Should the projectile's shadow be rendered?")] public readonly bool Shadow = false; @@ -911,7 +914,7 @@ namespace OpenRA.Mods.Common.Projectiles yield return r; } - var palette = wr.Palette(info.Palette); + var palette = wr.Palette(info.Palette + (info.IsPlayerPalette ? args.SourceActor.Owner.InternalName : "")); foreach (var r in anim.Render(pos, palette)) yield return r; }