Replace ColorRamp with HSLColor everywhere.

Fixes:
* Nuclear-purple color exploit.
* #3247.
* Removes a bunch of unnecessary color conversions every frame.

Caveats:
* The ramp range is now defined on the palette, so ramps can no longer be set per-player (may impact maps which define custom colors).
* It's no longer possible to perfectly recreate the original WW color ramps (I doubt we care).
* The old ColorRamp setting isn't migrated, so players will lose their color settings.
This commit is contained in:
Paul Chote
2013-05-10 17:14:22 +12:00
parent abcc30f0b7
commit 656476991f
41 changed files with 112 additions and 168 deletions

View File

@@ -155,7 +155,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
graph.GetSeries = () =>
players.Select(p => new LineGraphSeries(
p.PlayerName,
p.ColorRamp.GetColor(0),
p.Color.RGB,
(p.PlayerActor.TraitOrDefault<PlayerStatistics>() ?? new PlayerStatistics(p.PlayerActor)).EarnedSamples.Select(s => (float)s)
));
@@ -302,7 +302,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var playerName = template.Get<LabelWidget>("PLAYER");
playerName.GetText = () => player.PlayerName + (player.WinState == WinState.Undefined ? "" : " (" + player.WinState + ")");
playerName.GetColor = () => player.ColorRamp.GetColor(0);
playerName.GetColor = () => player.Color.RGB;
}
static Color GetPowerColor(PowerState state)