コード例 #1
0
    public List <Tile.TilePos> getNeighborsNoBarrier(Tile.TilePos pos)
    {
        List <Tile.TilePos> list = new List <Tile.TilePos>();
        bool offset = pos.y % 2 == 1;

        foreach (Tile.TilePos dir in offset ? offsetDirections : directions)
        {
            list.Add(pos + dir);
        }
        return(list);
    }
コード例 #2
0
    private void DLS_NoBarrier(Tile.TilePos pos, HashSet <Tile> set, int depth, Unit agent)
    {
        if (depth < 0)
        {
            return;
        }
        if (inBounds(pos.x, pos.y) && tiles[pos.x][pos.y] != null)
        {
            set.Add(tiles[pos.x][pos.y]);
        }

        foreach (Tile.TilePos p in getNeighborsNoBarrier(pos))
        {
            DLS_NoBarrier(p, set, depth - 1, agent);
        }
    }
コード例 #3
0
 public Tile getTile(Tile.TilePos pos)
 {
     return(getTile(pos.x, pos.y));
 }