Пример #1
0
    public r_5x5_002(bool rotate)
    {
        this.rotate = rotate;
        treasures   = new List <Treasure> ();
        char[,] defGrid;
        if (!rotate)
        {
            defGrid = new char[5, 5] {
                { ' ', 'w', ' ', 'w', ' ' },
                { ' ', 'w', 'T', 'w', ' ' },
                { ' ', 'w', 'w', 'w', ' ' },
                { ' ', 'w', 'T', 'w', ' ' },
                { ' ', ' ', ' ', ' ', ' ' }
            };
            treasures.Add(new Treasure(new Coordinates(1, 2)));
            treasures.Add(new Treasure(new Coordinates(3, 2)));
            grid = new DungeonGrid(5, 5, defGrid);
        }
        else
        {
            defGrid = new char[5, 5] {
                { ' ', ' ', ' ', ' ', ' ' },
                { ' ', 'w', 'w', 'w', 'w' },
                { ' ', 'T', 'w', 'T', ' ' },
                { ' ', 'w', 'w', 'w', 'w' },
                { ' ', ' ', ' ', ' ', ' ' }
            };
            treasures.Add(new Treasure(new Coordinates(2, 1)));
            treasures.Add(new Treasure(new Coordinates(2, 3)));
            grid = new DungeonGrid(5, 5, defGrid);
        }

        modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
    }
Пример #2
0
    private DungeonGrid borderGrid(DungeonGrid grid)
    {
        int x = grid.sizeX + 2;
        int y = grid.sizeY + 2;

        char[,] fullGrid = new char[x, y];

        for (int i = 0; i < x; i++)
        {
            fullGrid [i, 0]     = Constants.WALL_MARKER;
            fullGrid [i, y - 1] = Constants.WALL_MARKER;
        }
        for (int i = 0; i < y; i++)
        {
            fullGrid [0, i]     = Constants.WALL_MARKER;
            fullGrid [x - 1, i] = Constants.WALL_MARKER;
        }

        for (int i = 0; i < grid.sizeX; i++)
        {
            for (int j = 0; j < grid.sizeY; j++)
            {
                fullGrid[i + 1, j + 1] = grid.grid[i, j];
            }
        }

        return(new DungeonGrid(x, y, fullGrid));
    }
Пример #3
0
    //////////////////////////////////////////////////////////////////////////////////
    /*										|										*/
    /*                                   PRIVATES									*/
    /*										|										*/
    //////////////////////////////////////////////////////////////////////////////////

    protected void shufflePaths(DungeonGrid grid, PathableArea area, Random rand)
    {
        double rateo = ((double)grid.countArea(area) / (double)grid.countPerimeter(area));

        rateo = 5000 * (rateo);
        if (rateo > 9000)
        {
            rateo = 9000;
        }
        if (rateo < 1000)
        {
            rateo = 1000;
        }

        for (int x = area.position.x; x < area.sizeX + area.position.x; x++)
        {
            for (int y = area.position.y; y < area.sizeY + area.position.y; y++)
            {
                Coordinates position = new Coordinates(x, y);
                if (grid.hasDoorsTouching(position) || grid.hasForcedPathTouching(position))
                {
                    grid.grid[position.x, position.y] = Constants.PATH_MARKER;
                }
                else
                {
                    int rnd = (rand.Next() % 10000) + 1;
                    grid.grid[position.x, position.y] = rnd > rateo ? Constants.PATH_MARKER : Constants.PATHABLE_MARKER;
                }
            }
        }
    }
Пример #4
0
    public r_3x5_003(bool rotate)
    {
        this.rotate = rotate;
        treasures   = new List <Treasure> ();
        char[,] defGrid;
        if (!rotate)
        {
            defGrid = new char[3, 5] {
                { ' ', ' ', ' ', ' ', ' ' },
                { ' ', 'w', 'w', 'w', ' ' },
                { ' ', ' ', ' ', ' ', ' ' }
            };
            grid = new DungeonGrid(3, 5, defGrid);
        }
        else
        {
            defGrid = new char[5, 3] {
                { ' ', ' ', ' ' },
                { ' ', 'w', ' ' },
                { ' ', 'w', ' ' },
                { ' ', 'w', ' ' },
                { ' ', ' ', ' ' }
            };
            grid = new DungeonGrid(5, 3, defGrid);
        }

        modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
    }
