diff --git a/OpenRA.Mods.RA/Activities/Attack.cs b/OpenRA.Mods.RA/Activities/Attack.cs index 920341b0a1..3a10598a49 100755 --- a/OpenRA.Mods.RA/Activities/Attack.cs +++ b/OpenRA.Mods.RA/Activities/Attack.cs @@ -42,22 +42,16 @@ namespace OpenRA.Mods.RA.Activities if (!Target.IsValid) return NextActivity; - var mobile = self.Trait(); - var targetCell = Util.CellContaining(Target.CenterLocation); - if (!Combat.IsInRange( self.CenterLocation, Range, Target)) - return Util.SequenceActivities( mobile.MoveTo( Target, Range ), this ); + return Util.SequenceActivities( self.Trait().MoveTo( Target, Range ), this ); - var desiredFacing = Util.GetFacing((targetCell - self.Location).ToFloat2(), 0); + var desiredFacing = Util.GetFacing(Target.CenterLocation - self.CenterLocation, 0); var renderUnit = self.TraitOrDefault(); var numDirs = (renderUnit != null) ? renderUnit.anim.CurrentSequence.Facings : 8; - if (Util.QuantizeFacing(facing.Facing, numDirs) - != Util.QuantizeFacing(desiredFacing, numDirs)) - { + if (facing.Facing != desiredFacing) return Util.SequenceActivities( new Turn( desiredFacing ), this ); - } attack.target = Target; attack.DoAttack(self, Target);