diff --git a/OpenRA.Mods.RA/Attack/AttackPopupTurreted.cs b/OpenRA.Mods.RA/Attack/AttackPopupTurreted.cs index e49eabec7c..e99e72a630 100644 --- a/OpenRA.Mods.RA/Attack/AttackPopupTurreted.cs +++ b/OpenRA.Mods.RA/Attack/AttackPopupTurreted.cs @@ -70,9 +70,7 @@ namespace OpenRA.Mods.RA return false; } - Turret.desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, Turret.turretFacing ); - if( Turret.desiredFacing != Turret.turretFacing ) - return false; + if (!Turret.FaceTarget(self,target)) return false; return true; } diff --git a/OpenRA.Mods.RA/Attack/AttackTurreted.cs b/OpenRA.Mods.RA/Attack/AttackTurreted.cs index f8da09d29a..b3f6ec8a49 100644 --- a/OpenRA.Mods.RA/Attack/AttackTurreted.cs +++ b/OpenRA.Mods.RA/Attack/AttackTurreted.cs @@ -39,9 +39,7 @@ namespace OpenRA.Mods.RA return false; if (!target.IsValid) return false; - turret.desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turret.turretFacing ); - if( turret.desiredFacing != turret.turretFacing ) - return false; + if (!turret.FaceTarget(self, target)) return false; return base.CanAttack( self, target ); } diff --git a/OpenRA.Mods.RA/Turreted.cs b/OpenRA.Mods.RA/Turreted.cs index 6f7921abb7..b561764157 100755 --- a/OpenRA.Mods.RA/Turreted.cs +++ b/OpenRA.Mods.RA/Turreted.cs @@ -50,5 +50,11 @@ namespace OpenRA.Mods.RA var df = desiredFacing ?? ( facing != null ? facing.Facing : turretFacing ); turretFacing = Util.TickFacing(turretFacing, df, info.ROT); } + + public bool FaceTarget( Actor self, Target target ) + { + desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turretFacing ); + return turretFacing == desiredFacing; + } } }