private void ConnectTraversableTiles(IEnumerable <Vector2> tiles, AStar aStar) { foreach (var tile in tiles) { var tileId = GetIdForTile(tile); for (var x = 0; x < 3; x++) { for (var y = 0; y < 3; y++) { var targetTile = tile + new Vector2(x - 1, y - 1); var targetTileId = GetIdForTile(targetTile); if (tile == targetTile || !aStar.HasPoint(targetTileId) || !IsDiagonalAllowed(x, y, tile, aStar == playerAStar) || GetCell((int)targetTile.x, (int)targetTile.y) == InvalidCell) { continue; } aStar.ConnectPoints(tileId, targetTileId); } } } }