diff --git a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs index 00c5ff8986..5a05037a9c 100755 --- a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs +++ b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs @@ -8,9 +8,11 @@ */ #endregion +using System.Linq; using OpenRA.Mods.RA.Move; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.FileFormats; namespace OpenRA.Mods.RA.Activities { @@ -28,13 +30,20 @@ namespace OpenRA.Mods.RA.Activities if( IsCanceled || target.Destroyed || !target.IsInWorld) return NextActivity; var mobile = self.Trait(); + + var cells = target.Trait().OccupiedCells().ToArray(); + if (cells.Length == 0) + cells = new OpenRA.FileFormats.Pair[] { + Pair.New(target.Location, SubCell.FullCell) }; + var ps1 = new PathSearch( self.World, mobile.Info ) { checkForBlocked = true, heuristic = location => 0, inReverse = true }; - foreach( var cell in target.Trait().OccupiedCells() ) + + foreach( var cell in cells ) { ps1.AddInitialCell( cell.First ); if( ( mobile.toCell - cell.First ).LengthSquared <= 2 )