From b4068f0ac7ad7b99ee8f686025e244e61036d7fc Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 15 Aug 2010 21:11:38 +1200 Subject: [PATCH] msam polish -- contains some dirty hacks --- OpenRA.Mods.RA/AttackBase.cs | 10 +++++++++- OpenRA.Mods.RA/Render/RenderUnitReload.cs | 21 +++++++++++++++++++++ mods/cnc/sequences-vehicles.xml | 4 ++-- mods/cnc/vehicles.yaml | 5 +++-- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/OpenRA.Mods.RA/AttackBase.cs b/OpenRA.Mods.RA/AttackBase.cs index 09ca6e1a78..a436ead659 100644 --- a/OpenRA.Mods.RA/AttackBase.cs +++ b/OpenRA.Mods.RA/AttackBase.cs @@ -33,6 +33,8 @@ namespace OpenRA.Mods.RA public readonly bool MuzzleFlash = false; public readonly int FireDelay = 0; + public readonly bool AlignIdleTurrets = false; + public virtual object Create(ActorInitializer init) { return new AttackBase(init.self); } } @@ -218,7 +220,7 @@ namespace OpenRA.Mods.RA { if (order.TargetActor != null) w.Add(new FlashTarget(order.TargetActor)); - + var line = self.TraitOrDefault(); if (line != null) if (order.TargetActor != null) line.SetTarget(self, Target.FromOrder(order), Color.Red); @@ -226,7 +228,13 @@ namespace OpenRA.Mods.RA }); } else + { target = Target.None; + + /* hack */ + if (self.HasTrait() && self.Info.Traits.Get().AlignIdleTurrets) + self.Trait().desiredFacing = null; + } } public string CursorForOrder(Actor self, Order order) diff --git a/OpenRA.Mods.RA/Render/RenderUnitReload.cs b/OpenRA.Mods.RA/Render/RenderUnitReload.cs index cbc764af64..e2ec355c7d 100755 --- a/OpenRA.Mods.RA/Render/RenderUnitReload.cs +++ b/OpenRA.Mods.RA/Render/RenderUnitReload.cs @@ -34,4 +34,25 @@ namespace OpenRA.Mods.RA.Render base.Tick(self); } } + + /* todo: native elevation support on turrets, and this dies? */ + + class RenderUnitTurretedAimInfo : RenderUnitTurretedInfo + { + public override object Create(ActorInitializer init) { return new RenderUnitTurretedAim(init.self); } + } + + class RenderUnitTurretedAim : RenderUnitTurreted + { + public RenderUnitTurretedAim(Actor self) + : base(self) { } + + public override void Tick(Actor self) + { + var attack = self.TraitOrDefault(); + var isAttacking = attack != null && attack.target.IsValid; + anims["turret_0"].Animation.ReplaceAnim(isAttacking ? "aim" : "turret"); + base.Tick(self); + } + } } diff --git a/mods/cnc/sequences-vehicles.xml b/mods/cnc/sequences-vehicles.xml index 8186923b05..95620196b5 100644 --- a/mods/cnc/sequences-vehicles.xml +++ b/mods/cnc/sequences-vehicles.xml @@ -77,8 +77,8 @@ - - + + diff --git a/mods/cnc/vehicles.yaml b/mods/cnc/vehicles.yaml index 9d9c7aa645..44c60f676c 100644 --- a/mods/cnc/vehicles.yaml +++ b/mods/cnc/vehicles.yaml @@ -330,11 +330,12 @@ MSAM: AttackTurreted: PrimaryWeapon: 227mm SecondaryWeapon: 227mm - PrimaryOffset: 0,5,0,-1 + PrimaryOffset: 0,5,0,-2 PrimaryLocalOffset: -4,0,0 SecondaryLocalOffset: 4,0,0 Recoil: 0 - RenderUnitTurreted: + AlignIdleTurrets: true + RenderUnitTurretedAim: AutoTarget: LeavesHusk: HuskActor: MSAM.Husk