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); }
private void generateRandomDungeonToolStripMenuItem_Click(object sender, EventArgs e) { RandomDungeon randomDungeon = new RandomDungeon(); currentDungeon = randomDungeon.Generate( rogueScreen1.ScreenWidth, rogueScreen1.ScreenHeight - 4); currentDungeon.Display(rogueScreen1, 2); }
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); }
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); }
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); }