// Method to place monsters on the map. private void PlaceMonsters() { foreach (var room in _map.Rooms) { // Each room has a 60% chance of having monsters if (Dice.Roll("1D10") < 7) { // Generate between 1 and 4 monsters var numberOfMonsters = Dice.Roll("1D4"); for (int i = 0; i < numberOfMonsters; i++) { if (_map.DoesRoomHaveWalkableSpace(room)) { // Find a random walkable location in the room to place the monster Point randomRoomLocation = _map.GetRandomLocationInRoom(room); // It's possible that the room doesn't have space to place a monster // In that case skip creating the monster if (randomRoomLocation != null) { _map.AddMonster(ActorGenerator.CreateMonster(_level, _map.GetRandomLocationInRoom(room))); } } } } } }
private void PlaceMonsters() { foreach (var room in _map.Rooms) { if (Dice.Roll("1D10") < 7) { var numberOfMonsters = Dice.Roll("1D4"); for (int i = 0; i < numberOfMonsters; i++) { if (_map.DoesRoomHaveWalkableSpace(room)) { Point randomRoomLocation = _map.GetRandomLocationInRoom(room); if (randomRoomLocation != null) { _map.AddMonster(ActorGenerator.CreateMonster(_level, _map.GetRandomLocationInRoom(room))); } } } } } }