Exemple #1
0
    void AddDoor()
    {
        doors = InitializeArray(doors);

        for (int i = 2; i < columns - 2; i++)
        {
            for (int j = 2; j < rows - 2; j++)
            {
                if (tiles[i][j] == TileType.Floor)
                {
                    if (tiles[i + 1][j] == TileType.Wall && tiles[i + 2][j] == TileType.Floor && doors[i + 2][j] == 0)
                    {
                        if (Lib.PathFiding(i, j, i + 2, j, tiles) == 0 || Lib.PathFiding(i, j, i + 2, j, tiles) >= 20)
                        {
                            PunchDoor(i + 1, j);
                        }
                    }
                    if (tiles[i][j + 1] == TileType.Wall && tiles[i][j + 2] == TileType.Floor && doors[i][j + 2] == 0)
                    {
                        if (Lib.PathFiding(i, j, i, j + 2, tiles) == 0 || Lib.PathFiding(i, j, i, j + 2, tiles) >= 20)
                        {
                            PunchDoor(i, j + 1);
                        }
                    }
                    if (tiles[i - 1][j] == TileType.Wall && tiles[i - 2][j] == TileType.Floor && doors[i - 2][j] == 0)
                    {
                        if (Lib.PathFiding(i, j, i - 2, j, tiles) == 0 || Lib.PathFiding(i, j, i - 2, j, tiles) >= 20)
                        {
                            PunchDoor(i - 1, j);
                        }
                    }
                    if (tiles[i][j - 1] == TileType.Wall && tiles[i][j - 2] == TileType.Floor && doors[i][j - 2] == 0)
                    {
                        if (Lib.PathFiding(i, j, i, j - 2, tiles) == 0 || Lib.PathFiding(i, j, i, j - 2, tiles) >= 20)
                        {
                            PunchDoor(i, j - 1);
                        }
                    }
                }
            }
        }
    }