From 5deb5e6686972c6c0f2c4489dc7d89962964553f Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 20:51:23 +1300 Subject: [PATCH 01/18] Let radar dome detect cloaked units --- mods/ra/rules/structures.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 586f5e20f9..e596cf44d5 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -373,7 +373,7 @@ DOME: Cost: 1800 Tooltip: Name: Radar Dome - Description: Provides an overview of the battlefield.\n Requires power to operate. + Description: Provides an overview of the battlefield.\nCan detect cloaked units.\n Requires power to operate. Building: Power: -40 Footprint: xx xx @@ -393,6 +393,9 @@ DOME: Infiltratable: Type: Exploration InfiltrateForExploration: + DetectCloaked: + Range: 10 + RenderDetectionCircle: PBOX: Inherits: ^Building From 58c648daa99423153903c4a3cf06df63c322712f Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 20:51:39 +1300 Subject: [PATCH 02/18] Let attack dog detect cloaked units --- mods/ra/rules/infantry.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 722558fe21..30fefbdb23 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -10,7 +10,7 @@ DOG: Cost: 200 Tooltip: Name: Attack Dog - Description: Anti-infantry unit. Not fooled by the \nSpy's disguise.\n Strong vs Infantry\n Weak vs Vehicles + Description: Anti-infantry unit.\nCan detect cloaked units and spies.\n Strong vs Infantry\n Weak vs Vehicles Selectable: Voice: DogVoice Bounds: 12,17,-1,-4 @@ -26,6 +26,8 @@ DOG: RenderInfantry: IdleAnimations: idle1,idle2 IgnoresDisguise: + DetectCloaked: + Range: 5 E1: Inherits: ^Infantry From 9f69d1333677a0aabefeca334475e7725429ebb7 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 20:52:44 +1300 Subject: [PATCH 03/18] Let mobile radar jammer detect cloaked units --- mods/ra/rules/vehicles.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/vehicles.yaml b/mods/ra/rules/vehicles.yaml index 4a9d6cc00a..76a04742d7 100644 --- a/mods/ra/rules/vehicles.yaml +++ b/mods/ra/rules/vehicles.yaml @@ -515,7 +515,7 @@ MRJ: Cost: 1000 Tooltip: Name: Mobile Radar Jammer - Description: Jams nearby enemy radar domes\nand deflects incoming missiles.\n Unarmed + Description: Jams nearby enemy radar domes\nand deflects incoming missiles.\nCan detect cloaked units.\n Unarmed Buildable: Queue: Vehicle BuildPaletteOrder: 150 @@ -542,6 +542,8 @@ MRJ: JamsMissiles: Range: 4 RenderJammerCircle: + DetectCloaked: + Range: 6 TTNK: Inherits: ^Tank From f80710ac7a40a1a9a08bbabefaff4aa34355ddf9 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 20:54:22 +1300 Subject: [PATCH 04/18] Let cloaked units optionally uncloak when unloading --- OpenRA.Mods.RA/Activities/UnloadCargo.cs | 5 +++++ OpenRA.Mods.RA/Cloak.cs | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/UnloadCargo.cs b/OpenRA.Mods.RA/Activities/UnloadCargo.cs index 40ca5f011c..81a5be6796 100644 --- a/OpenRA.Mods.RA/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.RA/Activities/UnloadCargo.cs @@ -20,12 +20,14 @@ namespace OpenRA.Mods.RA.Activities { readonly Actor self; readonly Cargo cargo; + readonly Cloak cloak; readonly bool unloadAll; public UnloadCargo(Actor self, bool unloadAll) { this.self = self; cargo = self.Trait(); + cloak = self.TraitOrDefault(); this.unloadAll = unloadAll; } @@ -52,6 +54,9 @@ namespace OpenRA.Mods.RA.Activities if (IsCanceled || cargo.IsEmpty(self)) return NextActivity; + if (cloak != null && cloak.Info.UncloakOnUnload) + cloak.Uncloak(); + var actor = cargo.Peek(self); var exitCell = ChooseExitCell(actor); diff --git a/OpenRA.Mods.RA/Cloak.cs b/OpenRA.Mods.RA/Cloak.cs index c1dd4b1449..59ed7ec97d 100644 --- a/OpenRA.Mods.RA/Cloak.cs +++ b/OpenRA.Mods.RA/Cloak.cs @@ -22,6 +22,7 @@ namespace OpenRA.Mods.RA public readonly int InitialDelay = 10; // Ticks public readonly int CloakDelay = 30; // Ticks public readonly bool UncloakOnMove = false; + public readonly bool UncloakOnUnload = false; public readonly bool RequiresCrate = false; public readonly string CloakSound = null; @@ -38,24 +39,24 @@ namespace OpenRA.Mods.RA [Sync] bool crateDisabled; Actor self; - CloakInfo info; + public readonly CloakInfo Info; CPos? lastPos; public Cloak(Actor self, CloakInfo info) { - this.info = info; this.self = self; + Info = info; remainingTime = info.InitialDelay; crateDisabled = info.RequiresCrate; } - public void Uncloak() { Uncloak(info.CloakDelay); } + public void Uncloak() { Uncloak(Info.CloakDelay); } public void Uncloak(int time) { if (Cloaked) - Sound.Play(info.UncloakSound, self.CenterPosition); + Sound.Play(Info.UncloakSound, self.CenterPosition); remainingTime = Math.Max(remainingTime, time); } @@ -77,10 +78,10 @@ namespace OpenRA.Mods.RA return r; if (Cloaked && IsVisible(self, self.World.RenderPlayer)) - if (string.IsNullOrEmpty(info.Palette)) + if (string.IsNullOrEmpty(Info.Palette)) return r; else - return r.Select(a => a.WithPalette(wr.Palette(info.Palette))); + return r.Select(a => a.WithPalette(wr.Palette(Info.Palette))); else return SpriteRenderable.None; } @@ -90,13 +91,13 @@ namespace OpenRA.Mods.RA if (remainingTime > 0 && !crateDisabled && !damageDisabled && --remainingTime <= 0) { self.Generation++; - Sound.Play(info.CloakSound, self.CenterPosition); + Sound.Play(Info.CloakSound, self.CenterPosition); } if (self.IsDisabled()) Uncloak(); - if (info.UncloakOnMove && (lastPos == null || lastPos.Value != self.Location)) + if (Info.UncloakOnMove && (lastPos == null || lastPos.Value != self.Location)) { Uncloak(); lastPos = self.Location; @@ -121,7 +122,7 @@ namespace OpenRA.Mods.RA return c; } - public bool AcceptsCloakCrate { get { return info.RequiresCrate && crateDisabled; } } + public bool AcceptsCloakCrate { get { return Info.RequiresCrate && crateDisabled; } } public void ReceivedCloakCrate(Actor self) { From 963db53b7b18f52239e67d7a797c9cae9e7b489e Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 20:55:41 +1300 Subject: [PATCH 05/18] Adjust tooltip description for destroyer to mention its cloak detection ability --- mods/ra/rules/ships.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index ee8b948283..518d72c157 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -102,7 +102,7 @@ DD: Cost: 1000 Tooltip: Name: Destroyer - Description: Fast multi-role ship. \n Strong vs Submarines, Aircraft\n Weak vs Infantry, Tanks + Description: Fast multi-role ship.\nCan detect submarines.\n Strong vs Submarines, Aircraft\n Weak vs Infantry, Tanks Health: HP: 400 Armor: From 5df88cb186eeaf7ab9b9bd3212fe777e1f0fbdc5 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 21:07:12 +1300 Subject: [PATCH 06/18] Remove cloak detection from ca and lst. Increase pt's cloak detection range to 4 and render a cloak detection range circle for it --- mods/ra/rules/defaults.yaml | 2 -- mods/ra/rules/ships.yaml | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 00dad857f0..fbde3e6677 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -165,8 +165,6 @@ Voice: VehicleVoice TargetableUnit: TargetTypes: Ground, Water - DetectCloaked: - Range: 3 HiddenUnderFog: AttackMove: GainsExperience: diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index 518d72c157..6718261f9f 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -40,7 +40,6 @@ SS: Chronoshiftable: IronCurtainable: RepairableNear: - -DetectCloaked: AutoTarget: InitialStance: HoldFire @@ -86,7 +85,6 @@ MSUB: Chronoshiftable: IronCurtainable: RepairableNear: - -DetectCloaked: AutoTarget: InitialStance: HoldFire @@ -266,4 +264,7 @@ PT: Chronoshiftable: IronCurtainable: RepairableNear: + DetectCloaked: + Range: 4 + RenderDetectionCircle: From 15019d5b060d7f91d5538468850f98c6c0de6845 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 21:29:12 +1300 Subject: [PATCH 07/18] Add CloakTypes to prevent ships from detecting cloaked non-submarine units etc --- OpenRA.Mods.RA/Cloak.cs | 13 ++++++++++--- OpenRA.Mods.RA/DetectCloaked.cs | 1 + mods/ra/rules/ships.yaml | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Cloak.cs b/OpenRA.Mods.RA/Cloak.cs index 59ed7ec97d..87860f5bdd 100644 --- a/OpenRA.Mods.RA/Cloak.cs +++ b/OpenRA.Mods.RA/Cloak.cs @@ -29,6 +29,8 @@ namespace OpenRA.Mods.RA public readonly string UncloakSound = null; public readonly string Palette = "cloak"; + public readonly string[] CloakTypes = { "Cloak" }; + public object Create(ActorInitializer init) { return new Cloak(init.self, this); } } @@ -109,9 +111,14 @@ namespace OpenRA.Mods.RA if (!Cloaked || self.Owner.IsAlliedWith(viewer)) return true; - var centerPosition = self.CenterPosition; - return self.World.ActorsWithTrait().Any(a => a.Actor.Owner.IsAlliedWith(viewer) && - (centerPosition - a.Actor.CenterPosition).Length < WRange.FromCells(a.Actor.Info.Traits.Get().Range).Range); + return self.World.ActorsWithTrait().Any(a => + { + var dc = a.Actor.Info.Traits.Get(); + + return a.Actor.Owner.IsAlliedWith(viewer) + && Info.CloakTypes.Intersect(dc.CloakTypes).Any() + && (self.CenterPosition - a.Actor.CenterPosition).Length <= WRange.FromCells(dc.Range).Range; + }); } public Color RadarColorOverride(Actor self) diff --git a/OpenRA.Mods.RA/DetectCloaked.cs b/OpenRA.Mods.RA/DetectCloaked.cs index 3bc907390c..27a79b2717 100644 --- a/OpenRA.Mods.RA/DetectCloaked.cs +++ b/OpenRA.Mods.RA/DetectCloaked.cs @@ -14,6 +14,7 @@ namespace OpenRA.Mods.RA { class DetectCloakedInfo : TraitInfo { + public readonly string[] CloakTypes = { "Cloak" }; public readonly int Range = 5; } diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index 6718261f9f..20fb101459 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -26,6 +26,7 @@ SS: CloakedTargetTypes: Underwater RenderUnit: Cloak: + CloakTypes: Underwater InitialDelay: 0 CloakDelay: 50 CloakSound: subshow1.aud @@ -71,6 +72,7 @@ MSUB: TargetTypes: Ground, Water CloakedTargetTypes: Underwater Cloak: + CloakTypes: Underwater InitialDelay: 0 CloakDelay: 100 CloakSound: subshow1.aud @@ -131,6 +133,7 @@ DD: IronCurtainable: RepairableNear: DetectCloaked: + CloakTypes: Underwater Range: 4 RenderDetectionCircle: @@ -265,6 +268,7 @@ PT: IronCurtainable: RepairableNear: DetectCloaked: + CloakTypes: Underwater Range: 4 RenderDetectionCircle: From 704c4c17f89e3206aa82ddff451d12230a18e773 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 21:30:11 +1300 Subject: [PATCH 08/18] Adjust tooltip description for gunboat to mention its cloak detection ability --- mods/ra/rules/ships.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index 20fb101459..6bdd0eb97c 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -149,7 +149,7 @@ CA: Cost: 2400 Tooltip: Name: Cruiser - Description: Very slow long-range ship. \n Strong vs Buildings\n Weak vs Ships, Submarines + Description: Very slow long-range ship.\n Strong vs Buildings\n Weak vs Ships, Submarines Health: HP: 800 Armor: @@ -238,7 +238,7 @@ PT: Cost: 500 Tooltip: Name: Gunboat - Description: Light scout & support ship. \n Strong vs Ships, Submarines\n Weak vs Aircraft + Description: Light scout & support ship.\nCan detect submarines.\n Strong vs Ships, Submarines\n Weak vs Aircraft Health: HP: 200 Armor: From 687f1f9bcd40046210699f585535ad2534ba3f94 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Mon, 10 Mar 2014 23:11:44 +1300 Subject: [PATCH 09/18] Implement phase transport --- mods/ra/bits/stnk.shp | Bin 0 -> 13882 bytes mods/ra/bits/stnkicon.shp | Bin 0 -> 2182 bytes mods/ra/rules/vehicles.yaml | 49 ++++++++++++++++++++++++++++++-- mods/ra/sequences/vehicles.yaml | 10 +++++++ mods/ra/weapons.yaml | 2 +- 5 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 mods/ra/bits/stnk.shp create mode 100644 mods/ra/bits/stnkicon.shp diff --git a/mods/ra/bits/stnk.shp b/mods/ra/bits/stnk.shp new file mode 100644 index 0000000000000000000000000000000000000000..a95933f3b73d881f5607077d83b0369e0a7bb59b GIT binary patch literal 13882 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 Date: Mon, 10 Mar 2014 23:13:16 +1300 Subject: [PATCH 10/18] Change sniper to use ReturnFire instead of HoldFire stance by default --- mods/ra/rules/infantry.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 30fefbdb23..46fc6a4716 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -464,7 +464,7 @@ SNIPER: RevealsShroud: Range: 6c0 AutoTarget: - InitialStance: HoldFire + InitialStance: ReturnFire Armament: Weapon: Sniper AttackFrontal: From acea219f559a557bec15e34b984a8f5918017820 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Thu, 13 Mar 2014 22:43:56 +1300 Subject: [PATCH 11/18] Remove actor generation increment when entering cloak --- OpenRA.Mods.RA/Cloak.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/OpenRA.Mods.RA/Cloak.cs b/OpenRA.Mods.RA/Cloak.cs index 87860f5bdd..2f5c3b25f3 100644 --- a/OpenRA.Mods.RA/Cloak.cs +++ b/OpenRA.Mods.RA/Cloak.cs @@ -91,10 +91,7 @@ namespace OpenRA.Mods.RA public void Tick(Actor self) { if (remainingTime > 0 && !crateDisabled && !damageDisabled && --remainingTime <= 0) - { - self.Generation++; Sound.Play(Info.CloakSound, self.CenterPosition); - } if (self.IsDisabled()) Uncloak(); From 5a5ed657d45c5c57e9d09c92e9f071d57d1979fe Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Thu, 13 Mar 2014 22:44:15 +1300 Subject: [PATCH 12/18] Let sniper detect cloaked units --- mods/ra/rules/infantry.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 46fc6a4716..61bed1839b 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -446,7 +446,7 @@ SNIPER: Cost: 700 Tooltip: Name: Sniper - Description: Elite sniper infantry unit.\n Strong vs Infantry\n Weak vs Vehicles + Description: Elite sniper infantry unit.\nCan detect cloaked units.\n Strong vs Infantry\n Weak vs Vehicles Buildable: Queue: Infantry BuildPaletteOrder: 80 @@ -483,6 +483,8 @@ SNIPER: CaptureTypes: CivilianBuilding Sabotage: no SabotageHPRemoval: 0 + DetectCloaked: + Range: 6 Zombie: Inherits: ^Infantry From 4c1b70e28d9117b446a5eb97aa1c072b14808f06 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Thu, 13 Mar 2014 22:46:39 +1300 Subject: [PATCH 13/18] Let only mine layers detect enemy mines --- mods/ra/rules/system-actors.yaml | 2 ++ mods/ra/rules/vehicles.yaml | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mods/ra/rules/system-actors.yaml b/mods/ra/rules/system-actors.yaml index 1fabf9381a..2f3bcf7b1b 100644 --- a/mods/ra/rules/system-actors.yaml +++ b/mods/ra/rules/system-actors.yaml @@ -15,6 +15,7 @@ MINP: CloakSound: UncloakSound: Palette: + CloakTypes: Mine Tooltip: Name: Mine ProximityCaptor: @@ -40,6 +41,7 @@ MINV: CloakSound: UncloakSound: Palette: + CloakTypes: Mine Tooltip: Name: Mine ProximityCaptor: diff --git a/mods/ra/rules/vehicles.yaml b/mods/ra/rules/vehicles.yaml index 669a6ef8d4..ba4a4a92d8 100644 --- a/mods/ra/rules/vehicles.yaml +++ b/mods/ra/rules/vehicles.yaml @@ -398,7 +398,7 @@ MNLY.AP: Cost: 800 Tooltip: Name: Minelayer - Description: Lays mines to destroy unwary enemy units.\n Unarmed + Description: Lays mines to destroy unwary enemy units.\nCan detect mines.\n Unarmed Health: HP: 100 Armor: @@ -416,6 +416,7 @@ MNLY.AP: Ammo: 3 DetectCloaked: Range: 5 + CloakTypes: Mine RenderDetectionCircle: MNLY.AT: @@ -430,7 +431,7 @@ MNLY.AT: Cost: 800 Tooltip: Name: Minelayer - Description: Lays mines to destroy unwary enemy units.\n Unarmed + Description: Lays mines to destroy unwary enemy units.\nCan detect mines.\n Unarmed Health: HP: 100 Armor: @@ -448,6 +449,7 @@ MNLY.AT: Ammo: 3 DetectCloaked: Range: 5 + CloakTypes: Mine RenderDetectionCircle: TRUK: @@ -758,4 +760,4 @@ STNK: CloakDelay: 250 UncloakOnUnload: True DetectCloaked: - Range: 6 \ No newline at end of file + Range: 6 From fc2c46a2c25aad0c5c05a869d18e37762f673fe8 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Thu, 13 Mar 2014 22:56:48 +1300 Subject: [PATCH 14/18] Let spy plane detect cloaked units --- mods/ra/rules/structures.yaml | 2 +- mods/ra/rules/system-actors.yaml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index e596cf44d5..578976fa14 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -1065,7 +1065,7 @@ AFLD: Icon: spyplane ChargeTime: 180 Description: Spy Plane - LongDesc: Reveals an area of the map. + LongDesc: Reveals an area of the map\nand cloaked enemy units. SelectTargetSound: slcttgt1.aud EndChargeSound: spypln1.aud ParatroopersPower: diff --git a/mods/ra/rules/system-actors.yaml b/mods/ra/rules/system-actors.yaml index 2f3bcf7b1b..572fcbd3d6 100644 --- a/mods/ra/rules/system-actors.yaml +++ b/mods/ra/rules/system-actors.yaml @@ -129,6 +129,8 @@ CAMERA: ProximityCaptor: Types: Camera BodyOrientation: + DetectCloaked: + Range: 10 FLARE: Immobile: From 34d1ccb82c2f14e323cd49e85db279fbdc648b24 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Thu, 13 Mar 2014 23:07:31 +1300 Subject: [PATCH 15/18] Let hboxes detect cloaked units --- mods/ra/rules/structures.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 578976fa14..384f3e7f31 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -603,6 +603,8 @@ HBOX: OnEnter: HBOX.sniper OnExit: HBOX SkipMakeAnims: true + DetectCloaked: + Range: 6 HBOX.E1: Inherits: HBOX @@ -614,7 +616,7 @@ HBOX.E1: Hotkey: l Tooltip: Name: Camo Pillbox (Guns) - Description: Hidden defensive structure.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft + Description: Hidden defensive structure.\nCan detect cloaked units.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft RenderBuilding: Image: HBOX RenderRangeCircle: From 8af03106860a697ae80462962ba2bdf09fa4dd18 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Fri, 14 Mar 2014 22:28:40 +1300 Subject: [PATCH 16/18] Let submarines detect other submarines --- mods/ra/rules/ships.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index 6bdd0eb97c..8a592cff83 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -10,7 +10,7 @@ SS: Cost: 950 Tooltip: Name: Submarine - Description: Submerged anti-ship unit armed with \ntorpedoes.\n Strong vs Ships\n Weak vs Everything\n Special Ability: Submerge + Description: Submerged anti-ship unit armed with\ntorpedoes.\nCan detect other submarines.\n Strong vs Ships\n Weak vs Everything\n Special Ability: Submerge Health: HP: 250 Armor: @@ -43,6 +43,10 @@ SS: RepairableNear: AutoTarget: InitialStance: HoldFire + DetectCloaked: + CloakTypes: Underwater + Range: 4 + RenderDetectionCircle: MSUB: Inherits: ^Ship @@ -56,7 +60,7 @@ MSUB: Cost: 2400 Tooltip: Name: Missile Submarine - Description: Submerged anti-ground unit armed with \nlong-range ballistic missiles.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: Submerge + Description: Submerged anti-ground unit armed with\nlong-range ballistic missiles.\nCan detect other submarines.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: Submerge Health: HP: 400 Armor: @@ -89,6 +93,10 @@ MSUB: RepairableNear: AutoTarget: InitialStance: HoldFire + DetectCloaked: + CloakTypes: Underwater + Range: 4 + RenderDetectionCircle: DD: Inherits: ^Ship From 3980b6b7f23a937075ec33f9a9b888ab98d3033e Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Fri, 14 Mar 2014 22:30:06 +1300 Subject: [PATCH 17/18] Change submarine default stance to ReturnFire --- mods/ra/rules/ships.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ra/rules/ships.yaml b/mods/ra/rules/ships.yaml index 8a592cff83..1e0d425b0b 100644 --- a/mods/ra/rules/ships.yaml +++ b/mods/ra/rules/ships.yaml @@ -42,7 +42,7 @@ SS: IronCurtainable: RepairableNear: AutoTarget: - InitialStance: HoldFire + InitialStance: ReturnFire DetectCloaked: CloakTypes: Underwater Range: 4 @@ -92,7 +92,7 @@ MSUB: IronCurtainable: RepairableNear: AutoTarget: - InitialStance: HoldFire + InitialStance: ReturnFire DetectCloaked: CloakTypes: Underwater Range: 4 From 104fb2d7c6da50745c90cd69e8345bcb9695c2f5 Mon Sep 17 00:00:00 2001 From: ScottNZ Date: Fri, 14 Mar 2014 22:41:46 +1300 Subject: [PATCH 18/18] Update CHANGELOG for cloak fixes and phase transport addition --- CHANGELOG | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 54ec1af64e..1105556466 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -60,6 +60,11 @@ NEW: Added maps: Blitzkrieg and Burlesca by s1w. Both Allied and Soviet factions now build general-purpose mines instead of AT and AP mines respectively. Added new attack-move cursor artwork. + Added Phase Transport, an Allied high-tech infantry transport which can cloak. + Attack Dogs, Snipers, Mobile Radar Jammers, Camo Pillboxes, Phase Transports, Radar Domes, and Spy Planes can now detect cloaked units. + Removed the submarine detection ability from Cruiser and Transport. + Added the submarine detection ability to Submarines and Missile Subs. + Increased the submarine detection range of Gunboat from 3 to 4. Tiberian Dawn: Chinook rotors now counter-rotate. Commando can now plant C4 on bridges.