public Encounter GetEncounter(int ownerIndex) { var valid = new List <DungeonEncounter>(); int priority = 0; foreach (var dungeonMonster in dungeon.monsters) { if (dungeonMonster.min <= dungeon.currentLevel && dungeonMonster.max >= dungeon.currentLevel && dungeonMonster.priority >= priority) { if (dungeonMonster.priority > priority) { priority = dungeonMonster.priority; valid.Clear(); } valid.Add(dungeonMonster); } } var choosen = valid.Random(); var encounter = DungeonFactory.CreateEncounter(choosen.monsters, ownerIndex); return(encounter); }