private void UpdateBonusElementView(DailyBonusCycleComponent dailyBonusCycleComponent, DailyBonusScreenSystem.UserDailyBonusNode userDailyBonusNode, int zoneIndex, DailyBonusData[] dailyBonuses) { List <long> receivedRewards = userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards; int num = dailyBonusCycleComponent.Zones[zoneIndex]; for (int i = 0; i < dailyBonuses.Length; i++) { if (i > num) { this.bonusElements[i].UpdateView(dailyBonuses[i], BonusElementState.INACCESSIBLE); } else if (receivedRewards.Contains(dailyBonuses[i].Code)) { this.bonusElements[i].UpdateView(dailyBonuses[i], BonusElementState.TAKEN); } else { this.bonusElements[i].UpdateView(dailyBonuses[i], BonusElementState.ACCESSIBLE); this.bonusElements[i].transform.SetAsLastSibling(); } } if (this.selectedBonusElement != null) { this.selectedBonusElement = null; this.onSelectedBonusElementChanged(this.selectedBonusElement); } }
private void CreateBonusElements(DailyBonusCycleComponent dailyBonusCycleComponent, DailyBonusScreenSystem.UserDailyBonusNode userDailyBonusNode) { int num = 0; int[] zones = dailyBonusCycleComponent.Zones; int cycleNumber = (int)userDailyBonusNode.userDailyBonusCycle.CycleNumber; int index = 0; while (index < zones.Length) { Random.InitState(cycleNumber); int num4 = num; while (true) { if (num4 > zones[index]) { num = zones[index] + 1; index++; break; } GameObject obj2 = Instantiate <GameObject>(this.bonusElementPrefab); obj2.transform.SetParent(base.transform, false); MapViewBonusElement component = obj2.GetComponent <MapViewBonusElement>(); component.ZoneIndex = index; this.bonusElements.Add(component); component.OnValueChanged(new Action <MapViewBonusElement, bool>(this.OnBonusElementToggleValueChanged)); component.SetToggleGroup(base.GetComponent <ToggleGroup>()); num4++; } } }
private void UpdateView() { DailyBonusCycleComponent cycle = this.GetCycle(this.userDailyBonusNode, this.dailyBonusConfigNode); this.cellsProgressBar.Init(cycle.DailyBonuses.Length, cycle.DailyBonuses, this.userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards); this.mapView.UpdateView(cycle, this.userDailyBonusNode); this.UpdateTeleport(this.userDailyBonusNode, this.dailyBonusConfigNode); this.UpdateFoundItemsLabel(cycle); }
private bool UserTookAllBonusesInCurrentZone(DailyBonusScreenSystem.UserDailyBonusNode userDailyBonusNode, DailyBonusScreenSystem.DailyBonusConfig dailyBonusConfigNode) { DailyBonusCycleComponent cycle = this.GetCycle(userDailyBonusNode, dailyBonusConfigNode); int num = cycle.Zones[(int)((IntPtr)userDailyBonusNode.userDailyBonusZone.ZoneNumber)]; DailyBonusData[] dailyBonuses = cycle.DailyBonuses; List <long> receivedRewards = userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards; for (int i = 0; i <= num; i++) { if (!receivedRewards.Contains(dailyBonuses[i].Code)) { return(false); } } return(true); }
public void UpdateView(DailyBonusCycleComponent dailyBonusCycleComponent, DailyBonusScreenSystem.UserDailyBonusNode userDailyBonusNode) { DailyBonusData[] dailyBonuses = dailyBonusCycleComponent.DailyBonuses; int cycleNumber = (int)userDailyBonusNode.userDailyBonusCycle.CycleNumber; if (this.bonusElements.Count == 0) { this.CreateBonusElements(dailyBonusCycleComponent, userDailyBonusNode); } this.UpdateBonusElementsPositions(cycleNumber); PlayerPrefs.SetInt(DAILY_BONUS_CYCLE_KEY, cycleNumber); PlayerPrefs.Save(); int zoneNumber = (int)userDailyBonusNode.userDailyBonusZone.ZoneNumber; this.UpdateZoneRadiusView(zoneNumber); this.UpdateBonusElementView(dailyBonusCycleComponent, userDailyBonusNode, zoneNumber, dailyBonuses); this.UpdateBackView(userDailyBonusNode); }
private void UpdateFoundItemsLabel(DailyBonusCycleComponent cycle) { string allItemsFound = string.Empty; if (this.userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards.Count >= cycle.DailyBonuses.Length) { if (this.userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards.Count == cycle.DailyBonuses.Length) { allItemsFound = (string)this.allItemsFound; } } else { allItemsFound = (string)this.itemsFound; if (this.userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards.Count == 0) { allItemsFound = (string)this.noItemsFound; } } this.foundItemsLabel.SetText(allItemsFound.ToUpper()); }
private DailyBonusGarageItemReward GetCompleteUntakenDetailTargetItem(DailyBonusScreenSystem.UserDailyBonusNode userDailyBonusNode, DailyBonusScreenSystem.DailyBonusConfig dailyBonusConfigNode) { DailyBonusCycleComponent cycle = this.GetCycle(userDailyBonusNode, dailyBonusConfigNode); int num = cycle.Zones[(int)((IntPtr)userDailyBonusNode.userDailyBonusZone.ZoneNumber)]; DailyBonusData[] dailyBonuses = cycle.DailyBonuses; List <long> receivedRewards = userDailyBonusNode.userDailyBonusReceivedRewards.ReceivedRewards; for (int i = 0; i <= num; i++) { DailyBonusData data = dailyBonuses[i]; if (receivedRewards.Contains(data.Code) && (data.DailyBonusType == DailyBonusType.DETAIL)) { DetailItem item = GarageItemsRegistry.GetItem <DetailItem>(data.DetailReward.MarketItemId); if (item.Count == item.RequiredCount) { return(data.DetailReward); } } } return(null); }