diff --git a/OpenRA.Mods.RA/Activities/Attack.cs b/OpenRA.Mods.RA/Activities/Attack.cs index f1219747d3..0f16734a72 100755 --- a/OpenRA.Mods.RA/Activities/Attack.cs +++ b/OpenRA.Mods.RA/Activities/Attack.cs @@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA.Activities } attack.target = Target; - attack.DoAttack(self); + attack.DoAttack(self, Target); return this; } } diff --git a/OpenRA.Mods.RA/Activities/FlyAttack.cs b/OpenRA.Mods.RA/Activities/FlyAttack.cs index d48e208795..43d2d8aa9d 100644 --- a/OpenRA.Mods.RA/Activities/FlyAttack.cs +++ b/OpenRA.Mods.RA/Activities/FlyAttack.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Activities if( limitedAmmo != null && !limitedAmmo.HasAmmo() ) Cancel( self ); - self.Trait().DoAttack( self ); + self.Trait().DoAttack( self, Target ); if( IsCanceled && inner == null ) return NextActivity; diff --git a/OpenRA.Mods.RA/Activities/HeliAttack.cs b/OpenRA.Mods.RA/Activities/HeliAttack.cs index ef3c88a608..bbf7827bba 100644 --- a/OpenRA.Mods.RA/Activities/HeliAttack.cs +++ b/OpenRA.Mods.RA/Activities/HeliAttack.cs @@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Activities if (!float2.WithinEpsilon(float2.Zero, dist, range * Game.CellSize)) aircraft.center += (rawSpeed / dist.Length) * dist; - attack.DoAttack( self ); + attack.DoAttack( self, target ); return this; } diff --git a/OpenRA.Mods.RA/AttackBase.cs b/OpenRA.Mods.RA/AttackBase.cs index c86a8518a2..dcebe52ab5 100644 --- a/OpenRA.Mods.RA/AttackBase.cs +++ b/OpenRA.Mods.RA/AttackBase.cs @@ -111,7 +111,7 @@ namespace OpenRA.Mods.RA a(); } - public void DoAttack(Actor self) + public void DoAttack(Actor self, Target target) { if( !CanAttack( self ) ) return; @@ -150,7 +150,7 @@ namespace OpenRA.Mods.RA if (order.OrderString == "Attack" || order.OrderString == "Heal") { self.CancelActivity(); - QueueAttack(self, order); + QueueAttack(self, Target.FromOrder(order)); if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => @@ -181,14 +181,14 @@ namespace OpenRA.Mods.RA return (order.OrderString == "Attack" || order.OrderString == "Heal") ? "Attack" : null; } - protected virtual void QueueAttack(Actor self, Order order) + protected virtual void QueueAttack(Actor self, Target newTarget) { - var weapon = ChooseWeaponForTarget(Target.FromOrder(order)); + var weapon = ChooseWeaponForTarget(newTarget); if (weapon != null) self.QueueActivity( new Activities.Attack( - Target.FromOrder(order), + newTarget, Math.Max(0, (int)weapon.Info.Range))); } diff --git a/OpenRA.Mods.RA/AttackHeli.cs b/OpenRA.Mods.RA/AttackHeli.cs index 7536c19576..f6e9444c28 100644 --- a/OpenRA.Mods.RA/AttackHeli.cs +++ b/OpenRA.Mods.RA/AttackHeli.cs @@ -22,10 +22,10 @@ namespace OpenRA.Mods.RA { public AttackHeli(Actor self) : base(self, 20) { } - protected override void QueueAttack(Actor self, Order order) + protected override void QueueAttack(Actor self, Target newTarget) { - target = Target.FromOrder(order); - self.QueueActivity(new HeliAttack(target)); + target = newTarget; + self.QueueActivity(new HeliAttack(newTarget)); } } } diff --git a/OpenRA.Mods.RA/AttackOmni.cs b/OpenRA.Mods.RA/AttackOmni.cs index c98a3e29c0..60923d1dc2 100644 --- a/OpenRA.Mods.RA/AttackOmni.cs +++ b/OpenRA.Mods.RA/AttackOmni.cs @@ -33,12 +33,12 @@ namespace OpenRA.Mods.RA public override void Tick(Actor self) { base.Tick(self); - DoAttack(self); + DoAttack(self, target); } - protected override void QueueAttack(Actor self, Order order) + protected override void QueueAttack(Actor self, Target newTarget) { - target = Target.FromOrder(order); + target = newTarget; } } } diff --git a/OpenRA.Mods.RA/AttackPlane.cs b/OpenRA.Mods.RA/AttackPlane.cs index 25269e2cfe..59eda241d7 100644 --- a/OpenRA.Mods.RA/AttackPlane.cs +++ b/OpenRA.Mods.RA/AttackPlane.cs @@ -22,10 +22,10 @@ namespace OpenRA.Mods.RA { public AttackPlane(Actor self) : base(self, 20) { } - protected override void QueueAttack(Actor self, Order order) + protected override void QueueAttack(Actor self, Target newTarget) { - target = Target.FromOrder(order); - self.QueueActivity(new FlyAttack(target)); + target = newTarget; + self.QueueActivity(new FlyAttack(newTarget)); } protected override bool CanAttack(Actor self) diff --git a/OpenRA.Mods.RA/AttackTurreted.cs b/OpenRA.Mods.RA/AttackTurreted.cs index b54a632199..38129ec3a1 100644 --- a/OpenRA.Mods.RA/AttackTurreted.cs +++ b/OpenRA.Mods.RA/AttackTurreted.cs @@ -42,23 +42,23 @@ namespace OpenRA.Mods.RA public override void Tick(Actor self) { base.Tick(self); - DoAttack( self ); + DoAttack( self, target ); } - protected override void QueueAttack( Actor self, Order order ) + protected override void QueueAttack( Actor self, Target newTarget ) { if (self.TraitsImplementing().Any(d => d.Disabled)) return; const int RangeTolerance = 1; /* how far inside our maximum range we should try to sit */ - var weapon = ChooseWeaponForTarget(Target.FromOrder(order)); + var weapon = ChooseWeaponForTarget(newTarget); if (weapon == null) return; - target = Target.FromOrder(order); + target = newTarget; if (self.HasTrait() && !self.Info.Traits.Get().OnRails) - self.QueueActivity( new Follow( target, + self.QueueActivity( new Follow( newTarget, Math.Max( 0, (int)weapon.Info.Range - RangeTolerance ) ) ); } diff --git a/OpenRA.Mods.RA/Render/RenderUnitReload.cs b/OpenRA.Mods.RA/Render/RenderUnitReload.cs index b368af6351..993eee9cfc 100755 --- a/OpenRA.Mods.RA/Render/RenderUnitReload.cs +++ b/OpenRA.Mods.RA/Render/RenderUnitReload.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.RA.Render public override void Tick(Actor self) { var attack = self.TraitOrDefault(); - var isAttacking = attack != null && attack.target.IsValid; + var isAttacking = attack.IsAttacking; anims["turret_0"].Animation.ReplaceAnim(isAttacking ? "aim" : "turret"); base.Tick(self); }