public void Generate() { Load(); DungeonGenerator.AddRooms(rooms); Game.world.Draw(); DungeonGenerator.AddBridges(rooms, bridges); AddEnemyes(); if (Game.currentDungeonLevel >= 19) { Enemy enemy = new Enemy(EnemyesList.diablo); enemy.SetInRoom(Game.world.dungeon.rooms.Count - 1); enemy.Draw(); enemyes.Add(enemy); } else { AddPortal(rooms.Count - 1, EPortalStatus.HUB); } int chestCount = DungeonGenerator.random.Next(3, 6) + (Game.player.perksSystem.CheckPerk(PerksList.givesMoreChestPerk) ? 2 : 0); for (int i = 0; i < chestCount; ++i) { Chest chest = new Chest(); chest.SetInRoom(DungeonGenerator.random.Next(0, rooms.Count - 1)); chest.Draw(); units.Add(chest); } ++Game.maxDungeonLevel; Game.currentDungeonLevel = Game.maxDungeonLevel; }
public void GenerateHub() { Load(); if (hub_rooms.Count == 0) { DungeonGenerator.MakeHub(rooms); Game.world.Draw(); //AddPortal(rooms.Count - 1, EPortalStatus.NEXT_DUNGEON); Portal portal = new Portal(EPortalStatus.NEXT_DUNGEON); portal.SetPosition(12, 45); units.Add(portal); Game.world.Draw(); DungeonGenerator.AddBridges(rooms, bridges, false); for (int i = 0; i < 5; ++i) { Human human = new Human(); human.SetInRoom(DungeonGenerator.random.Next(0, 2)); human.Draw(); units.Add(human); } for (int i = 0; i < 3; ++i) { Guardian guardian = new Guardian(); guardian.SetInRoom(rooms.Count - 1); guardian.Draw(); units.Add(guardian); } Informant informant = new Informant(); //informant.SetInRoom(0); informant.SetPosition(11, 8); units.Add(informant); EItemType[] types = { EItemType.ARMOR, EItemType.ITEM, EItemType.HELMET, EItemType.WEAPON }; for (int i = 0; i < types.Length; ++i) { Trader trader = new Trader(types[i]); //trader.SetInRoom(DungeonGenerator.random.Next(0, 2)); trader.SetPosition(8, 5 + 4 * i); trader.Draw(); units.Add(trader); } hub_bridges = bridges; hub_rooms = rooms; hub_units = units; } else { LoadHub(); Game.world.Draw(); } }