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

View File

@@ -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<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)
{
wr.DrawRangeCircle(
wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Yellow),
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>())
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<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)
{
wr.DrawRangeCircle(
wr.DrawRangeCircleWithContrast(
Color.FromArgb(128, Color.Cyan),
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>())
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<CreatesShroudInfo>().Range);
self.CenterLocation.ToFloat2(), self.Info.Traits.Get<CreatesShroudInfo>().Range,
Color.FromArgb(96, Color.Black),
1);
}
}
}