Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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}");
    }
Ejemplo n.º 3
0
    public static bool CanMoveToTile(Vector2Int position)
    {
        var tile = MapUtility.GetTile(position.x, position.y);

        if (tile.IsWalkable && tile.OccupyingCharacter == null)
        {
            return(true);
        }

        return(false);
    }