diff --git a/OpenRa.Game/Graphics/HardwarePalette.cs b/OpenRa.Game/Graphics/HardwarePalette.cs index 09132cc5be..147a639a34 100644 --- a/OpenRa.Game/Graphics/HardwarePalette.cs +++ b/OpenRa.Game/Graphics/HardwarePalette.cs @@ -5,8 +5,8 @@ namespace OpenRa.Game.Graphics { public enum PaletteType { - Gold, Blue, Red, Orange, Teal, Salmon, Green, Gray, - Shadow, Invuln, Chrome, Shroud, Highlight, + Gold, Blue, Red, Orange, Teal, Salmon, Green, Gray, + Shadow, Invuln, Disabled, Highlight, Shroud, Chrome, }; class HardwarePalette : Sheet @@ -23,11 +23,12 @@ namespace OpenRa.Game.Graphics foreach (string remap in new string[] { "blue", "red", "orange", "teal", "salmon", "green", "gray" }) AddPalette(new Palette(pal, new PlayerColorRemap(FileSystem.Open(remap + ".rem")))); - AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(140, 0, 0, 0)))); - AddPalette(pal); // iron curtain. todo: remap! - AddPalette(pal); // chrome (it's like gold, but we're not going to hax it in palettemods) - AddPalette(new Palette(pal, new ShroudPaletteRemap())); - AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(128, 255, 255, 255)))); + AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(140, 0, 0, 0)))); // Shadow + AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(128, 128, 0, 0)))); // Invulnerable (Iron Curtain) + AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(180, 0, 0, 0)))); // Disabled / Low power + AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(128, 255, 255, 255)))); // Highlight + AddPalette(new Palette(pal, new ShroudPaletteRemap())); // Shroud + AddPalette(pal); // Chrome (it's like gold, but we're not going to hax it in palettemods) } int AddPalette(Palette p) diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj index df46a1172b..edc3f28fc9 100644 --- a/OpenRa.Game/OpenRa.Game.csproj +++ b/OpenRa.Game/OpenRa.Game.csproj @@ -84,6 +84,7 @@ + diff --git a/OpenRa.Game/Traits/Building.cs b/OpenRa.Game/Traits/Building.cs index dfb870285c..22bf173a80 100644 --- a/OpenRa.Game/Traits/Building.cs +++ b/OpenRa.Game/Traits/Building.cs @@ -15,6 +15,7 @@ namespace OpenRa.Game.Traits public readonly BuildingInfo unitInfo; bool isRepairing = false; bool isPoweredDown = false; + public bool IsPoweredDown { get { return isPoweredDown; } } public Building(Actor self) { @@ -50,19 +51,8 @@ namespace OpenRa.Game.Traits List nrs = new List(rs); foreach(var r in rs) { - // Need 2 shadows to make it dark enough - nrs.Add(r.WithPalette(PaletteType.Shadow)); - nrs.Add(r.WithPalette(PaletteType.Shadow)); + nrs.Add(r.WithPalette(PaletteType.Disabled)); } - - if (isPoweredDown) - { - iconAnim = new Animation("powerdown"); - iconAnim.PlayRepeating("disabled"); - nrs.Add(new Renderable(iconAnim.Image, self.CenterLocation - 0.5f*iconAnim.Image.size, PaletteType.Chrome)); - } - - return nrs; } @@ -93,6 +83,7 @@ namespace OpenRa.Game.Traits if (order.OrderString == "PowerDown") { isPoweredDown = !isPoweredDown; + if (isPoweredDown) Game.world.AddFrameEndTask(w => w.Add(new PowerDownIndicator(self))); Sound.Play((isPoweredDown) ? "bleep12.aud" : "bleep11.aud"); } } diff --git a/OpenRa.Game/Traits/IronCurtainable.cs b/OpenRa.Game/Traits/IronCurtainable.cs index 91716f6bab..eb15272a02 100644 --- a/OpenRa.Game/Traits/IronCurtainable.cs +++ b/OpenRa.Game/Traits/IronCurtainable.cs @@ -49,7 +49,7 @@ namespace OpenRa.Game.Traits List nrs = new List(rs); foreach(var r in rs) { - nrs.Add(r.WithPalette(PaletteType.Shadow)); + nrs.Add(r.WithPalette(PaletteType.Invuln)); } return nrs; }