示例#1
0
    private List <GridTile> GetAllowedSpawnTiles()
    {
        List <GridTile> candidateTiles = _currentGridInfo.GetEmptyTiles();
        List <GridTile> anomalyTiles   = _currentGridInfo.GetAnomalyTiles();
        List <GridTile> neighbours1    = new List <GridTile>();
        List <GridTile> neighbours2    = new List <GridTile>();
        List <GridTile> allNeighbours  = new List <GridTile>();

        foreach (var tile in anomalyTiles)
        {
            foreach (var emptyNeighbour in tile.EmptyNeighbours)
            {
                neighbours1.Add(emptyNeighbour);
                allNeighbours.Add(emptyNeighbour);
            }
        }

        foreach (var tile in neighbours1)
        {
            foreach (var emptyNeighbour in tile.EmptyNeighbours)
            {
                neighbours2.Add(emptyNeighbour);
                allNeighbours.Add(emptyNeighbour);
            }
        }

        foreach (var tile in allNeighbours)
        {
            if (candidateTiles.Contains(tile))
            {
                candidateTiles.Remove(tile);
            }
        }

        if (DeployManager.instance != null)
        {
            foreach (var tile in DeployManager.instance.GetAllDeployTouchingTiles())
            {
                if (candidateTiles.Contains(tile))
                {
                    candidateTiles.Remove(tile);
                }
            }
        }
        else
        {
            Debug.LogError("WARNING : Could not find DeployManager");
        }

        return(candidateTiles);
    }