added contrast to range circle

This commit is contained in:
Sascha Biedermann
2013-03-20 18:53:28 +01:00
parent 7c31a8f28e
commit 35f4230984
4 changed files with 30 additions and 10 deletions

View File

@@ -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() public void RefreshPalette()
{ {
palette.Update( world.WorldActor.TraitsImplementing<IPaletteModifier>() ); palette.Update( world.WorldActor.TraitsImplementing<IPaletteModifier>() );

View File

@@ -22,9 +22,11 @@ namespace OpenRA.Mods.RA
if (self.Owner != self.World.LocalPlayer) if (self.Owner != self.World.LocalPlayer)
return; return;
wr.DrawRangeCircle( wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.LimeGreen), Color.FromArgb(128, Color.LimeGreen),
self.CenterLocation.ToFloat2(), self.Info.Traits.Get<DetectCloakedInfo>().Range); self.CenterLocation.ToFloat2(), self.Info.Traits.Get<DetectCloakedInfo>().Range,
Color.FromArgb(96, Color.Black),
1);
} }
} }
} }

View File

@@ -25,10 +25,12 @@ namespace OpenRA.Mods.RA
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation) public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
{ {
wr.DrawRangeCircle( wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Yellow), Color.FromArgb(128, Color.Yellow),
centerLocation.ToFloat2(), centerLocation.ToFloat2(),
ai.Traits.Get<AttackBaseInfo>().GetMaximumRange()); ai.Traits.Get<AttackBaseInfo>().GetMaximumRange(),
Color.FromArgb(96, Color.Black),
1);
foreach (var a in w.ActorsWithTrait<RenderRangeCircle>()) foreach (var a in w.ActorsWithTrait<RenderRangeCircle>())
if (a.Actor.Owner == a.Actor.World.LocalPlayer) if (a.Actor.Owner == a.Actor.World.LocalPlayer)
@@ -44,9 +46,11 @@ namespace OpenRA.Mods.RA
if (self.Owner != self.World.LocalPlayer) if (self.Owner != self.World.LocalPlayer)
return; return;
wr.DrawRangeCircle( wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Yellow), Color.FromArgb(128, Color.Yellow),
self.CenterLocation.ToFloat2(), self.Trait<AttackBase>().GetMaximumRange()); self.CenterLocation.ToFloat2(), self.Trait<AttackBase>().GetMaximumRange(),
Color.FromArgb(96, Color.Black),
1);
} }
} }
} }

View File

@@ -18,10 +18,12 @@ namespace OpenRA.Mods.RA
{ {
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation) public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
{ {
wr.DrawRangeCircle( wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Cyan), Color.FromArgb(128, Color.Cyan),
centerLocation.ToFloat2(), centerLocation.ToFloat2(),
ai.Traits.Get<CreatesShroudInfo>().Range); ai.Traits.Get<CreatesShroudInfo>().Range,
Color.FromArgb(96, Color.Black),
1);
foreach (var a in w.ActorsWithTrait<RenderShroudCircle>()) foreach (var a in w.ActorsWithTrait<RenderShroudCircle>())
if (a.Actor.Owner == a.Actor.World.LocalPlayer) if (a.Actor.Owner == a.Actor.World.LocalPlayer)
@@ -36,9 +38,11 @@ namespace OpenRA.Mods.RA
if (self.Owner != self.World.LocalPlayer) if (self.Owner != self.World.LocalPlayer)
return; return;
wr.DrawRangeCircle( wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Cyan), Color.FromArgb(128, Color.Cyan),
self.CenterLocation.ToFloat2(), self.Info.Traits.Get<CreatesShroudInfo>().Range); self.CenterLocation.ToFloat2(), self.Info.Traits.Get<CreatesShroudInfo>().Range,
Color.FromArgb(96, Color.Black),
1);
} }
} }
} }