private static int addWeightedRandomSpinReward(Reward spinReward, CellPhoneDailySpinActivityDefinition dailySpinDefinition, ClubPenguin.Net.Offline.DailySpinData dailySpinData, CellPhoneDailySpinActivityDefinition.ChestDefinition chestDefinition) { int num = 0; List <KeyValuePair <int, int> > list = new List <KeyValuePair <int, int> >(); Dictionary <int, Reward> dictionary = new Dictionary <int, Reward>(); int num2 = dailySpinDefinition.InitialRespinWeight + dailySpinDefinition.RespinWeightIncreasePerSpin * dailySpinData.NumSpinsSinceReceivedExtraSpin; dictionary.Add(dailySpinDefinition.RespinSpinOutcomeId, dailySpinDefinition.RespinReward.ToReward()); list.Add(new KeyValuePair <int, int>(dailySpinDefinition.RespinSpinOutcomeId, num2)); num += num2; if (isChestValidSpinReward(dailySpinData, chestDefinition)) { int num3 = dailySpinDefinition.InitialChestWeight + dailySpinDefinition.ChestWeightIncreasePerSpin * dailySpinData.NumSpinsSinceReceivedChest; dictionary.Add(dailySpinDefinition.ChestSpinOutcomeId, new Reward()); list.Add(new KeyValuePair <int, int>(dailySpinDefinition.ChestSpinOutcomeId, num3)); num += num3; } foreach (CellPhoneDailySpinActivityDefinition.SpinReward spinReward2 in dailySpinDefinition.SpinRewards) { CellPhoneDailySpinActivityDefinition.SpinReward current = spinReward2; dictionary.Add(current.SpinOutcomeId, current.Reward.ToReward()); list.Add(new KeyValuePair <int, int>(current.SpinOutcomeId, current.Weight)); num += current.Weight; } int num4 = UnityEngine.Random.Range(0, num); int num5 = 0; foreach (KeyValuePair <int, int> item in list) { num5 += item.Value; if (num5 > num4) { spinReward.AddReward(dictionary[item.Key]); return(item.Key); } } return(-1); }
private void initItems() { float num = 360f / (float)numItems; for (int i = 0; i < numItems; i++) { DailySpinWheelItem component = UnityEngine.Object.Instantiate(itemPrefab, ItemContainer.transform, worldPositionStays: false).GetComponent <DailySpinWheelItem>(); component.transform.localRotation = Quaternion.Euler(0f, 0f, num * (float)i); wheelItems.Add(component); } CellPhoneDailySpinActivityDefinition.SpinReward spinReward = default(CellPhoneDailySpinActivityDefinition.SpinReward); spinReward.SpinOutcomeId = widgetData.ChestSpinOutcomeId; wheelItems[widgetData.ChestWheelPosition].SetReward(spinReward, widgetData, currentChestId); CellPhoneDailySpinActivityDefinition.SpinReward spinReward2 = default(CellPhoneDailySpinActivityDefinition.SpinReward); spinReward2.SpinOutcomeId = widgetData.RespinSpinOutcomeId; wheelItems[widgetData.RespinWheelPosition].SetReward(spinReward2, widgetData, currentChestId); for (int i = 0; i < widgetData.SpinRewards.Count; i++) { wheelItems[widgetData.SpinRewards[i].WheelPosition].SetReward(widgetData.SpinRewards[i], widgetData, currentChestId); wheelItems[widgetData.SpinRewards[i].WheelPosition].SetSliceImage(SliceImages[widgetData.SpinRewards[i].WheelPosition]); } SetOverlayState(currentOverlayState); }
public void SetReward(CellPhoneDailySpinActivityDefinition.SpinReward spinReward, CellPhoneDailySpinActivityDefinition widgetData, int currentChestId) { CoinXPContainer.SetActive(value: false); ChestContainer.SetActive(value: false); RespinContainer.SetActive(value: false); ItemRewardId = spinReward.SpinOutcomeId; ChestSpriteSelector.Select(currentChestId); CoinReward rewardable; if (spinReward.Reward != null) { Reward reward = spinReward.Reward.ToReward(); MascotXPReward rewardable2; if (reward.TryGetValue <CoinReward>(out rewardable) && rewardable.Coins > 0) { ValueText.text = rewardable.Coins.ToString(); CoinsXpSpriteSelector.SelectSprite(4); } else if (reward.TryGetValue <MascotXPReward>(out rewardable2)) { using (Dictionary <string, int> .Enumerator enumerator = rewardable2.XP.GetEnumerator()) { if (enumerator.MoveNext()) { KeyValuePair <string, int> current = enumerator.Current; ValueText.text = current.Value.ToString(); int index = 0; if (Service.Get <ProgressionService>().IsMascotMaxLevel(current.Key)) { index = 5; ValueText.text = "1"; } else { if (current.Key == "AuntArctic") { index = 0; } if (current.Key == "Rockhopper") { index = 1; } if (current.Key == "Rookie") { index = 2; } if (current.Key == "DJCadence") { index = 3; } } CoinsXpSpriteSelector.SelectSprite(index); } } } CoinXPContainer.SetActive(value: true); } else if (spinReward.SpinOutcomeId == widgetData.ChestSpinOutcomeId) { ChestContainer.SetActive(value: true); } else if (spinReward.SpinOutcomeId == widgetData.RespinSpinOutcomeId) { if (widgetData.RespinReward.ToReward().TryGetValue <CoinReward>(out rewardable)) { RespinValueText.text = rewardable.Coins.ToString(); } RespinContainer.SetActive(value: true); } }