Merge pull request #13093 from rob-v/ServicePadMoveToRallyPoint

Fix Service Depot Rally point path finding
This commit is contained in:
Paul Chote
2017-05-07 08:48:47 +01:00
committed by GitHub
8 changed files with 19 additions and 37 deletions

View File

@@ -453,7 +453,7 @@ namespace OpenRA.Mods.Common.Traits
return new HeliFly(self, Target.FromCell(self.World, cell));
}
public Activity MoveTo(CPos cell, Actor ignoredActor)
public Activity MoveTo(CPos cell, Actor ignoreActor)
{
if (IsPlane)
return new FlyAndContinueWithCirclesWhenIdle(self, Target.FromCell(self.World, cell));

View File

@@ -914,7 +914,7 @@ namespace OpenRA.Mods.Common.Traits
public Activity ScriptedMove(CPos cell) { return new Move(self, cell); }
public Activity MoveTo(CPos cell, int nearEnough) { return new Move(self, cell, WDist.FromCells(nearEnough)); }
public Activity MoveTo(CPos cell, Actor ignoredActor) { return new Move(self, cell, ignoredActor); }
public Activity MoveTo(CPos cell, Actor ignoreActor) { return new Move(self, cell, WDist.Zero, ignoreActor); }
public Activity MoveWithinRange(Target target, WDist range) { return new MoveWithinRange(self, target, WDist.Zero, range); }
public Activity MoveWithinRange(Target target, WDist minRange, WDist maxRange) { return new MoveWithinRange(self, target, minRange, maxRange); }
public Activity MoveFollow(Actor self, Target target, WDist minRange, WDist maxRange) { return new Follow(self, target, minRange, maxRange); }

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Traits
/// Calculates a path for the actor from source to destination
/// </summary>
/// <returns>A path from start to target</returns>
List<CPos> FindUnitPath(CPos source, CPos target, Actor self);
List<CPos> FindUnitPath(CPos source, CPos target, Actor self, Actor ignoreActor);
List<CPos> FindUnitPathToRange(CPos source, SubCell srcSub, WPos target, WDist range, Actor self);
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Common.Traits
this.world = world;
}
public List<CPos> FindUnitPath(CPos source, CPos target, Actor self)
public List<CPos> FindUnitPath(CPos source, CPos target, Actor self, Actor ignoreActor)
{
var mi = self.Info.TraitInfo<MobileInfo>();
@@ -74,8 +74,8 @@ namespace OpenRA.Mods.Common.Traits
}
List<CPos> pb;
using (var fromSrc = PathSearch.FromPoint(world, mi, self, target, source, true))
using (var fromDest = PathSearch.FromPoint(world, mi, self, source, target, true).Reverse())
using (var fromSrc = PathSearch.FromPoint(world, mi, self, target, source, true).WithIgnoredActor(ignoreActor))
using (var fromDest = PathSearch.FromPoint(world, mi, self, source, target, true).WithIgnoredActor(ignoreActor).Reverse())
pb = FindBidiPath(fromSrc, fromDest);
CheckSanePath2(pb, source, target);