diff --git a/OpenRa.Game/Traits/Activities/Follow.cs b/OpenRa.Game/Traits/Activities/Follow.cs index 37a5464b6e..fc4877ba8c 100644 --- a/OpenRa.Game/Traits/Activities/Follow.cs +++ b/OpenRa.Game/Traits/Activities/Follow.cs @@ -19,10 +19,9 @@ namespace OpenRa.Game.Traits.Activities if (Target == null || Target.IsDead) return NextActivity; - var canMove = !self.traits.Contains(); var inRange = ( Target.Location - self.Location ).LengthSquared < Range * Range; - if( canMove && !inRange ) + if( !inRange ) return new Move( Target, Range ) { NextActivity = this }; return null; diff --git a/OpenRa.Game/Traits/AttackTurreted.cs b/OpenRa.Game/Traits/AttackTurreted.cs index 67e9f022a1..3d9d40bd9d 100755 --- a/OpenRa.Game/Traits/AttackTurreted.cs +++ b/OpenRa.Game/Traits/AttackTurreted.cs @@ -37,8 +37,10 @@ namespace OpenRa.Game.Traits /* todo: choose the appropriate weapon, when only one works against this target */ var weapon = order.Subject.Info.Primary ?? order.Subject.Info.Secondary; - self.QueueActivity( new Traits.Activities.Follow( order.TargetActor, - Math.Max( 0, (int)Rules.WeaponInfo[ weapon ].Range - RangeTolerance ) ) ); + if (self.traits.Contains()) + self.QueueActivity( new Traits.Activities.Follow( order.TargetActor, + Math.Max( 0, (int)Rules.WeaponInfo[ weapon ].Range - RangeTolerance ) ) ); + self.traits.Get().target = order.TargetActor; }