private static IDungeonInfo BuildDungeonInfo(HearthstoneImage image, DungeonKey key, dynamic savesMap) { var index = DungeonInfoReader.GetKeyIndex(savesMap, (int)key); if (index == -1) { return(null); } var dungeonMap = savesMap["valueSlots"][index]; var dungeonInfo = new DungeonInfo { Key = key, DeckCards = DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.DeckList), LootOptionBundles = new List <List <int> > { DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption1), DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption2), DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption3), }, ChosenLoot = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.ChosenLoot), TreasureOption = DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.TreasureOption), ChosenTreasure = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.ChosenTreasure), RunActive = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.RunActive), SelectedDeck = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.SelectedDeck), StartingTreasure = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.StartingTreasure), }; dungeonInfo.DeckList = DungeonInfoReader.BuildRealDeckList(image, dungeonInfo); return(dungeonInfo); }
public static IDungeonInfo BuildDungeonInfo(HearthstoneImage image, DungeonKey key, dynamic savesMap) { var index = DungeonInfoReader.GetKeyIndex(savesMap, (int)key); if (index == -1) { return(null); } var dungeonMap = savesMap["valueSlots"][index]; var deckDbfId = DungeonInfoReader.ExtractDeckDbfId(image, dungeonMap, key); var dungeonInfo = new DungeonInfo { Key = key, DeckCards = DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.DeckList), LootOptionBundles = new List <DungeonOptionBundle> { BuildOptionBundle(DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption1)), BuildOptionBundle(DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption2)), BuildOptionBundle(DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.LootOption3)), }, ChosenLoot = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.ChosenLoot), TreasureOption = DungeonInfoReader.ExtractValues(dungeonMap, (int)DungeonFieldKey.TreasureOption), ChosenTreasure = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.ChosenTreasure), RunActive = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.RunActive), SelectedDeck = deckDbfId, StartingTreasure = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.StartingTreasure), StartingHeroPower = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.StartingHeroPower), PlayerClass = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.PlayerClass), ScenarioId = DungeonInfoReader.ExtractValue(dungeonMap, (int)DungeonFieldKey.ScenarioId), }; dungeonInfo.DeckList = DungeonInfoReader.BuildRealDeckList(image, dungeonInfo); return(dungeonInfo); }