From fee6d450e4e7bb2b2215dd7dabca468dac8c031e Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 7 Sep 2010 19:05:14 +1200 Subject: [PATCH] add ability to emit a muzzleflash from multiple weapons; make ftnk somewhat nicer --- OpenRA.Mods.RA/WithMuzzleFlash.cs | 26 ++++++++++++++++++-------- mods/cnc/sequences-vehicles.xml | 8 +++++--- mods/cnc/vehicles.yaml | 6 ++++-- mods/cnc/weapons.yaml | 6 +++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/OpenRA.Mods.RA/WithMuzzleFlash.cs b/OpenRA.Mods.RA/WithMuzzleFlash.cs index 7b1671394b..017229bb33 100644 --- a/OpenRA.Mods.RA/WithMuzzleFlash.cs +++ b/OpenRA.Mods.RA/WithMuzzleFlash.cs @@ -8,6 +8,7 @@ */ #endregion +using System.Collections.Generic; using OpenRA.Graphics; using OpenRA.Traits; @@ -20,27 +21,36 @@ namespace OpenRA.Mods.RA class WithMuzzleFlash : INotifyAttack { - Animation muzzleFlash; + List muzzleFlashes = new List(); bool isShowing; public WithMuzzleFlash(Actor self) { var attackInfo = self.Info.Traits.Get(); + var attack = self.Trait(); var render = self.Trait(); + var facing = self.Trait(); - muzzleFlash = new Animation(render.GetImage(self), () => self.Trait().Facing); - muzzleFlash.Play("muzzle"); + foreach (var t in attack.Turrets) + { + var turret = t; + var muzzleFlash = new Animation(render.GetImage(self), () => self.Trait().Facing); + muzzleFlash.Play("muzzle"); - render.anims.Add("muzzle", new RenderSimple.AnimationWithOffset( - muzzleFlash, - () => attackInfo.PrimaryOffset.AbsOffset(), - () => !isShowing)); + render.anims.Add("muzzle{0}".F(muzzleFlashes.Count), new RenderSimple.AnimationWithOffset( + muzzleFlash, + () => Combat.GetTurretPosition(self, facing, turret), + () => !isShowing)); + + muzzleFlashes.Add(muzzleFlash); + } } public void Attacking(Actor self) { isShowing = true; - muzzleFlash.PlayThen("muzzle", () => isShowing = false); + foreach( var mf in muzzleFlashes ) + mf.PlayThen("muzzle", () => isShowing = false); } } } diff --git a/mods/cnc/sequences-vehicles.xml b/mods/cnc/sequences-vehicles.xml index a124b65183..253b8c5e90 100644 --- a/mods/cnc/sequences-vehicles.xml +++ b/mods/cnc/sequences-vehicles.xml @@ -67,7 +67,8 @@ - + + @@ -78,8 +79,9 @@ - - + + + diff --git a/mods/cnc/vehicles.yaml b/mods/cnc/vehicles.yaml index 3a7cd13b11..b2b9378a10 100644 --- a/mods/cnc/vehicles.yaml +++ b/mods/cnc/vehicles.yaml @@ -136,10 +136,12 @@ FTNK: Range: 4 AttackBase: PrimaryWeapon: BigFlamer - PrimaryOffset: 0,0,0,-2 - MuzzleFlash: yes + PrimaryOffset: 2,-8,0,-2 + SecondaryWeapon: BigFlamer + SecondaryOffset: -2,-8,0,-2 RenderUnit: AutoTarget: + WithMuzzleFlash: BGGY: Inherits: ^Vehicle diff --git a/mods/cnc/weapons.yaml b/mods/cnc/weapons.yaml index 5f342c9716..11ff93b747 100644 --- a/mods/cnc/weapons.yaml +++ b/mods/cnc/weapons.yaml @@ -170,10 +170,10 @@ Flamethrower: BigFlamer: ROF: 50 - Range: 2 + Range: 3.5 Report: FLAMER2 Projectile: Bullet - Speed: 100 + Speed: 20 Warhead: Spread: 8 Verses: 90%,100%,60%,25%,50% @@ -181,7 +181,7 @@ BigFlamer: Explosion: 3 ImpactSound: flamer2 SmudgeType: Scorch - Damage: 50 + Damage: 40 Chemspray: ROF: 70