Пример #5
0
 public r_7x7_002(bool rotate)
 {
     this.rotate = rotate;
     treasures   = new List <Treasure> ();
     char[,] defGrid;
     if (!rotate)
     {
         defGrid = new char[7, 7] {
             { 'w', ' ', ' ', ' ', 'w', 'w', 'w' },
             { 'w', ' ', ' ', ' ', 'w', 'w', 'w' },
             { ' ', ' ', ' ', ' ', 'w', 'w', 'w' },
             { ' ', ' ', ' ', ' ', 'D', ' ', ' ' },
             { ' ', ' ', ' ', ' ', 'w', 'w', 'w' },
             { 'w', ' ', ' ', ' ', 'w', ' ', 'T' },
             { 'w', ' ', ' ', ' ', 'S', ' ', ' ' }
         };
         treasures.Add(new Treasure(new Coordinates(5, 6)));
         grid = new DungeonGrid(7, 7, defGrid);
     }
     else
     {
         defGrid = new char[7, 7] {
             { 'w', 'w', ' ', ' ', ' ', 'w', 'w' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { 'S', 'w', 'w', 'D', 'w', 'w', 'w' },
             { ' ', ' ', 'w', ' ', 'w', 'w', 'w' },
             { ' ', 'T', 'w', ' ', 'w', 'w', 'w' }
         };
         treasures.Add(new Treasure(new Coordinates(6, 1)));
         grid = new DungeonGrid(7, 7, defGrid);
     }
     modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
 }
Пример #6
0
    //LATER_PATCH: public List<Traps> trap;

    public Dungeon(DungeonGrid grid, List <DungeonRoom> rooms, List <Treasure> treasures, int seed)
    {
        this.seed      = seed;
        this.rooms     = rooms;
        this.treasures = setTreasures(treasures);
        this.grid      = borderGrid(grid);
    }
Пример #7
0
    public l_01()
    {
        char[,] defGrid = new char[25, 25] {
            //y->                 4                        9                       14                       19                       24       x
            { '.', '.', '.', '.', '.', '.', '.', 'w', 'p', 'p', 'p', 'w', 'w', 'E', 'w', 'w', 'p', 'p', 'p', 'w', 'w', '.', '.', '.', '.' },          //  |
            { 'w', 'w', 'w', 'S', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', '.', 'w', 'w', 'S', 'w' },          //  v
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'D', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', ' ', ' ', ' ' },           // 4
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', 'w', 'w', 'D', 'w' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'D', '.', '.', '.' },
            { 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'D', 'w', '.', '.', '.' },           // 9
            { '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'p', 'w', '.', '.', 'D', '.', '.', '.', 'w', '.', '.', '.' },
            { '.', '.', '.', '.', '.', '.', 'S', '.', '.', '.', '.', '.', '.', 'p', 'w', '.', '.', 'w', '.', '.', '.', 'w', 'w', 'D', 'w' },
            { 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', '.', 'w', ' ', ' ', ' ' },
            { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', ' ', ' ', ' ' },
            { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ' },           // 14
            { 'w', ' ', ' ', ' ', ' ', ' ', 'S', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', '.', 'w', 'w', 'D', 'w' },
            { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', '.', '.', '.' },
            { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', '.', '.', '.' },
            { 'w', 'w', 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'p', 'w', '.', '.', '.' },
            { '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' },           // 19
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'D', 'p', 'p', 'w', 'w', 'p', 'p', 'p', 'p', 'I', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }            // 24
        };
        grid = new DungeonGrid(25, 25, defGrid);

        rooms = new List <PseudoRoom> {
            new PseudoRoom(new Coordinates(2, 0), 7, 7),
            new PseudoRoom(new Coordinates(13, 1), 5, 5),
            new PseudoRoom(new Coordinates(2, 8), 7, 11),
            new PseudoRoom(new Coordinates(13, 14), 5, 3),
            new PseudoRoom(new Coordinates(20, 5), 3, 9),
            new PseudoRoom(new Coordinates(2, 22), 3, 3),
            new PseudoRoom(new Coordinates(12, 22), 3, 3),
            new PseudoRoom(new Coordinates(20, 20), 5, 5),
        };

        pathableAreas = new List <PathableArea> {
            new PathableArea(new Coordinates(0, 0), 1, 7),
            new PathableArea(new Coordinates(10, 0), 2, 6),
            new PathableArea(new Coordinates(19, 0), 6, 4),
            new PathableArea(new Coordinates(10, 7), 9, 6),
            new PathableArea(new Coordinates(10, 15), 2, 2),
            new PathableArea(new Coordinates(19, 15), 6, 4),
            new PathableArea(new Coordinates(10, 18), 8, 3),
            new PathableArea(new Coordinates(1, 20), 8, 1),
            new PathableArea(new Coordinates(0, 21), 1, 4),
            new PathableArea(new Coordinates(6, 22), 5, 3),
            new PathableArea(new Coordinates(16, 22), 3, 3)
        };
    }
Пример #8
0
    public l_04()
    {
        char[,] defGrid = new char[25, 20] {
            //y->                 4                        9                       14                       19       x
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' },          //  |
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ' },          //  v
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', 'w', 'D', 'w' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' },          // 4
            { 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', 'w', 'D', 'w' },
            { 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' },
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', 'p', '.', '.', '.', '.', 'D', ' ', ' ', ' ' },          // 9
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'D', 'w', ' ', ' ', ' ' },
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', 'p', 'w', 'w', 'D', 'w' },
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'S', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.' },
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' },
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.' },          // 14
            { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.' },
            { 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w' },
            { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' },
            { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' },
            { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' },          // 19
            { '.', '.', '.', '.', '.', '.', '.', '.', 'S', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', 'p' },
            { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' },
            { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' },
            { 'w', 'w', 'w', 'w', 'p', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' },
            { 'w', 'w', 'w', 'w', 'I', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'E' },          // 24
        };

        grid = new DungeonGrid(25, 20, defGrid);

        rooms = new List <PseudoRoom> {
            new PseudoRoom(new Coordinates(0, 0), 5, 11),
            new PseudoRoom(new Coordinates(9, 1), 7, 7),
            new PseudoRoom(new Coordinates(0, 17), 3, 3),
            new PseudoRoom(new Coordinates(4, 17), 3, 3),
            new PseudoRoom(new Coordinates(8, 17), 3, 3),
            new PseudoRoom(new Coordinates(11, 9), 3, 5),
            new PseudoRoom(new Coordinates(17, 9), 7, 9)
        };

        pathableAreas = new List <PathableArea> {
            new PathableArea(new Coordinates(6, 0), 2, 3),
            new PathableArea(new Coordinates(6, 4), 2, 4),
            new PathableArea(new Coordinates(17, 0), 6, 8),
            new PathableArea(new Coordinates(6, 9), 4, 2),
            new PathableArea(new Coordinates(0, 12), 10, 4),
            new PathableArea(new Coordinates(15, 9), 1, 5),
            new PathableArea(new Coordinates(12, 15), 4, 5)
        };
    }
Пример #9
0
    public l_03()
    {
        char[,] defGrid = new char[20, 30] {
            //y->                 4                        9                       14                       19                       24                       29       x
            { ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'w', 'p', 'p', 'p', 'p', 'E', 'w', 'w' },          //  |
            { ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' },          //  v
            { ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { 'w', 'D', 'w', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' },          // 4
            { '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', 'D', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' },
            { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' },          // 9
            { 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' },
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' },          // 14
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' },
            { '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'I', 'w', 'w' }           // 19
        };
        grid = new DungeonGrid(20, 30, defGrid);

        rooms = new List <PseudoRoom> {
            new PseudoRoom(new Coordinates(0, 0), 3, 3),
            new PseudoRoom(new Coordinates(0, 9), 5, 9),
            new PseudoRoom(new Coordinates(2, 25), 5, 5),
            new PseudoRoom(new Coordinates(6, 10), 3, 7),
            new PseudoRoom(new Coordinates(11, 0), 7, 5),
            new PseudoRoom(new Coordinates(13, 10), 7, 7),
            new PseudoRoom(new Coordinates(11, 25), 7, 5)
        };

        pathableAreas = new List <PathableArea> {
            new PathableArea(new Coordinates(4, 0), 6, 3),
            new PathableArea(new Coordinates(0, 4), 5, 4),
            new PathableArea(new Coordinates(6, 4), 4, 5),
            new PathableArea(new Coordinates(11, 6), 7, 3),
            new PathableArea(new Coordinates(19, 0), 1, 9),
            new PathableArea(new Coordinates(10, 10), 2, 7),
            new PathableArea(new Coordinates(1, 19), 4, 5),
            new PathableArea(new Coordinates(6, 18), 7, 6),
            new PathableArea(new Coordinates(8, 25), 2, 5),
            new PathableArea(new Coordinates(14, 18), 6, 6)
        };
    }
Пример #10
0
 public void paste(DungeonGrid from, Coordinates start)
 {
     for (int i = 0; i < from.sizeX; i++)
     {
         for (int j = 0; j < from.sizeY; j++)
         {
             int tempX = i + start.x;
             int tempY = j + start.y;
             if (tempX < sizeX && tempY < sizeY)
             {
                 grid[tempX, tempY] = from.grid[i, j];
             }
         }
     }
 }
Пример #11
0
    //////////////////////////////////////////////////////////////////////////////////
    /*										|										*/
    /*                                   PRIVATES									*/
    /*										|										*/
    //////////////////////////////////////////////////////////////////////////////////

    private void recursiveMergePaths(DungeonGrid grid, PathableArea area, Random rand)
    {
        List <List <Coordinates> > tempPaths = grid.findAreas(Constants.PATH_MARKER, area.position, new Coordinates(area.position.x + area.sizeX, area.position.y + area.sizeY));

        if (tempPaths.Count == 1)
        {
            return;
        }

        PathDistance closest = findClosestPaths(tempPaths, rand);

        grid.drawPath(closest.path_1, closest.path_2, rand);

        recursiveMergePaths(grid, area, rand);
    }
Пример #12
0
    public r_3x3_001(bool rotate)
    {
        this.rotate = rotate;
        treasures   = new List <Treasure> ();
        char[,] defGrid;
        defGrid = new char[3, 3] {
            { ' ', ' ', ' ' },
            { ' ', 'T', ' ' },
            { ' ', ' ', ' ' }
        };
        treasures.Add(new Treasure(new Coordinates(1, 1)));
        grid = new DungeonGrid(3, 3, defGrid);

        modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
    }
Пример #13
0
    //////////////////////////////////////////////////////////////////////////////////
    /*										|										*/
    /*                                   PRIVATES									*/
    /*										|										*/
    //////////////////////////////////////////////////////////////////////////////////

    private void mergePaths(DungeonGrid grid, PathableArea area, Random rand)
    {
        List <List <Coordinates> > tempPaths = grid.findAreas(Constants.PATH_MARKER, area.position, new Coordinates(area.position.x + area.sizeX, area.position.y + area.sizeY));

        if (tempPaths.Count == 1)
        {
            return;
        }

        bool[,] linkedGraph = new bool[tempPaths.Count, tempPaths.Count];

        for (int i = 0; i < tempPaths.Count; i++)
        {
            for (int j = 0; j < tempPaths.Count; j++)
            {
                linkedGraph [i, j] = (i == j ? true : false);
            }
        }

        int actual = 0;

        foreach (List <Coordinates> tempPath in tempPaths)
        {
            int linkTo = rand.Next() % tempPaths.Count;
            int count  = 0;
            while (linkedGraph [actual, linkTo] && count < tempPaths.Count)
            {
                linkTo = (linkTo + 1) % tempPaths.Count;
                count++;
            }
            if (count == tempPaths.Count)
            {
                continue;
            }

            linkedGraph [actual, linkTo] = true;
            linkedGraph [linkTo, actual] = true;
            linkAll(linkedGraph, tempPaths.Count, actual, linkTo);

            PathDistance points = findClosestPoints(tempPath, tempPaths [linkTo]);
            grid.drawPath(points.path_1, points.path_2, rand);

            actual++;
        }
    }
Пример #14
0
    public r_9x9_001(bool rotate)
    {
        this.rotate = rotate;
        treasures   = new List <Treasure> ();
        char[,] defGrid;
        defGrid = new char[9, 9] {
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ' },
            { ' ', ' ', 'w', 'w', ' ', 'w', 'w', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', 'w', 'w', ' ', 'w', 'w', ' ', ' ' },
            { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }
        };
        grid = new DungeonGrid(9, 9, defGrid);

        modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
    }
Пример #15
0
 public r_7x11_001(bool rotate)
 {
     this.rotate = rotate;
     treasures   = new List <Treasure> ();
     char[,] defGrid;
     if (!rotate)
     {
         defGrid = new char[7, 11] {
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { ' ', 'w', 'w', 'w', ' ', 'w', 'w', ' ', 'w', 'w', ' ' },
             { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'w', ' ' },
             { ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'T', ' ', ' ', ' ' },
             { ' ', 'w', ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'w', ' ' },
             { ' ', 'w', 'w', 'w', ' ', 'w', 'w', ' ', 'w', 'w', ' ' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }
         };
         treasures.Add(new Treasure(new Coordinates(3, 7)));
         grid = new DungeonGrid(7, 11, defGrid);
     }
     else
     {
         defGrid = new char[11, 7] {
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { ' ', 'w', 'w', 'w', ' ', 'w', ' ' },
             { ' ', 'w', ' ', ' ', ' ', 'w', ' ' },
             { ' ', 'w', 'w', 'w', 'w', 'w', ' ' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
             { ' ', 'w', 'w', ' ', 'w', 'w', ' ' },
             { ' ', 'w', ' ', ' ', ' ', 'w', ' ' },
             { ' ', ' ', ' ', 'T', ' ', ' ', ' ' },
             { ' ', 'w', ' ', ' ', ' ', 'w', ' ' },
             { ' ', 'w', 'w', ' ', 'w', 'w', ' ' },
             { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }
         };
         treasures.Add(new Treasure(new Coordinates(7, 3)));
         grid = new DungeonGrid(11, 7, defGrid);
     }
     modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH";
 }
Пример #16
0
    // Start is called before the first frame update
    void Start()
    {
        instance        = this;
        hackableObjects = new List <Hackable>();
        terminals       = new List <Terminal>();
        tutorialInfo    = FindObjectOfType <TutorialInfo>();
        grid            = FindObjectOfType <DungeonGrid>();
        if (tutorialInfo)
        {
            generator = new GridGenerator(1, 0);
        }
        else
        {
            generator = TryMakeDungeonUntilSuccessful();
        }
        int[][] gridPlan = generator.GetGrid();
        SetUpCamera(gridPlan.Length);
        grid.GenerateGrid(gridPlan);
        grid.GenerateSwitchTilesOn(generator.GetSwitchTilesOn());
        grid.GenerateSwitchTilesOff(generator.GetSwitchTilesOff());
        grid.GenerateRamps(generator.GetRamps());
        grid.GenerateFirewalls(generator.GetFirewalls());
        grid.GenerateDefenses(generator.GetDefences());
        grid.GenerateTerminals(generator.GetTerminals());
        grid.GenerateSwitches(generator.GetSwitches());
        grid.GenerateSecurityHubs(generator.GetHubs());
        if (tutorialInfo)
        {
            AssignEnemyTypes(ref generator, tutorialInfo.GetEnemies());
        }
        foreach (Room room in generator.rooms)
        {
            List <EnemyProgram> enemiesInRoom = grid.GenerateEnemies(room.GetEnemies());
            grid.AssignPatrolRoutes(ref enemiesInRoom, room.patrolRoutes);
        }
        grid.GeneratePorts(generator.GetPorts());
        grid.AssignTerminalControl(generator.GetTerminalControlledObjects());
        foreach (Room room in generator.rooms)
        {
            if (room.isControlledByInternalTerminal)
            {
                room.ConnectTerminal(ref terminals);
            }
            room.ConnectSwitches();
        }
        RemoveUnusedTerminals();

        grid.PlaceLoot(generator.GetLoot());
        grid.PlaceObjective(generator.getMissionObj());
        if (tutorialInfo)
        {
            CreatePlayerPrograms(tutorialInfo.tutorialPrograms);
        }
        else
        {
            CreatePlayerPrograms(MissionStatus.instance.selectedPrograms);
        }
        grid.CreateDeploymentZone(generator.GetDeploymentArea());
        FindObjectOfType <CameraContol>().Configure();
        grid.ExploreStartingArea(generator.GetDeploymentArea());
        PrepareNextDeployment();
    }
Пример #17
0
    public l_02()
    {
        char[,] defGrid = new char[30, 30] {
            //y->                 4                        9                       14                       19                       24                       29       x
            { '.', '.', '.', 'S', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'E', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.' },          //  |
            { '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'p', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' },          //  v
            { '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.' },
            { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' },
            { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' },          // 4
            { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', ' ', ' ', ' ', ' ', ' ', 'S', '.', '.', '.', '.', '.' },
            { '.', '.', '.', 'D', '.', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' },
            { 'w', 'D', 'w', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' },
            { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.' },
            { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' },          // 9
            { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'p', 'D', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'S', '.', '.', '.', '.', '.' },
            { ' ', ' ', ' ', 'D', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' },
            { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'S', 'w', 'w' },
            { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },          // 14
            { 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'D', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' },          // 19
            { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' },
            { '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'D', '.', '.', '.', 'w', 'w' },
            { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', 'w', '.', '.', '.', 'w', 'w' },
            { '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', '.', '.', '.', 'w', 'w' },
            { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', 'w', 'w' },          // 24
            { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'D', 'p' },
            { 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'p' },
            { ' ', ' ', ' ', 'w', 'w', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'p' },
            { ' ', ' ', ' ', 'w', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', 'w', 'p' },
            { ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'I' },          // 29
        };
        grid = new DungeonGrid(30, 30, defGrid);

        rooms = new List <PseudoRoom> {
            new PseudoRoom(new Coordinates(8, 0), 7, 3),
            new PseudoRoom(new Coordinates(27, 0), 3, 3),
            new PseudoRoom(new Coordinates(12, 5), 9, 5),
            new PseudoRoom(new Coordinates(3, 11), 5, 7),
            new PseudoRoom(new Coordinates(3, 19), 5, 5),
            new PseudoRoom(new Coordinates(9, 12), 3, 5),
            new PseudoRoom(new Coordinates(13, 18), 3, 3),
            new PseudoRoom(new Coordinates(21, 18), 3, 3),
            new PseudoRoom(new Coordinates(25, 11), 5, 3),
            new PseudoRoom(new Coordinates(13, 25), 7, 5)
        };

        pathableAreas = new List <PathableArea> {
            new PathableArea(new Coordinates(0, 0), 7, 3),
            new PathableArea(new Coordinates(16, 0), 10, 4),
            new PathableArea(new Coordinates(0, 4), 2, 8),
            new PathableArea(new Coordinates(3, 4), 9, 1),
            new PathableArea(new Coordinates(3, 6), 8, 4),
            new PathableArea(new Coordinates(22, 5), 7, 5),
            new PathableArea(new Coordinates(13, 11), 11, 6),
            new PathableArea(new Coordinates(25, 15), 5, 9),
            new PathableArea(new Coordinates(0, 16), 2, 8),
            new PathableArea(new Coordinates(9, 18), 3, 6),
            new PathableArea(new Coordinates(17, 18), 3, 3),
            new PathableArea(new Coordinates(13, 22), 4, 2),
            new PathableArea(new Coordinates(18, 22), 6, 2),
            new PathableArea(new Coordinates(0, 25), 12, 5),
            new PathableArea(new Coordinates(21, 25), 8, 3)
        };
    }