From f7b8eaf1ac746f97bb4e7f10e1d77be119b64a6e Mon Sep 17 00:00:00 2001 From: reaperrr Date: Thu, 22 Oct 2015 13:21:57 +0200 Subject: [PATCH] Add height visualization to CombatDebugOverlay --- OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs | 16 +++++++++++++++- mods/cnc/rules/defaults.yaml | 1 + mods/d2k/rules/structures.yaml | 1 + mods/ts/rules/defaults.yaml | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs index b42b07b96e..dceb3511d4 100644 --- a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs @@ -27,12 +27,14 @@ namespace OpenRA.Mods.Common.Traits readonly DeveloperMode devMode; readonly HealthInfo healthInfo; + readonly BlocksProjectilesInfo blockInfo; Lazy attack; Lazy coords; public CombatDebugOverlay(Actor self) { healthInfo = self.Info.TraitInfoOrDefault(); + blockInfo = self.Info.TraitInfoOrDefault(); attack = Exts.Lazy(() => self.TraitOrDefault()); coords = Exts.Lazy(() => self.Trait()); @@ -48,11 +50,23 @@ namespace OpenRA.Mods.Common.Traits if (healthInfo != null) wr.DrawRangeCircle(self.CenterPosition, healthInfo.Radius, Color.Red); + var wlr = Game.Renderer.WorldLineRenderer; + + if (blockInfo != null) + { + var hc = Color.Orange; + var height = new WVec(0, 0, blockInfo.Height.Length); + var ha = wr.ScreenPosition(self.CenterPosition); + var hb = wr.ScreenPosition(self.CenterPosition + height); + wlr.DrawLine(ha, hb, hc); + wr.DrawTargetMarker(hc, ha); + wr.DrawTargetMarker(hc, hb); + } + // No armaments to draw if (attack.Value == null) return; - var wlr = Game.Renderer.WorldLineRenderer; var c = Color.White; // Fire ports on garrisonable structures diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index c76fcedc1c..bc27c48b19 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -545,6 +545,7 @@ ^Wall: Inherits@1: ^SpriteActor + CombatDebugOverlay: AppearsOnRadar: Building: Dimensions: 1,1 diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 6dd1bf0483..2aebdfdf79 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -500,6 +500,7 @@ starport: wall: Inherits@1: ^SpriteActor + CombatDebugOverlay: HiddenUnderShroud: Buildable: Queue: Building diff --git a/mods/ts/rules/defaults.yaml b/mods/ts/rules/defaults.yaml index fb2e6f0dff..24b4dd8535 100644 --- a/mods/ts/rules/defaults.yaml +++ b/mods/ts/rules/defaults.yaml @@ -173,6 +173,7 @@ ^Wall: Inherits@1: ^SpriteActor + CombatDebugOverlay: HiddenUnderShroud: AppearsOnRadar: Building: