From 45fbecbcd08087d243f5e6093c0a9d2b716a7b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 27 Jul 2012 23:28:00 +0200 Subject: [PATCH] sniper can go into pillbox and garrision church --- OpenRA.Mods.RA/TransformOnCapture.cs | 10 +++--- OpenRA.Mods.RA/TransformOnPassenger.cs | 2 ++ mods/ra/rules/civilian.yaml | 31 ++++++++++++++++++ mods/ra/rules/infantry.yaml | 6 +++- mods/ra/rules/structures.yaml | 44 +++++++++++++++++++++++--- 5 files changed, 83 insertions(+), 10 deletions(-) diff --git a/OpenRA.Mods.RA/TransformOnCapture.cs b/OpenRA.Mods.RA/TransformOnCapture.cs index 206a84b913..5bae4e32f0 100644 --- a/OpenRA.Mods.RA/TransformOnCapture.cs +++ b/OpenRA.Mods.RA/TransformOnCapture.cs @@ -29,10 +29,12 @@ namespace OpenRA.Mods.RA public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner) { - self.QueueActivity(new Transform(self, Info.IntoActor) { - ForceHealthPercentage = Info.ForceHealthPercentage, - Facing = self.Trait().Facing - }); + var facing = self.TraitOrDefault(); + var transform = new Transform(self, Info.IntoActor) { ForceHealthPercentage = Info.ForceHealthPercentage }; + if (facing != null) transform.Facing = facing.Facing; + transform.SkipMakeAnims = true; + self.CancelActivity(); + self.QueueActivity(transform); } } } diff --git a/OpenRA.Mods.RA/TransformOnPassenger.cs b/OpenRA.Mods.RA/TransformOnPassenger.cs index d8a9b30c57..6a899d0c27 100644 --- a/OpenRA.Mods.RA/TransformOnPassenger.cs +++ b/OpenRA.Mods.RA/TransformOnPassenger.cs @@ -21,6 +21,7 @@ namespace OpenRA.Mods.RA [ActorReference] public readonly string OnEnter = null; [ActorReference] public readonly string OnExit = null; public readonly bool SkipMakeAnims = false; + public readonly bool BecomeNeutral = false; public object Create(ActorInitializer init) { return new TransformOnPassenger(this); } } @@ -43,6 +44,7 @@ namespace OpenRA.Mods.RA self.CancelActivity(); self.QueueActivity(transform); + if (info.BecomeNeutral) self.ChangeOwner(self.World.WorldActor.Owner); }); } } diff --git a/mods/ra/rules/civilian.yaml b/mods/ra/rules/civilian.yaml index 145bd9df45..7bac1ddc1f 100644 --- a/mods/ra/rules/civilian.yaml +++ b/mods/ra/rules/civilian.yaml @@ -28,6 +28,37 @@ V01: Dimensions: 2,2 Tooltip: Name: Church + RevealsShroud: + Range: 10 + TransformOnCapture: + IntoActor: v01.sniper + Capturable: + Type: civilianbuilding + CaptureCompleteTime: 0 + +V01.SNIPER: + Inherits: V01 + RenderBuilding: + Image: V01 + RenderRangeCircle: + AutoTarget: + Turreted: + ROT: 255 + AttackTurreted: + PrimaryWeapon: Sniper + PrimaryLocalOffset: 0,-11,0,0,0 + Cargo: + InitialUnits: sniper + Types: Infantry + MaxWeight: 1 + PipCount: 1 + TransformOnPassenger@Sniper: + PassengerTypes: sniper + OnExit: v01 + SkipMakeAnims: true + BecomeNeutral: true + -Capturable: + V02: Inherits: ^CivBuilding Building: diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index a47095b583..1ba4cae5fd 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -411,6 +411,7 @@ SNIPER: RevealsShroud: Range: 6 -AutoTarget: + -AttackMove: AttackFrontal: PrimaryWeapon: Sniper TakeCover: @@ -421,4 +422,7 @@ SNIPER: InitialDelay: 250 CloakDelay: 120 CloakSound: appear1.aud - UncloakSound: appear1.aud \ No newline at end of file + UncloakSound: appear1.aud + Captures: + CaptureTypes: civilianbuilding + AllowAllies: true diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 10a1843115..198547d087 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -409,12 +409,17 @@ PBOX: TransformOnPassenger@e7: PassengerTypes: e7 OnEnter: pbox.e7 - OnExit: pbox + OnExit: pbox SkipMakeAnims: true TransformOnPassenger@SHOK: PassengerTypes: shok OnEnter: pbox.shok - OnExit: pbox + OnExit: pbox + SkipMakeAnims: true + TransformOnPassenger@Sniper: + PassengerTypes: sniper + OnEnter: pbox.sniper + OnExit: pbox SkipMakeAnims: true PBOX.E1: @@ -495,6 +500,18 @@ PBOX.SHOK: PrimaryWeapon: PortaTesla PrimaryLocalOffset: 0,-11,0,0,0 +PBOX.SNIPER: + Inherits: PBOX + Tooltip: + Name: Pillbox (Sniper) + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: Sniper + PrimaryLocalOffset: 0,-11,0,0,0 + HBOX: Inherits: ^Building Tooltip: @@ -548,12 +565,17 @@ HBOX: TransformOnPassenger@e7: PassengerTypes: e7 OnEnter: HBOX.e7 - OnExit: HBOX + OnExit: HBOX SkipMakeAnims: true TransformOnPassenger@SHOK: PassengerTypes: shok OnEnter: HBOX.shok - OnExit: HBOX + OnExit: HBOX + SkipMakeAnims: true + TransformOnPassenger@Sniper: + PassengerTypes: sniper + OnEnter: HBOX.sniper + OnExit: HBOX SkipMakeAnims: true HBOX.E1: @@ -632,7 +654,19 @@ HBOX.SHOK: AutoTarget: AttackTurreted: PrimaryWeapon: PortaTesla - PrimaryLocalOffset: 0,-11,0,0,0 + PrimaryLocalOffset: 0,-11,0,0,0 + +HBOX.SNIPER: + Inherits: HBOX + Tooltip: + Name: Camo Pillbox (Sniper) + RenderBuilding: + Image: HBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: Sniper + PrimaryLocalOffset: 0,-11,0,0,0 GUN: Inherits: ^Building