From ef8a7a535dec4e54e5a9c2a18f114a21c0231e93 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 26 Nov 2016 21:10:28 +0000 Subject: [PATCH 1/3] Fix string comparison in CheckRevealFootprint. --- OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs b/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs index d726814a3e..682822542c 100644 --- a/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs +++ b/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs @@ -22,7 +22,7 @@ namespace OpenRA.Mods.Common.Lint { foreach (var actorInfo in rules.Actors) { - if (actorInfo.Key.StartsWith("^")) + if (actorInfo.Key.StartsWith("^", StringComparison.Ordinal)) continue; var ios = actorInfo.Value.TraitInfoOrDefault(); From b1f99dd6015e9c31d536e845b2badd186a98f9c9 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 26 Nov 2016 21:10:41 +0000 Subject: [PATCH 2/3] Add GroundPosition VisibilityType. --- OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs | 2 +- OpenRA.Mods.Common/Traits/AffectsShroud.cs | 6 +++++- OpenRA.Mods.Common/Traits/Modifiers/HiddenUnderShroud.cs | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs b/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs index 682822542c..afcc5b96a4 100644 --- a/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs +++ b/OpenRA.Mods.Common/Lint/CheckRevealFootprint.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Lint var ios = actorInfo.Value.TraitInfoOrDefault(); foreach (var rsi in actorInfo.Value.TraitInfos()) { - if (rsi.Type == VisibilityType.CenterPosition) + if (rsi.Type != VisibilityType.Footprint) continue; if (ios == null) diff --git a/OpenRA.Mods.Common/Traits/AffectsShroud.cs b/OpenRA.Mods.Common/Traits/AffectsShroud.cs index 8e8fd93966..f5e1f71741 100644 --- a/OpenRA.Mods.Common/Traits/AffectsShroud.cs +++ b/OpenRA.Mods.Common/Traits/AffectsShroud.cs @@ -53,7 +53,11 @@ namespace OpenRA.Mods.Common.Traits .SelectMany(kv => Shroud.ProjectedCellsInRange(map, kv.First, range, Info.MaxHeightDelta)) .Distinct().ToArray(); - return Shroud.ProjectedCellsInRange(map, self.CenterPosition, range, Info.MaxHeightDelta) + var pos = self.CenterPosition; + if (Info.Type == VisibilityType.GroundPosition) + pos -= new WVec(WDist.Zero, WDist.Zero, self.World.Map.DistanceAboveTerrain(pos)); + + return Shroud.ProjectedCellsInRange(map, pos, range, Info.MaxHeightDelta) .ToArray(); } diff --git a/OpenRA.Mods.Common/Traits/Modifiers/HiddenUnderShroud.cs b/OpenRA.Mods.Common/Traits/Modifiers/HiddenUnderShroud.cs index 5234ce7e4d..bbedbcfc7c 100644 --- a/OpenRA.Mods.Common/Traits/Modifiers/HiddenUnderShroud.cs +++ b/OpenRA.Mods.Common/Traits/Modifiers/HiddenUnderShroud.cs @@ -15,7 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public enum VisibilityType { Footprint, CenterPosition } + public enum VisibilityType { Footprint, CenterPosition, GroundPosition } [Desc("The actor stays invisible under the shroud.")] public class HiddenUnderShroudInfo : ITraitInfo, IDefaultVisibilityInfo From 5d0ce81eb08af0f5f3ec29b4c668515c2f311e7e Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 26 Nov 2016 21:17:00 +0000 Subject: [PATCH 3/3] Make RA/TD aircraft sight relative to ground-based position. --- mods/cnc/rules/aircraft.yaml | 12 ++++++------ mods/ra/rules/aircraft.yaml | 10 +++++----- mods/ra/rules/husks.yaml | 10 +++++----- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mods/cnc/rules/aircraft.yaml b/mods/cnc/rules/aircraft.yaml index b07f9011bd..4898f6cac5 100644 --- a/mods/cnc/rules/aircraft.yaml +++ b/mods/cnc/rules/aircraft.yaml @@ -22,7 +22,7 @@ TRAN: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition WithIdleOverlay@ROTOR1AIR: Offset: 597,0,85 Sequence: rotor @@ -77,7 +77,7 @@ HELI: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition Armament@PRIMARY: Weapon: HeliAGGun LocalOffset: 128,-213,-85, 128,213,-85 @@ -137,7 +137,7 @@ ORCA: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition Armament@PRIMARY: Weapon: OrcaAGMissiles LocalOffset: 427,-171,-213, 427,171,-213 @@ -248,7 +248,7 @@ TRAN.Husk: Speed: 140 RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition WithIdleOverlay@ROTOR1: Offset: 597,0,85 Sequence: rotor @@ -267,7 +267,7 @@ HELI.Husk: Speed: 186 RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition WithIdleOverlay: Offset: 0,0,85 Sequence: rotor @@ -283,6 +283,6 @@ ORCA.Husk: Speed: 186 RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: orca diff --git a/mods/ra/rules/aircraft.yaml b/mods/ra/rules/aircraft.yaml index d58a75c600..504c05ff2e 100644 --- a/mods/ra/rules/aircraft.yaml +++ b/mods/ra/rules/aircraft.yaml @@ -99,7 +99,7 @@ MIG: Type: Light RevealsShroud: Range: 12c0 - Type: CenterPosition + Type: GroundPosition Armament: Weapon: Maverick LocalOffset: 0,-640,0, 0,640,0 @@ -154,7 +154,7 @@ YAK: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition Armament@PRIMARY: Weapon: ChainGun.Yak LocalOffset: 256,-213,0 @@ -213,7 +213,7 @@ TRAN: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition Aircraft: InitialFacing: 224 TurnSpeed: 5 @@ -267,7 +267,7 @@ HELI: Type: Light RevealsShroud: Range: 12c0 - Type: CenterPosition + Type: GroundPosition Armament@PRIMARY: Weapon: HellfireAA LocalOffset: 0,-213,-85 @@ -323,7 +323,7 @@ HIND: Type: Light RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition Armament@PRIMARY: Weapon: ChainGun LocalOffset: 85,-213,-85 diff --git a/mods/ra/rules/husks.yaml b/mods/ra/rules/husks.yaml index d71b5d84b5..86a037fe01 100644 --- a/mods/ra/rules/husks.yaml +++ b/mods/ra/rules/husks.yaml @@ -96,7 +96,7 @@ TRAN.Husk: Sequence: rotor2 RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: tran @@ -149,7 +149,7 @@ MIG.Husk: MinDamage: Undamaged RevealsShroud: Range: 12c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: mig @@ -168,7 +168,7 @@ YAK.Husk: MinDamage: Undamaged RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: yak @@ -187,7 +187,7 @@ HELI.Husk: MinDamage: Undamaged RevealsShroud: Range: 12c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: heli @@ -205,7 +205,7 @@ HIND.Husk: MinDamage: Undamaged RevealsShroud: Range: 10c0 - Type: CenterPosition + Type: GroundPosition RenderSprites: Image: hind