From 35f42309842faff12659028b711526729fbc8940 Mon Sep 17 00:00:00 2001 From: Sascha Biedermann Date: Wed, 20 Mar 2013 18:53:28 +0100 Subject: [PATCH] added contrast to range circle --- OpenRA.Game/Graphics/WorldRenderer.cs | 10 ++++++++++ OpenRA.Mods.RA/RenderDetectionCircle.cs | 6 ++++-- OpenRA.Mods.RA/RenderRangeCircle.cs | 12 ++++++++---- OpenRA.Mods.RA/RenderShroudCircle.cs | 12 ++++++++---- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index c590105a92..fca66abb50 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -199,6 +199,16 @@ namespace OpenRA.Graphics } } + public void DrawRangeCircleWithContrast(Color fg, float2 location, float range, Color bg, int offset) + { + if (offset > 0) { + DrawRangeCircle(bg, location, range + (float) offset/Game.CellSize); + DrawRangeCircle(bg, location, range - (float) offset/Game.CellSize); + } + + DrawRangeCircle(fg, location, range); + } + public void RefreshPalette() { palette.Update( world.WorldActor.TraitsImplementing() ); diff --git a/OpenRA.Mods.RA/RenderDetectionCircle.cs b/OpenRA.Mods.RA/RenderDetectionCircle.cs index b7846b0a4a..b6567ecd1c 100644 --- a/OpenRA.Mods.RA/RenderDetectionCircle.cs +++ b/OpenRA.Mods.RA/RenderDetectionCircle.cs @@ -22,9 +22,11 @@ namespace OpenRA.Mods.RA if (self.Owner != self.World.LocalPlayer) return; - wr.DrawRangeCircle( + wr.DrawRangeCircleWithContrast( Color.FromArgb(128, Color.LimeGreen), - self.CenterLocation.ToFloat2(), self.Info.Traits.Get().Range); + self.CenterLocation.ToFloat2(), self.Info.Traits.Get().Range, + Color.FromArgb(96, Color.Black), + 1); } } } diff --git a/OpenRA.Mods.RA/RenderRangeCircle.cs b/OpenRA.Mods.RA/RenderRangeCircle.cs index d1b6642d39..8a869fdc55 100644 --- a/OpenRA.Mods.RA/RenderRangeCircle.cs +++ b/OpenRA.Mods.RA/RenderRangeCircle.cs @@ -25,10 +25,12 @@ namespace OpenRA.Mods.RA public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation) { - wr.DrawRangeCircle( + wr.DrawRangeCircleWithContrast( Color.FromArgb(128, Color.Yellow), centerLocation.ToFloat2(), - ai.Traits.Get().GetMaximumRange()); + ai.Traits.Get().GetMaximumRange(), + Color.FromArgb(96, Color.Black), + 1); foreach (var a in w.ActorsWithTrait()) if (a.Actor.Owner == a.Actor.World.LocalPlayer) @@ -44,9 +46,11 @@ namespace OpenRA.Mods.RA if (self.Owner != self.World.LocalPlayer) return; - wr.DrawRangeCircle( + wr.DrawRangeCircleWithContrast( Color.FromArgb(128, Color.Yellow), - self.CenterLocation.ToFloat2(), self.Trait().GetMaximumRange()); + self.CenterLocation.ToFloat2(), self.Trait().GetMaximumRange(), + Color.FromArgb(96, Color.Black), + 1); } } } diff --git a/OpenRA.Mods.RA/RenderShroudCircle.cs b/OpenRA.Mods.RA/RenderShroudCircle.cs index 02c9a90bde..b63162d893 100644 --- a/OpenRA.Mods.RA/RenderShroudCircle.cs +++ b/OpenRA.Mods.RA/RenderShroudCircle.cs @@ -18,10 +18,12 @@ namespace OpenRA.Mods.RA { public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation) { - wr.DrawRangeCircle( + wr.DrawRangeCircleWithContrast( Color.FromArgb(128, Color.Cyan), centerLocation.ToFloat2(), - ai.Traits.Get().Range); + ai.Traits.Get().Range, + Color.FromArgb(96, Color.Black), + 1); foreach (var a in w.ActorsWithTrait()) if (a.Actor.Owner == a.Actor.World.LocalPlayer) @@ -36,9 +38,11 @@ namespace OpenRA.Mods.RA if (self.Owner != self.World.LocalPlayer) return; - wr.DrawRangeCircle( + wr.DrawRangeCircleWithContrast( Color.FromArgb(128, Color.Cyan), - self.CenterLocation.ToFloat2(), self.Info.Traits.Get().Range); + self.CenterLocation.ToFloat2(), self.Info.Traits.Get().Range, + Color.FromArgb(96, Color.Black), + 1); } } }