From 35b354d54e72e12c89be317e3cbff4158c910a02 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Thu, 1 Apr 2010 00:07:55 +1300 Subject: [PATCH] flip that upside-down --- OpenRA.Game/Traits/Attack/AttackBase.cs | 48 +++++++++++-------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/OpenRA.Game/Traits/Attack/AttackBase.cs b/OpenRA.Game/Traits/Attack/AttackBase.cs index d75bfbaab0..d1405a1666 100755 --- a/OpenRA.Game/Traits/Attack/AttackBase.cs +++ b/OpenRA.Game/Traits/Attack/AttackBase.cs @@ -166,39 +166,33 @@ namespace OpenRA.Traits burst = weapon.Burst; } - var firePos = self.CenterLocation.ToInt2() + Util.GetTurretPosition(self, unit, fireOffset, 0f).ToInt2(); - var thisTarget = target; // closure. - var destUnit = thisTarget.traits.GetOrDefault(); - var info = self.Info.Traits.Get(); + var destUnit = target.traits.GetOrDefault(); - ScheduleDelayedAction( FireDelay( self, info ), () => + var args = new ProjectileArgs { - var srcAltitude = unit != null ? unit.Altitude : 0; - var destAltitude = destUnit != null ? destUnit.Altitude : 0; + weapon = Rules.Weapons[weaponName], - var fireFacing = thisLocalOffset.ElementAtOrDefault(2) + - (self.traits.Contains() ? self.traits.Get().turretFacing : - unit != null ? unit.Facing : Util.GetFacing(thisTarget.CenterLocation - self.CenterLocation, 0)); + firedBy = self, + target = target, - var newWeaponInfo = Rules.Weapons[weaponName]; - var args = new ProjectileArgs - { - firedBy = self, - srcAltitude = srcAltitude, - destAltitude = destAltitude, - target = thisTarget, - facing = fireFacing, - weapon = newWeaponInfo, - src = firePos, - dest = thisTarget.CenterLocation.ToInt2() - }; - - var projectile = newWeaponInfo.Projectile.Create(args); + src = self.CenterLocation.ToInt2() + Util.GetTurretPosition(self, unit, fireOffset, 0f).ToInt2(), + srcAltitude = unit != null ? unit.Altitude : 0, + dest = target.CenterLocation.ToInt2(), + destAltitude = destUnit != null ? destUnit.Altitude : 0, + + facing = thisLocalOffset.ElementAtOrDefault(2) + + (self.traits.Contains() ? self.traits.Get().turretFacing : + unit != null ? unit.Facing : Util.GetFacing(target.CenterLocation - self.CenterLocation, 0)), + }; + + ScheduleDelayedAction( FireDelay( self, self.Info.Traits.Get() ), () => + { + var projectile = args.weapon.Projectile.Create(args); if (projectile != null) self.World.Add(projectile); - - if (!string.IsNullOrEmpty(newWeaponInfo.Report)) - Sound.Play(newWeaponInfo.Report + ".aud"); + + if (!string.IsNullOrEmpty(args.weapon.Report)) + Sound.Play(args.weapon.Report + ".aud"); }); foreach (var na in self.traits.WithInterface())