public static Dictionary <Vector2Int, Assets.src.TileMap.TileData> GetMoveableTiles(int x, int y, int distance) { var tileDict = new Dictionary <Vector2Int, Assets.src.TileMap.TileData>(); var startX = x - distance; var startY = y - distance; var endX = x + distance; var endY = y + distance; for (int drawX = startX; drawX <= endX; drawX++) { for (int drawY = startY; drawY <= endY; drawY++) { var currentTile = MapUtility.GetTile(drawX, drawY); if (currentTile == null) { break; } if (currentTile.IsWalkable) { tileDict.Add(new Vector2Int(drawX, drawY), currentTile); } } } return(tileDict); }
public static void OccupyTile(Character character, Vector2Int position) { var tile = MapUtility.GetTile(position.x, position.y); tile.OccupyTile(character); Debug.Log($"tile {position} is occupied by {character.name}"); }
public static bool CanMoveToTile(Vector2Int position) { var tile = MapUtility.GetTile(position.x, position.y); if (tile.IsWalkable && tile.OccupyingCharacter == null) { return(true); } return(false); }