Avoid unnecessary Mobile lookups in Follow.
This commit is contained in:
@@ -16,15 +16,17 @@ namespace OpenRA.Mods.RA.Activities
|
||||
public class Follow : Activity
|
||||
{
|
||||
Target target;
|
||||
Mobile mobile;
|
||||
WRange range;
|
||||
int nextPathTime;
|
||||
|
||||
const int delayBetweenPathingAttempts = 20;
|
||||
const int delaySpread = 5;
|
||||
|
||||
public Follow(Target target, WRange range)
|
||||
public Follow(Actor self, Target target, WRange range)
|
||||
{
|
||||
this.target = target;
|
||||
mobile = self.Trait<Mobile>();
|
||||
this.range = range;
|
||||
}
|
||||
|
||||
@@ -39,7 +41,6 @@ namespace OpenRA.Mods.RA.Activities
|
||||
nextPathTime = self.World.SharedRandom.Next(delayBetweenPathingAttempts - delaySpread,
|
||||
delayBetweenPathingAttempts + delaySpread);
|
||||
|
||||
var mobile = self.Trait<Mobile>();
|
||||
return Util.SequenceActivities(mobile.MoveWithinRange(target, range), this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
attack.Target = target;
|
||||
if (allowMove && self.HasTrait<Mobile>() && !self.Info.Traits.Get<MobileInfo>().OnRails)
|
||||
return Util.SequenceActivities(new Follow(target, range), this);
|
||||
return Util.SequenceActivities(new Follow(self, target, range), this);
|
||||
}
|
||||
|
||||
return NextActivity;
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
var range = WRange.FromCells(target.Actor.Info.Traits.Get<GuardableInfo>().Range);
|
||||
self.QueueActivity(false, new AttackMove.AttackMoveActivity(self,
|
||||
new Follow(target, range)));
|
||||
new Follow(self, target, range)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user