From f4dbf55510d53109145bfb700532df1ed73cd7ec Mon Sep 17 00:00:00 2001 From: Andrii Yukhymchak Date: Wed, 18 Oct 2017 23:08:04 +0300 Subject: [PATCH] Chrono into map edge fix --- .../Traits/SupportPowers/ChronoshiftPower.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs index b5da0eff0a..887f70e007 100644 --- a/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs +++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/ChronoshiftPower.cs @@ -95,6 +95,9 @@ namespace OpenRA.Mods.Cnc.Traits var sourceTiles = Self.World.Map.FindTilesInCircle(xy, range); var destTiles = Self.World.Map.FindTilesInCircle(sourceLocation, range); + if (!sourceTiles.Any() || !destTiles.Any()) + return false; + using (var se = sourceTiles.GetEnumerator()) using (var de = destTiles.GetEnumerator()) while (se.MoveNext() && de.MoveNext()) @@ -241,10 +244,11 @@ namespace OpenRA.Mods.Cnc.Traits var palette = wr.Palette(power.Info.IconPalette); // Destination tiles - foreach (var t in world.Map.FindTilesInCircle(xy, range)) + var delta = xy - sourceLocation; + foreach (var t in world.Map.FindTilesInCircle(sourceLocation, range)) { - var tile = manager.Self.Owner.Shroud.IsExplored(t) ? validTile : invalidTile; - yield return new SpriteRenderable(tile, wr.World.Map.CenterOfCell(t), WVec.Zero, -511, palette, 1f, true); + var tile = manager.Self.Owner.Shroud.IsExplored(t + delta) ? validTile : invalidTile; + yield return new SpriteRenderable(tile, wr.World.Map.CenterOfCell(t + delta), WVec.Zero, -511, palette, 1f, true); } // Unit previews