From 91698678a22189f5de1b509f6df2a73e88af0762 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 10 Jul 2013 19:59:03 +1200 Subject: [PATCH] Use WRange for Mobile.MoveWithinRange. --- OpenRA.Mods.RA/Activities/Attack.cs | 2 +- OpenRA.Mods.RA/Activities/Follow.cs | 2 +- OpenRA.Mods.RA/Missions/Allies01Script.cs | 4 ++-- OpenRA.Mods.RA/Move/Mobile.cs | 2 +- OpenRA.Mods.RA/Move/Move.cs | 7 ++++--- OpenRA.Mods.RA/RepairableNear.cs | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/Attack.cs b/OpenRA.Mods.RA/Activities/Attack.cs index 28d00a3b68..c583115ed8 100755 --- a/OpenRA.Mods.RA/Activities/Attack.cs +++ b/OpenRA.Mods.RA/Activities/Attack.cs @@ -70,7 +70,7 @@ namespace OpenRA.Mods.RA.Activities nextPathTime = self.World.SharedRandom.Next(delayBetweenPathingAttempts - delaySpread, delayBetweenPathingAttempts + delaySpread); - return (AllowMovement) ? Util.SequenceActivities(self.Trait().MoveWithinRange(Target, Range.Range / 1024), this) : NextActivity; + return (AllowMovement) ? Util.SequenceActivities(self.Trait().MoveWithinRange(Target, Range), this) : NextActivity; } var desiredFacing = Util.GetFacing(Target.CenterPosition - self.CenterPosition, 0); diff --git a/OpenRA.Mods.RA/Activities/Follow.cs b/OpenRA.Mods.RA/Activities/Follow.cs index 8e5bae7cd7..eb3b414159 100644 --- a/OpenRA.Mods.RA/Activities/Follow.cs +++ b/OpenRA.Mods.RA/Activities/Follow.cs @@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Activities delayBetweenPathingAttempts + delaySpread); var mobile = self.Trait(); - return Util.SequenceActivities( mobile.MoveWithinRange( Target, Range ), this ); + return Util.SequenceActivities( mobile.MoveWithinRange( Target, new WRange(1024*Range) ), this ); } } } diff --git a/OpenRA.Mods.RA/Missions/Allies01Script.cs b/OpenRA.Mods.RA/Missions/Allies01Script.cs index 87c3866f83..1ac6863e15 100644 --- a/OpenRA.Mods.RA/Missions/Allies01Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies01Script.cs @@ -191,14 +191,14 @@ namespace OpenRA.Mods.RA.Missions if (einstein != null) { if (einstein.IsInWorld) - innerActivity = new Move.Move(Target.FromActor(einstein), 3); + innerActivity = new Move.Move(Target.FromActor(einstein), WRange.FromCells(3)); else { var container = world.UnitContaining(einstein); if (container != null && !container.HasTrait() && container.HasTrait()) - innerActivity = new Move.Move(Target.FromActor(container), 3); + innerActivity = new Move.Move(Target.FromActor(container), WRange.FromCells(3)); else innerActivity = new Move.Move(extractionLZ.Location, 3); diff --git a/OpenRA.Mods.RA/Move/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs index f109367585..df97bc8c3d 100755 --- a/OpenRA.Mods.RA/Move/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -516,7 +516,7 @@ namespace OpenRA.Mods.RA.Move public Activity ScriptedMove(CPos cell) { return new Move(cell); } public Activity MoveTo(CPos cell, int nearEnough) { return new Move(cell, nearEnough); } public Activity MoveTo(CPos cell, Actor ignoredActor) { return new Move(cell, ignoredActor); } - public Activity MoveWithinRange(Target target, int range) { return new Move(target, range); } + public Activity MoveWithinRange(Target target, WRange range) { return new Move(target, range); } public Activity MoveTo(Func> pathFunc) { return new Move(pathFunc); } } } diff --git a/OpenRA.Mods.RA/Move/Move.cs b/OpenRA.Mods.RA/Move/Move.cs index 5e5cec526b..24850d36d9 100755 --- a/OpenRA.Mods.RA/Move/Move.cs +++ b/OpenRA.Mods.RA/Move/Move.cs @@ -59,19 +59,20 @@ namespace OpenRA.Mods.RA.Move } static readonly List NoPath = new List(); - public Move(Target target, int range) + public Move(Target target, WRange range) { this.getPath = (self, mobile) => { if (!target.IsValid) return NoPath; + // TODO: Adjust range to account for target center position return self.World.WorldActor.Trait().FindUnitPathToRange( - mobile.toCell, target.CenterPosition.ToCPos(), range, self); + mobile.toCell, target.CenterPosition.ToCPos(), range.Range / 1024, self); }; this.destination = null; - this.nearEnough = range; + this.nearEnough = range.Range / 1024; } public Move(Func> getPath) diff --git a/OpenRA.Mods.RA/RepairableNear.cs b/OpenRA.Mods.RA/RepairableNear.cs index 32862bc212..132d001278 100644 --- a/OpenRA.Mods.RA/RepairableNear.cs +++ b/OpenRA.Mods.RA/RepairableNear.cs @@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA var target = Target.FromOrder(order); self.CancelActivity(); - self.QueueActivity(mobile.MoveWithinRange(target, info.CloseEnough)); + self.QueueActivity(mobile.MoveWithinRange(target, new WRange(1024*info.CloseEnough))); self.QueueActivity(new Repair(order.TargetActor)); self.SetTargetLine(target, Color.Green, false);