private IDungeonModel[] LoadDungeons() { var commonStrings = rom.GetCommonStrings(); var dungeonData = rom.GetDungeonDataInfo(); var dungeonExtra = rom.GetDungeonExtra(); var dungeonBalance = rom.GetDungeonBalance(); var dungeons = new List <DungeonModel>(); foreach (var dungeon in dungeonData.Entries) { dungeons.Add(new DungeonModel(commonStrings, dungeon.Value) { Id = dungeon.Key, Extra = dungeonExtra.Entries.GetValueOrDefault(dungeon.Key), Balance = dungeonBalance.Entries[dungeon.Value.DungeonBalanceIndex] }); } dungeons.Sort((d1, d2) => d1.Data.SortKey.CompareTo(d2.Data.SortKey)); return(dungeons.ToArray()); }