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;
}