public void addShopEntryDrop(Player player, string shopEntryId, [Optional, DefaultParameterValue(false)] bool applyMysteryChestDiminisher) { double num; CharacterInstance activeCharacter = player.ActiveCharacter; ShopEntry shopEntry = ConfigShops.GetShopEntry(shopEntryId); this.ShopEntryDrops.Add(shopEntryId); if (string.IsNullOrEmpty(this.ShopEntryId)) { this.ShopEntryId = shopEntryId; } switch (shopEntry.Type) { case ShopEntryType.CoinBundle: { if (!applyMysteryChestDiminisher) { num = ConfigShops.CalculateCoinBundleSize(player, shopEntry.Id, 1); break; } ConfigMeta configMeta = App.Binder.ConfigMeta; double numUpgrades = player.getMysteryCoinOfferMultiplier(shopEntryId); num = configMeta.CoinBundleSize(activeCharacter.HighestLevelItemOwnedAtFloorStart, player, shopEntryId, numUpgrades, 0.0); break; } case ShopEntryType.IapDiamonds: case ShopEntryType.IapStarterBundle: case ShopEntryType.SpecialChest: case ShopEntryType.RewardBox: return; case ShopEntryType.Boost: this.Boost = shopEntry.Boost; return; case ShopEntryType.MysteryItem: { ItemInstance item = ConfigShops.CreateNewMysteryItemInstance(player, shopEntry.Id); this.ItemDrops.Add(item); return; } case ShopEntryType.TokenBundle: MathUtil.DistributeValuesIntoChunksInt((int)ConfigShops.CalculateTokenBundleSize(player, shopEntry.Id), shopEntry.NumBursts, ref this.TokenDrops); return; case ShopEntryType.ReviveBundle: this.Revives = (int)ConfigShops.CalculateReviveBundleSize(shopEntry.Id); return; case ShopEntryType.FrenzyBundle: this.FrenzyPotions = (int)ConfigShops.CalculateFrenzyBundleSize(shopEntry.Id); return; case ShopEntryType.DustBundle: MathUtil.DistributeValuesIntoChunksInt((int)ConfigShops.CalculateDustBundleSize(activeCharacter, shopEntry.Id), shopEntry.NumBursts, ref this.DustDrops); return; case ShopEntryType.DiamondBundle: MathUtil.DistributeValuesIntoChunksInt((int)ConfigShops.CalculateDiamondBundleSize(player, shopEntry.Id), shopEntry.NumBursts, ref this.DiamondDrops); return; case ShopEntryType.XpBundle: this.XpPotions = (int)ConfigShops.CalculateXpBundleSize(shopEntry.Id); return; case ShopEntryType.BossBundle: this.BossPotions = (int)ConfigShops.CalculateBossBundleSize(shopEntry.Id); return; case ShopEntryType.PetBundle: { string str = CmdRollPetBundleLootTable.ExecuteStatic(App.Binder.ConfigLootTables.PetBundleLootTables[shopEntry.Id], player); int num6 = ConfigShops.CalculatePetBundleSize(player, shopEntry.Id); PetReward reward3 = new PetReward(); reward3.PetId = str; reward3.Amount = num6; this.Pets.Add(reward3); return; } case ShopEntryType.PetBox: { this.ChestType = shopEntry.ChestType; Reward reward = new Reward(); CmdRollChestLootTable.ExecuteStatic(shopEntry.ChestType, player, false, ref reward, null); this.Pets.AddRange(reward.Pets); return; } case ShopEntryType.MegaBoxBundle: this.MegaBoxes = (int)ConfigShops.CalculateMegaBoxBundleSize(shopEntry.Id); return; case ShopEntryType.LootBox: { Reward reward2 = new Reward(); CmdRollChestLootTable.ExecuteStatic(shopEntry.ChestType, player, false, ref reward2, null); this.copyFrom(reward2); this.ChestType = shopEntry.ChestType; return; } default: return; } MathUtil.DistributeValuesIntoChunksDouble(num, shopEntry.NumBursts, ref this.CoinDrops); }
private void onShopPurchaseCompleted(GameLogic.ShopEntry shopEntry, PurchaseResult purchaseResult) { PlayerView.Binder.MenuSystem.waitAndTransitionToNewMenu(MenuType.ThinPopupMenu, MenuContentType.GachaPopupContent, null); }