Add Health radius to CombatDebugOverlay. Fixes #3862.
This commit is contained in:
@@ -28,11 +28,13 @@ namespace OpenRA.Mods.RA
|
|||||||
public class CombatDebugOverlay : IPostRender
|
public class CombatDebugOverlay : IPostRender
|
||||||
{
|
{
|
||||||
Lazy<IEnumerable<Armament>> armaments;
|
Lazy<IEnumerable<Armament>> armaments;
|
||||||
|
Lazy<Health> health;
|
||||||
DeveloperMode devMode;
|
DeveloperMode devMode;
|
||||||
|
|
||||||
public CombatDebugOverlay(Actor self)
|
public CombatDebugOverlay(Actor self)
|
||||||
{
|
{
|
||||||
armaments = Lazy.New(() => self.TraitsImplementing<Armament>());
|
armaments = Lazy.New(() => self.TraitsImplementing<Armament>());
|
||||||
|
health = Lazy.New(() => self.TraitOrDefault<Health>());
|
||||||
|
|
||||||
var localPlayer = self.World.LocalPlayer;
|
var localPlayer = self.World.LocalPlayer;
|
||||||
devMode = localPlayer != null ? localPlayer.PlayerActor.Trait<DeveloperMode>() : null;
|
devMode = localPlayer != null ? localPlayer.PlayerActor.Trait<DeveloperMode>() : null;
|
||||||
@@ -43,6 +45,9 @@ namespace OpenRA.Mods.RA
|
|||||||
if (devMode == null || !devMode.ShowMuzzles)
|
if (devMode == null || !devMode.ShowMuzzles)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (health.Value != null)
|
||||||
|
wr.DrawRangeCircle(Color.Red, wr.ScreenPxPosition(self.CenterPosition), health.Value.Info.Radius / Game.CellSize);
|
||||||
|
|
||||||
var wlr = Game.Renderer.WorldLineRenderer;
|
var wlr = Game.Renderer.WorldLineRenderer;
|
||||||
var c = Color.White;
|
var c = Color.White;
|
||||||
|
|
||||||
@@ -50,7 +55,7 @@ namespace OpenRA.Mods.RA
|
|||||||
foreach (var b in a.Barrels)
|
foreach (var b in a.Barrels)
|
||||||
{
|
{
|
||||||
var muzzle = self.CenterPosition + a.MuzzleOffset(self, b);
|
var muzzle = self.CenterPosition + a.MuzzleOffset(self, b);
|
||||||
var dirOffset = new WVec(0,-224,0).Rotate(a.MuzzleOrientation(self, b));
|
var dirOffset = new WVec(0, -224, 0).Rotate(a.MuzzleOrientation(self, b));
|
||||||
|
|
||||||
var sm = wr.ScreenPosition(muzzle);
|
var sm = wr.ScreenPosition(muzzle);
|
||||||
var sd = wr.ScreenPosition(muzzle + dirOffset);
|
var sd = wr.ScreenPosition(muzzle + dirOffset);
|
||||||
|
|||||||
Reference in New Issue
Block a user