Merge pull request #10649 from obrakmann/radar-team-colors
Added option to show team colors on radar map
This commit is contained in:
@@ -40,7 +40,9 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public IEnumerable<Pair<CPos, Color>> RadarSignatureCells(Actor self)
|
||||
{
|
||||
var color = modifier != null ? modifier.RadarColorOverride(self) : self.Owner.Color.RGB;
|
||||
var color = Game.Settings.Game.UsePlayerStanceColors ? self.Owner.PlayerStanceColor(self) : self.Owner.Color.RGB;
|
||||
if (modifier != null)
|
||||
color = modifier.RadarColorOverride(self, color);
|
||||
|
||||
if (info.UseLocation)
|
||||
return new[] { Pair.New(self.Location, color) };
|
||||
|
||||
@@ -156,12 +156,12 @@ namespace OpenRA.Mods.Common.Traits
|
||||
&& (self.CenterPosition - a.Actor.CenterPosition).LengthSquared <= a.Trait.Info.Range.LengthSquared);
|
||||
}
|
||||
|
||||
Color IRadarColorModifier.RadarColorOverride(Actor self)
|
||||
Color IRadarColorModifier.RadarColorOverride(Actor self, Color color)
|
||||
{
|
||||
var c = self.Owner.Color.RGB;
|
||||
if (self.Owner == self.World.LocalPlayer && Cloaked)
|
||||
c = Color.FromArgb(128, c);
|
||||
return c;
|
||||
color = Color.FromArgb(128, color);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
void GrantUpgrades(Actor self)
|
||||
|
||||
@@ -29,6 +29,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
|
||||
public bool VisibleOnRadar(Actor self) { return true; }
|
||||
public Color RadarColorOverride(Actor self) { return c; }
|
||||
public Color RadarColorOverride(Actor self, Color color) { return c; }
|
||||
}
|
||||
}
|
||||
@@ -154,7 +154,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
BindCheckboxPref(panel, "FRAME_LIMIT_CHECKBOX", ds, "CapFramerate");
|
||||
BindCheckboxPref(panel, "SHOW_SHELLMAP", gs, "ShowShellmap");
|
||||
BindCheckboxPref(panel, "DISPLAY_TARGET_LINES_CHECKBOX", gs, "DrawTargetLine");
|
||||
BindCheckboxPref(panel, "TEAM_HEALTH_COLORS_CHECKBOX", gs, "TeamHealthColors");
|
||||
BindCheckboxPref(panel, "PLAYER_STANCE_COLORS_CHECKBOX", gs, "UsePlayerStanceColors");
|
||||
|
||||
var languageDropDownButton = panel.Get<DropDownButtonWidget>("LANGUAGE_DROPDOWNBUTTON");
|
||||
languageDropDownButton.OnMouseDown = _ => ShowLanguageDropdown(languageDropDownButton);
|
||||
@@ -436,6 +436,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{ "CycleStatusBarsKey", "Cycle status bars display" },
|
||||
{ "TogglePixelDoubleKey", "Toggle pixel doubling" },
|
||||
{ "ToggleMuteKey", "Toggle audio mute" },
|
||||
{ "TogglePlayerStanceColorsKey", "Toggle player stance colors" },
|
||||
|
||||
{ "MapScrollUp", "Map scroll up" },
|
||||
{ "MapScrollDown", "Map scroll down" },
|
||||
|
||||
@@ -52,7 +52,14 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
{
|
||||
var time = WidgetUtils.FormatTime(p.RemainingTime, false, timestep);
|
||||
var text = Format.F(p.Info.Description, time);
|
||||
var color = !p.Ready || Game.LocalTick % 50 < 25 ? p.Instances[0].Self.Owner.Color.RGB : Color.White;
|
||||
var self = p.Instances[0].Self;
|
||||
var playerColor = self.Owner.Color.RGB;
|
||||
|
||||
if (Game.Settings.Game.UsePlayerStanceColors)
|
||||
playerColor = self.Owner.PlayerStanceColor(self);
|
||||
|
||||
var color = !p.Ready || Game.LocalTick % 50 < 25 ? playerColor : Color.White;
|
||||
|
||||
return Pair.New(text, color);
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user