Esempio n. 1
0
        private void fillByFloorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentDungeon == null)
            {
                currentDungeon = new RogueCore.Dungeon(rogueScreen1.ScreenWidth, rogueScreen1.ScreenHeight - 4);
            }

            currentDungeon.FillRect(new Rectangle(0, 0, currentDungeon.Width, currentDungeon.Height), GetFloor());
            currentDungeon.Display(rogueScreen1, 2);
        }
Esempio n. 2
0
        private void generateRandomDungeonToolStripMenuItem_Click(object sender, EventArgs e)
        {
            RandomDungeon randomDungeon = new RandomDungeon();

            currentDungeon = randomDungeon.Generate(
                rogueScreen1.ScreenWidth,
                rogueScreen1.ScreenHeight - 4);

            currentDungeon.Display(rogueScreen1, 2);
        }
Esempio n. 3
0
        public RogueCore.Dungeon Generate(int w, int h)
        {
            RogueCore.Dungeon dungeon = new RogueCore.Dungeon(w, h);

            for (int y = 0; y < dungeon.Height; y++)
            {
                for (int x = 0; x < dungeon.Width; x++)
                {
                    RogueCore.Cell cell = dungeon.GetCell(x, y);

                    int type = rnd.Next(0, (int)CellType.Max);

                    switch (type)
                    {
                    case (int)CellType.Floor:
                        cell.character.character  = '.';
                        cell.character.frontColor = Color.FromArgb(0xaa, 0xaa, 0xaa);
                        cell.solid = false;
                        break;

                    case (int)CellType.OpenDoor:
                        cell.character.character  = '/';
                        cell.character.frontColor = Color.FromArgb(0xaa, 0x55, 0);
                        cell.solid = false;
                        break;

                    case (int)CellType.ClosedDoor:
                        cell.character.character  = '+';
                        cell.character.frontColor = Color.FromArgb(0xaa, 0x55, 0);
                        cell.solid = false;
                        break;

                    case (int)CellType.DoorWay:
                        cell.character.character  = '.';
                        cell.character.frontColor = Color.FromArgb(0xaa, 0x55, 0);
                        cell.solid = false;
                        break;

                    case (int)CellType.Wall:
                        cell.character.character  = '#';
                        cell.character.frontColor = Color.FromArgb(0x55, 0x55, 0x55);
                        cell.solid = true;
                        break;
                    }

                    cell.visible = true;
                }
            }

            dungeon.GetCell(0, 0).solid         = false;
            dungeon.GetCell(w - 1, h - 1).solid = false;

            return(dungeon);
        }
Esempio n. 4
0
        private void putWallSlabToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentDungeon == null)
            {
                currentDungeon = new RogueCore.Dungeon(rogueScreen1.ScreenWidth, rogueScreen1.ScreenHeight - 4);
            }

            Rectangle rect = new Rectangle(
                rnd.Next(0, rogueScreen1.ScreenWidth - 1),
                rnd.Next(0, rogueScreen1.ScreenHeight - 1),
                rnd.Next(3, 8), rnd.Next(3, 8));

            currentDungeon.FillRect(rect, GetWall());
            currentDungeon.Display(rogueScreen1, 2);
        }
Esempio n. 5
0
        private void digRandomTunnelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentDungeon == null)
            {
                currentDungeon = new RogueCore.Dungeon(rogueScreen1.ScreenWidth, rogueScreen1.ScreenHeight - 4);
            }

            int vertical = rnd.Next(0, 2);

            int   width = rnd.Next(5, 15);
            Point start = new Point(
                rnd.Next(0, rogueScreen1.ScreenWidth - 1),
                rnd.Next(0, rogueScreen1.ScreenHeight - 1));
            Point end = new Point(
                start.X + width * ((vertical != 0) ? 0 : 1),
                start.Y + width * ((vertical != 0) ? 1 : 0));

            currentDungeon.FillLine(start, end, GetFloor());
            currentDungeon.Display(rogueScreen1, 2);
        }