示例#1
0
        public void SetIAPRewardIcon(UXSprite iconSprite, string uid)
        {
            StaticDataController staticDataController = Service.StaticDataController;
            InAppPurchaseTypeVO  inAppPurchaseTypeVO  = staticDataController.Get <InAppPurchaseTypeVO>(uid);
            string rewardUid = string.Empty;

            if (Service.CurrentPlayer.Faction == FactionType.Empire)
            {
                rewardUid = inAppPurchaseTypeVO.RewardEmpire;
            }
            else
            {
                rewardUid = inAppPurchaseTypeVO.RewardRebel;
            }
            if (inAppPurchaseTypeVO.CurrencyType.Equals("hard") || inAppPurchaseTypeVO.CurrencyType.Equals("pack"))
            {
                UXUtils.SetupGeometryForIcon(iconSprite, inAppPurchaseTypeVO.CurrencyIconId);
            }
            else
            {
                RewardType  rewardType = RewardType.Invalid;
                IGeometryVO config;
                Service.RewardManager.GetFirstRewardAssetName(rewardUid, ref rewardType, out config);
                RewardUtils.SetRewardIcon(iconSprite, config, AnimationPreference.NoAnimation);
            }
        }
示例#2
0
        private void InitRewardsGrid()
        {
            this.rewardsGrid = base.GetElement <UXGrid>("GridRewards");
            this.rewardsGrid.SetTemplateItem("RewardItem");
            RewardVO rewardVO = Service.StaticDataController.Get <RewardVO>(this.meta.Reward);
            List <RewardComponentTag> rewardComponents = RewardUtils.GetRewardComponents(rewardVO);

            for (int i = 0; i < rewardComponents.Count; i++)
            {
                RewardComponentTag rewardComponentTag = rewardComponents[i];
                string             itemUid            = rewardVO.Uid + i;
                UXElement          uXElement          = this.rewardsGrid.CloneTemplateItem(itemUid);
                uXElement.Tag = rewardComponentTag;
                UXLabel subElement = this.rewardsGrid.GetSubElement <UXLabel>(itemUid, "LabelRewardCount");
                subElement.Text = rewardComponentTag.Quantity;
                RewardType type = rewardComponentTag.Type;
                UXSprite   subElement2;
                if (type != RewardType.Building && type != RewardType.Currency)
                {
                    subElement2 = this.rewardsGrid.GetSubElement <UXSprite>(itemUid, "SpriteTroop");
                }
                else
                {
                    subElement2 = this.rewardsGrid.GetSubElement <UXSprite>(itemUid, "SpriteReward");
                }
                RewardUtils.SetRewardIcon(subElement2, rewardComponentTag.RewardGeometryConfig, AnimationPreference.NoAnimation);
                this.rewardsGrid.AddItem(uXElement, rewardComponentTag.Order);
                this.rewardsGrid.RepositionItems();
                this.rewardsGrid.Scroll(0.5f);
            }
            this.rewardsGrid.RepositionItems();
            this.rewardsGrid.Scroll(0.5f);
        }
示例#3
0
 public List <DReward> GetRewards()
 {
     if (rewards == null)
     {
         rewards = RewardUtils.GetDRewardFromReward(definition.Reward.ToReward());
     }
     return(rewards);
 }
示例#4
0
 private void checkRemainingXP()
 {
     if (currentMascotLevel < targetMacotLevel && ProgressionService.GetMascotLevelFromXP(currentMascotLevel) != Service.Get <ProgressionService>().MascotLevel(currentMascotName))
     {
         Reward          rewardForProgressionLevel = RewardUtils.GetRewardForProgressionLevel(Service.Get <ProgressionService>().Level);
         ShowRewardPopup pendingLevelUpPopup       = new ShowRewardPopup.Builder(DRewardPopup.RewardPopupType.levelUp, rewardForProgressionLevel).setMascotName(currentMascotName).Build();
         Service.Get <ProgressionService>().PendingLevelUpPopup = pendingLevelUpPopup;
     }
 }
    private void loadRewardIcons(Reward reward, GameObject iconPrefab)
    {
        List <DReward> dRewardFromReward = RewardUtils.GetDRewardFromReward(reward);

        for (int i = 0; i < dRewardFromReward.Count; i++)
        {
            createRewardIcon(dRewardFromReward[i], iconPrefab);
        }
    }
    public void AddChildRewards(List <RewardData> childRewards)
    {
        List <RewardData> rewardDataList = new List <RewardData>(childRewards);

        this.FixUpRewardOrigins(rewardDataList);
        foreach (RewardData data in rewardDataList)
        {
            RewardUtils.AddRewardDataToList(data, this.m_rewards);
        }
    }
示例#7
0
 static bool Prefix(ResearchManager __instance, ResearchProject project, Level ___level)
 {
     if (!Main.enabled || !Main.settings.ToggleRepeatResearch || !project.Definition.Repeatable)
     {
         return(true);
     }
     RewardUtils.GiveAllRewards(null, project.Definition.Rewards, ___level.Metagame, null);
     ___level.Notifications.Send(new NotificationResearchComplete(___level.Notifications.MessageDefinitions._researchCompleteMessage, project.Definition, ___level));
     __instance.OnResearchProjectComplete.InvokeSafe(project);
     ___level.ObjectiveEvents.OnGameEvent.InvokeSafe(ObjectiveGameEvent.ResearchProjectCompleted);
     return(false);
 }
示例#8
0
    private void ShowLevelUp(int level)
    {
        Reward          rewardForProgressionLevel = RewardUtils.GetRewardForProgressionLevel(level);
        ShowRewardPopup showRewardPopup           = new ShowRewardPopup.Builder(DRewardPopup.RewardPopupType.levelUp, rewardForProgressionLevel).setMascotName(currentMascotName).Build();

        if (!isLevelUpScreenSuppressed)
        {
            showRewardPopup.Execute();
        }
        else
        {
            Service.Get <ProgressionService>().PendingLevelUpPopup = showRewardPopup;
        }
    }
示例#9
0
 private void InitMissionRewardsGrid(string rewardUid, int campaignPoints)
 {
     this.rewardsGrid = this.screen.GetElement <UXGrid>("MissionRewardsGrid");
     this.rewardsGrid.Clear();
     this.rewardsGrid.SetTemplateItem("MissionRewardsItem");
     if (string.IsNullOrEmpty(rewardUid) && campaignPoints <= 0)
     {
         return;
     }
     if (campaignPoints > 0)
     {
         string    itemUid    = "RewardItem0";
         UXElement item       = this.rewardsGrid.CloneTemplateItem(itemUid);
         UXLabel   subElement = this.rewardsGrid.GetSubElement <UXLabel>(itemUid, "LabelMissionReward");
         subElement.Text = base.LangController.Get("CAMPAIGN_POINTS", new object[]
         {
             campaignPoints
         });
         UXSprite subElement2 = this.rewardsGrid.GetSubElement <UXSprite>(itemUid, "SpriteMissionReward");
         subElement2.Visible    = true;
         subElement2.SpriteName = "icoCampaignPoints";
         this.rewardsGrid.AddItem(item, 0);
     }
     else
     {
         RewardVO rewardVO = base.Sdc.Get <RewardVO>(rewardUid);
         List <RewardComponentTag> rewardComponents = RewardUtils.GetRewardComponents(rewardVO);
         int i     = 0;
         int count = rewardComponents.Count;
         while (i < count)
         {
             string             itemUid2           = "RewardItem" + i;
             RewardComponentTag rewardComponentTag = rewardComponents[i];
             UXElement          item2       = this.rewardsGrid.CloneTemplateItem(itemUid2);
             UXLabel            subElement3 = this.rewardsGrid.GetSubElement <UXLabel>(itemUid2, "LabelMissionReward");
             subElement3.Text = base.LangController.Get("CURRENCY_VALUE_NAME", new object[]
             {
                 rewardComponentTag.Quantity,
                 rewardComponentTag.RewardName
             });
             UXSprite subElement4 = this.rewardsGrid.GetSubElement <UXSprite>(itemUid2, "SpriteMissionReward");
             RewardUtils.SetRewardIcon(subElement4, rewardComponentTag.RewardGeometryConfig, AnimationPreference.NoAnimation);
             this.rewardsGrid.AddItem(item2, i);
             i++;
         }
     }
     this.rewardsGrid.RepositionItems();
     this.rewardsGrid.Scroll(0.5f);
 }
示例#10
0
        private bool GetEquipmentShardUIInfoForCurrentItem(out int currentShardAmount, out int increasedShardAmount, out int shardsNeededForLevel, out bool showLevel, out EquipmentVO equipmentVoToDisplay)
        {
            currentShardAmount   = 0;
            increasedShardAmount = 0;
            shardsNeededForLevel = 0;
            equipmentVoToDisplay = null;
            showLevel            = false;
            CrateSupplyVO crateSupply = this.currentCrateItem.CrateSupply;

            if (crateSupply.Type != SupplyType.Shard)
            {
                return(false);
            }
            EquipmentVO equipment = this.currentCrateItem.Equipment;

            if (equipment == null)
            {
                return(false);
            }
            EquipmentUpgradeCatalog equipmentUpgradeCatalog = Service.EquipmentUpgradeCatalog;
            string equipmentID = equipment.EquipmentID;
            int    num         = (!this.shardsOriginal.ContainsKey(equipmentID)) ? 0 : this.shardsOriginal[equipmentID];

            currentShardAmount = num;
            RewardVO reward         = Service.InventoryCrateRewardController.GenerateRewardFromSupply(crateSupply, this.hq);
            int      shardsRewarded = RewardUtils.GetShardsRewarded(reward);
            int      num2           = num + shardsRewarded;

            increasedShardAmount = num2;
            EquipmentVO equipmentVO = equipment;

            showLevel = true;
            if (this.equipmentOriginal.ContainsKey(equipmentID))
            {
                int num3  = this.equipmentOriginal[equipmentID];
                int level = Mathf.Min(num3 + 1, equipmentUpgradeCatalog.GetMaxLevel(equipmentID).Lvl);
                equipmentVoToDisplay = equipmentUpgradeCatalog.GetByLevel(equipment, num3);
                equipmentVO          = equipmentUpgradeCatalog.GetByLevel(equipmentVoToDisplay, level);
            }
            else
            {
                equipmentVoToDisplay = equipmentUpgradeCatalog.GetMinLevel(equipmentVO.EquipmentID);
                equipmentVO          = equipmentVoToDisplay;
                showLevel            = false;
            }
            shardsNeededForLevel = equipmentVO.UpgradeShards;
            return(true);
        }
 private void OnProgressBarOver(UIEvent e)
 {
     if (this.m_rewardText != null)
     {
         this.ShowTooltip();
     }
     else if (this.m_nextLevelReward != null)
     {
         RewardData reward = this.m_nextLevelReward.Reward;
         if (reward != null)
         {
             this.m_rewardText = RewardUtils.GetRewardText(reward);
             this.ShowTooltip();
         }
     }
 }
示例#12
0
        public static bool TrySetupConflictEndedRewardView(List <string> rewardUids, UXLabel label, UXSprite sprite)
        {
            if (rewardUids == null || rewardUids.Count == 0)
            {
                return(false);
            }
            CrateVO optional = Service.Get <IDataController>().GetOptional <CrateVO>(rewardUids[0]);

            if (optional == null)
            {
                return(false);
            }
            string uid = optional.Uid;

            label.Text = LangUtils.GetCrateDisplayName(uid);
            RewardUtils.SetCrateIcon(sprite, optional, AnimState.Closed);
            return(true);
        }
示例#13
0
 private void addBreadCrumbsForReward <TItemDefinition, URewardable, VIdType>(Reward reward, PersistentBreadcrumbTypeDefinitionKey singleBreadcrumbId, StaticBreadcrumbDefinitionKey groupBreadcrumbId) where TItemDefinition : IMemberLocked where URewardable : AbstractListReward <VIdType>
 {
     if (reward.TryGetValue(out URewardable rewardable) && !rewardable.IsEmpty())
     {
         bool           flag = false;
         List <VIdType> list = (List <VIdType>)rewardable.Reward;
         foreach (VIdType item in list)
         {
             if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <TItemDefinition, VIdType>(item))
             {
                 notificationBreadcrumbController.AddPersistentBreadcrumb(singleBreadcrumbId, item.ToString());
                 flag = true;
             }
         }
         if (flag)
         {
             notificationBreadcrumbController.AddBreadcrumb(groupBreadcrumbId);
         }
     }
 }
示例#14
0
        protected override void OnScreenLoaded()
        {
            UXLabel element = base.GetElement <UXLabel>("LabelTitleRewardNotif");

            element.Text = this.lang.Get("CRATE_REWARD_POPUP_TITLE", new object[0]);
            UXSprite element2 = base.GetElement <UXSprite>("SpriteReward");

            RewardUtils.SetCrateIcon(element2, this.targetCrateVO, AnimState.Closed);
            string  crateDisplayName = LangUtils.GetCrateDisplayName(this.targetCrateVO);
            UXLabel element3         = base.GetElement <UXLabel>("LabelRewardDescription");

            element3.Text = this.lang.Get("CRATE_REWARD_POPUP_DESC", new object[]
            {
                crateDisplayName
            });
            UXButton element4 = base.GetElement <UXButton>("BtnPrimary");

            element4.OnClicked = new UXButtonClickedDelegate(this.OnPrimaryButtonClicked);
            UXLabel element5 = base.GetElement <UXLabel>("LabelBtnPrimary");

            element5.Text = this.lang.Get("CRATE_REWARD_POPUP_CTA", new object[0]);
            this.InitButtons();
        }
        private void UpdateElements()
        {
            IDataController dataController = Service.Get <IDataController>();

            if (this.currentOffer != null)
            {
                UXLabel element = base.GetElement <UXLabel>("LabelTitle");
                element.Text = this.lang.Get(this.currentOffer.Title, new object[0]);
                UXLabel element2 = base.GetElement <UXLabel>("LabelDescription");
                element2.Text = this.lang.Get(this.currentOffer.ConfirmationString, new object[0]);
                int i     = 0;
                int count = this.currentOffer.RewardUIDs.Count;
                while (i < count)
                {
                    RewardVO rewardVO = dataController.Get <RewardVO>(this.currentOffer.RewardUIDs[i]);
                    if (!RewardUtils.SetupTargetedOfferCrateRewardDisplay(rewardVO, this.itemLabels[i], this.itemSprites[i]))
                    {
                        List <RewardComponentTag> rewardComponents = RewardUtils.GetRewardComponents(rewardVO);
                        int j      = 0;
                        int count2 = rewardComponents.Count;
                        while (j < count2)
                        {
                            RewardComponentTag rewardComponentTag = rewardComponents[j];
                            this.itemLabels[i].Text = this.lang.Get("AMOUNT_AND_NAME", new object[]
                            {
                                rewardComponentTag.RewardName,
                                rewardComponentTag.Quantity
                            });
                            RewardUtils.SetRewardIcon(this.itemSprites[i], rewardComponentTag.RewardGeometryConfig, AnimationPreference.NoAnimation);
                            j++;
                        }
                    }
                    i++;
                }
                this.confirmButton.Tag = this.currentOffer;
            }
        }
示例#16
0
        public void HandleReceiptVerificationResponse(string uid, string transactionId, string currencyCode, double price, double bonusMultiplier, bool isPromo, string offerUid, CrateData crateData)
        {
            CurrentPlayer        currentPlayer        = Service.CurrentPlayer;
            StaticDataController staticDataController = Service.StaticDataController;
            InAppPurchaseTypeVO  inAppPurchaseTypeVO  = staticDataController.Get <InAppPurchaseTypeVO>(uid);

            if (inAppPurchaseTypeVO.IsPromo)
            {
                isPromo = true;
            }
            bool   flag = !string.IsNullOrEmpty(offerUid);
            string text = inAppPurchaseTypeVO.RewardEmpire;

            if (currentPlayer.Faction == FactionType.Rebel)
            {
                text = inAppPurchaseTypeVO.RewardRebel;
            }
            if (string.IsNullOrEmpty(text) && !flag)
            {
                Service.Logger.Error("MoneyReceiptVerifyResponse:" + inAppPurchaseTypeVO.Uid + " faction specific reward uids do not exist");
                return;
            }
            bool             flag2            = false;
            TargetedBundleVO targetedBundleVO = null;

            if (flag)
            {
                targetedBundleVO = staticDataController.GetOptional <TargetedBundleVO>(offerUid);
                if (targetedBundleVO != null)
                {
                    Service.TargetedBundleController.GrantTargetedBundleRewards(targetedBundleVO);
                    flag2 = true;
                }
                else
                {
                    Service.Logger.Error("MoneyReceiptVerifyResponse: targeted offer " + offerUid + " does not exist");
                }
            }
            else
            {
                RewardVO optional = staticDataController.GetOptional <RewardVO>(text);
                if (optional == null)
                {
                    Service.Logger.Error("MoneyReceiptVerifyResponse:" + text + " does not exist");
                }
                else if (inAppPurchaseTypeVO.CurrencyType.Equals("hard"))
                {
                    RewardUtils.GrantReward(currentPlayer, optional, bonusMultiplier);
                }
                else
                {
                    RewardUtils.GrantInAppPurchaseRewardToHQInventory(optional);
                }
            }
            if (inAppPurchaseTypeVO.ProductId.Contains("promo"))
            {
                isPromo = true;
            }
            int amount;

            if (inAppPurchaseTypeVO.CurrencyType.Equals("hard"))
            {
                amount = (int)Math.Floor(bonusMultiplier * (double)inAppPurchaseTypeVO.Amount);
            }
            else
            {
                amount = inAppPurchaseTypeVO.Amount;
            }
            this.Consume(inAppPurchaseTypeVO.ProductId);
            string     text2             = uid;
            bool       flag3             = false;
            SaleTypeVO currentActiveSale = SaleUtils.GetCurrentActiveSale();

            if (currentActiveSale != null && !isPromo)
            {
                text2 = text2 + "_" + currentActiveSale.Uid;
            }
            if (isPromo)
            {
                text2 += "_promo";
                flag3  = true;
            }
            if (GameConstants.IAP_FORCE_POPUP_ENABLED)
            {
                flag3 = true;
            }
            if (flag2)
            {
                Service.TargetedBundleController.HandleTargetedOfferSuccess(crateData, targetedBundleVO);
            }
            else if (flag3)
            {
                this.ShowRedemptionScreen(amount, uid);
                Service.EventManager.SendEvent(EventId.InAppPurchaseMade, null);
            }
            Service.DMOAnalyticsController.LogPaymentAction(currencyCode, price, inAppPurchaseTypeVO.ProductId, 1, text2);
        }
示例#17
0
 public void InitCampaignGrid()
 {
     this.screen.CurrentBackButton    = this.backButtonChapter;
     this.screen.CurrentBackDelegate  = new UXButtonClickedDelegate(this.OnBackButtonClicked);
     this.campaignSelectGroup.Visible = true;
     if (this.campaignGroupInitialized)
     {
         return;
     }
     this.campaignGroupInitialized = true;
     this.campaignGrid             = this.screen.GetElement <UXGrid>("CampaignGrid");
     this.campaignGrid.SetTemplateItem("CampaignTemplate");
     foreach (CampaignVO current in base.Sdc.GetAll <CampaignVO>())
     {
         if (!current.Timed && current.Faction == base.Player.Faction)
         {
             string    uid       = current.Uid;
             UXElement uXElement = this.campaignGrid.CloneTemplateItem(uid);
             uXElement.Tag = current;
             int     totalCampaignStarsEarned = base.Player.CampaignProgress.GetTotalCampaignStarsEarned(current);
             int     totalMasteryStars        = current.TotalMasteryStars;
             UXLabel subElement = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelCampaignName");
             subElement.Text = LangUtils.GetCampaignTitle(current);
             UXLabel subElement2 = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelChapterDescription");
             subElement2.Text = LangUtils.GetCampaignDescription(current);
             UXLabel subElement3 = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelStarsCount");
             subElement3.Text = base.LangController.Get("LABEL_CAMPAIGN_STARS", new object[]
             {
                 totalCampaignStarsEarned,
                 totalMasteryStars
             });
             UXButton subElement4 = this.campaignGrid.GetSubElement <UXButton>(uid, "ButtonCampaignCard");
             subElement4.Tag       = current;
             subElement4.OnClicked = new UXButtonClickedDelegate(this.OnCampaignItemButtonClicked);
             UXTexture subElement5 = this.campaignGrid.GetSubElement <UXTexture>(uid, "SpriteCampaignImage");
             subElement5.LoadTexture(current.Uid);
             if (!base.Player.CampaignProgress.HasCampaign(current))
             {
                 subElement4.Enabled = false;
             }
             UXSprite subElement6 = this.campaignGrid.GetSubElement <UXSprite>(uid, "SpriteIcoChapterLocked");
             subElement6.Visible = !subElement4.Enabled;
             UXLabel subElement7 = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelChapterNumberSelect");
             this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelChapterReward").Text = base.LangController.Get("s_Rewards", new object[0]);
             subElement7.Text = base.LangController.Get("CHAPTER_NUMBER", new object[]
             {
                 current.UnlockOrder
             });
             UXLabel     subElement8  = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelObjectivesCount");
             UXLabel     subElement9  = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelCampaignComplete");
             UXSprite    subElement10 = this.campaignGrid.GetSubElement <UXSprite>(uid, "SpriteIconCheck");
             UXLabel     subElement11 = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelUnlocks");
             UXSprite    subElement12 = this.campaignGrid.GetSubElement <UXSprite>(uid, "SpriteChapterRewardItem");
             UXLabel     subElement13 = this.campaignGrid.GetSubElement <UXLabel>(uid, "LabelChapterRewarded");
             int         totalCampaignMissionsCompleted = base.Player.CampaignProgress.GetTotalCampaignMissionsCompleted(current);
             int         totalMissions = current.TotalMissions;
             IGeometryVO config        = null;
             RewardType  rewardType    = RewardType.Invalid;
             base.RManager.GetFirstRewardAssetName(current.Reward, ref rewardType, out config);
             RewardUtils.SetRewardIcon(subElement12, config, AnimationPreference.NoAnimation);
             if (totalCampaignMissionsCompleted > 0 && totalCampaignMissionsCompleted == totalMissions)
             {
                 subElement8.Visible = false;
                 subElement9.Text    = base.LangController.Get("LABEL_CAMPAIGN_COMPLETE", new object[0]);
                 subElement11.Text   = base.RManager.GetRewardString(current.Reward);
                 bool flag = totalCampaignStarsEarned >= totalMasteryStars;
                 subElement13.Visible = flag;
                 subElement12.Visible = !flag;
                 subElement11.Visible = !flag;
             }
             else
             {
                 subElement9.Visible  = false;
                 subElement10.Visible = false;
                 subElement8.Text     = base.LangController.Get("LABEL_CAMPAIGN_MISSIONS", new object[]
                 {
                     totalCampaignMissionsCompleted,
                     totalMissions
                 });
                 subElement11.Text = base.RManager.GetRewardString(current.Reward);
             }
             UXSlider subElement14 = this.campaignGrid.GetSubElement <UXSlider>(uid, "ChapterPbar");
             subElement14.Value = ((totalMissions != 0) ? ((float)totalCampaignMissionsCompleted / (float)totalMissions) : 0f);
             this.campaignGrid.AddItem(uXElement, current.UnlockOrder);
         }
     }
     this.campaignGrid.RepositionItems();
 }
        private void AddTier(TournamentTierVO tierVO, bool isCurrent, int order, Dictionary <string, TournamentRewardsVO> tierRewardMap)
        {
            if (!tierRewardMap.ContainsKey(tierVO.Uid))
            {
                Service.Get <StaRTSLogger>().ErrorFormat("There is no reward found for tier {0}", new object[]
                {
                    tierVO.Uid
                });
                return;
            }
            string    uid        = tierVO.Uid;
            UXElement item       = this.tierGrid.CloneTemplateItem(uid);
            UXElement subElement = this.tierGrid.GetSubElement <UXElement>(uid, "CurrentLeague");

            subElement.Visible = isCurrent;
            if (isCurrent && this.currentPlayerRank != null)
            {
                string  id          = (TimedEventUtils.GetState(this.currentTournamentVO) == TimedEventState.Live) ? "CONFLICT_CURRENT_PERCENTILE" : "CONFLICT_FINAL_PERCENTILE";
                UXLabel subElement2 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelCurrentLeague");
                subElement2.Text = this.lang.Get(id, new object[]
                {
                    Math.Round(this.currentPlayerRank.Percentile, 2)
                });
            }
            float   percentage  = tierVO.Percentage;
            UXLabel subElement3 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelRequirements");

            if (percentage < 100f)
            {
                subElement3.Text = this.lang.Get("CONFLICT_TIER_REQ_PERCENTAGE", new object[]
                {
                    percentage
                });
            }
            else
            {
                subElement3.Text = this.lang.Get("CONFLICT_TIER_REQ_ANY", new object[0]);
            }
            UXLabel subElement4 = this.tierGrid.GetSubElement <UXLabel>(uid, "LabelLeagueLevel");

            subElement4.Text = this.lang.Get(tierVO.RankName, new object[0]);
            if (tierVO.Division != null)
            {
                string text = this.lang.Get(tierVO.Division, new object[0]);
                if (!string.IsNullOrEmpty(text) && text.Trim().get_Length() != 0)
                {
                    UXLabel expr_1A0 = subElement4;
                    expr_1A0.Text = expr_1A0.Text + " - " + text;
                }
            }
            UXSprite subElement5 = this.tierGrid.GetSubElement <UXSprite>(uid, "SpriteLeagueIcon");

            subElement5.SpriteName = Service.Get <TournamentController>().GetTierIconName(tierVO);
            TournamentRewardsVO tournamentRewardsVO = tierRewardMap[tierVO.Uid];
            UXGrid        subElement6   = this.tierGrid.GetSubElement <UXGrid>(uid, "GridRewardCards");
            StringBuilder stringBuilder = new StringBuilder(" (");

            stringBuilder.Append(uid);
            stringBuilder.Append(")");
            string text2 = stringBuilder.ToString();

            subElement6.SetTemplateItem("EquipmentItemCard" + text2);
            CrateVO optional = Service.Get <IDataController>().GetOptional <CrateVO>(tournamentRewardsVO.CrateRewardIds[0]);

            if (optional != null)
            {
                IDataController          dataController = Service.Get <IDataController>();
                List <CrateFlyoutItemVO> list           = new List <CrateFlyoutItemVO>();
                CurrentPlayer            currentPlayer  = Service.Get <CurrentPlayer>();
                string[] array = (currentPlayer.Faction == FactionType.Empire) ? optional.FlyoutEmpireItems : optional.FlyoutRebelItems;
                if (array != null)
                {
                    int i   = 0;
                    int num = array.Length;
                    while (i < num)
                    {
                        string            text3     = array[i];
                        CrateFlyoutItemVO optional2 = dataController.GetOptional <CrateFlyoutItemVO>(text3);
                        if (optional2 == null)
                        {
                            Service.Get <StaRTSLogger>().ErrorFormat("CrateInfoModalScreen: FlyoutItemVO Uid {0} not found", new object[]
                            {
                                text3
                            });
                        }
                        else
                        {
                            bool flag = UXUtils.ShouldDisplayCrateFlyoutItem(optional2, CrateFlyoutDisplayType.TournamentTier);
                            if (flag)
                            {
                                PlanetVO optional3      = dataController.GetOptional <PlanetVO>(this.currentTournamentVO.PlanetId);
                                int      currentHqLevel = currentPlayer.Map.FindHighestHqLevel();
                                bool     flag2          = UXUtils.IsValidRewardItem(optional2, optional3, currentHqLevel);
                                if (flag2 && (!optional2.ReqArmory || ArmoryUtils.PlayerHasArmory()) && list.Count <= 5)
                                {
                                    list.Add(optional2);
                                    string    uid2      = optional2.Uid;
                                    UXElement uXElement = subElement6.CloneTemplateItem(uid2);
                                    this.SetupCrateReward(uid2, tournamentRewardsVO, subElement6, uXElement, text2, optional2);
                                    subElement6.AddItem(uXElement, i);
                                }
                            }
                        }
                        i++;
                    }
                }
                else
                {
                    Service.Get <StaRTSLogger>().ErrorFormat("There is no crate data for {0}", new object[]
                    {
                        tournamentRewardsVO.CrateRewardIds[0]
                    });
                }
                UXSprite subElement7 = subElement6.GetSubElement <UXSprite>(uid, "SpriteSupplyPrize");
                RewardUtils.SetCrateIcon(subElement7, optional, AnimState.Closed);
                UXButton subElement8 = subElement6.GetSubElement <UXButton>(uid, "BtnConflictPrize");
                subElement8.OnClicked = new UXButtonClickedDelegate(this.OnCrateClicked);
                subElement8.Tag       = optional.Uid;
                UXLabel subElement9 = subElement6.GetSubElement <UXLabel>(uid, "LabelPrize");
                subElement9.Text = this.lang.Get("CONFLICT_PRIZE_CRATE", new object[]
                {
                    LangUtils.GetCrateDisplayName(optional)
                });
                UXLabel subElement10 = subElement6.GetSubElement <UXLabel>(uid, "LabelPrizeNumber");
                if (tournamentRewardsVO.CrateRewardIds.Length > 1)
                {
                    subElement10.Text = this.lang.Get("CONFLICT_PRIZE_CRATE_MULTIPLIER", new object[]
                    {
                        tournamentRewardsVO.CrateRewardIds.Length
                    });
                }
                else
                {
                    subElement10.Visible = false;
                    subElement6.GetSubElement <UXElement>(uid, "SpritePrizeNumberShadow").Visible = false;
                }
            }
            this.tierGrid.AddItem(item, order);
        }
示例#19
0
        private UXElement CreateInventoryGridItem(string id, PrizeType prizeType, string title, string description, int count, IGeometryVO vo, int quality)
        {
            PrizeInventoryItemTag prizeInventoryItemTag = new PrizeInventoryItemTag();
            UXElement             uXElement             = this.itemGrid.CloneTemplateItem(id);

            prizeInventoryItemTag.TileElement = uXElement;
            prizeInventoryItemTag.PrizeID     = id;
            prizeInventoryItemTag.PrizeType   = prizeType;
            uXElement.Tag = prizeInventoryItemTag;
            this.SetupGridItemQuality(id, quality);
            prizeInventoryItemTag.MainElement = this.itemGrid.GetSubElement <UXElement>(id, "ItemInfo");
            UXLabel subElement = this.itemGrid.GetSubElement <UXLabel>(id, "LabelName");

            subElement.Text = title;
            UXButton subElement2 = this.itemGrid.GetSubElement <UXButton>(id, "BtnItemInfo");

            prizeInventoryItemTag.InfoLabel = this.itemGrid.GetSubElement <UXLabel>(id, "LabelItemInfo");
            if (!string.IsNullOrEmpty(description) && prizeType != PrizeType.None)
            {
                prizeInventoryItemTag.InfoLabel.Text = description;
                subElement2.Visible   = true;
                subElement2.OnClicked = new UXButtonClickedDelegate(this.OnInfoButtonClicked);
                subElement2.Tag       = prizeInventoryItemTag;
            }
            else
            {
                subElement2.Visible = false;
            }
            prizeInventoryItemTag.CountLabel = this.itemGrid.GetSubElement <UXLabel>(id, "LabelItemCount");
            UXSprite subElement3 = this.itemGrid.GetSubElement <UXSprite>(id, "SpriteItemImage");

            if (prizeType == PrizeType.None)
            {
                RewardUtils.SetCrateIcon(subElement3, (CrateVO)vo, AnimState.Idle);
            }
            else if (prizeType == PrizeType.Crate)
            {
                RewardUtils.SetCrateIcon(subElement3, (CrateVO)vo, AnimState.Closed);
            }
            else
            {
                RewardUtils.SetRewardIcon(subElement3, vo, AnimationPreference.NoAnimation);
            }
            prizeInventoryItemTag.IconAssetName = vo.IconAssetName;
            UXButton subElement4 = this.itemGrid.GetSubElement <UXButton>(id, "InventoryCard");

            subElement4.OnClicked = new UXButtonClickedDelegate(this.OnTileClicked);
            subElement4.Tag       = prizeInventoryItemTag;
            this.itemGrid.GetSubElement <UXElement>(id, "CountAndBuildTime").Visible = true;
            this.itemGrid.GetSubElement <UXElement>(id, "ContainerJewelNew").Visible = false;
            UXLabel subElement5 = this.itemGrid.GetSubElement <UXLabel>(id, "LabelItemExpiration");
            UXLabel subElement6 = this.itemGrid.GetSubElement <UXLabel>(id, "LabelCurrencyAmount");

            subElement6.Visible = false;
            if (prizeType == PrizeType.None)
            {
                prizeInventoryItemTag.CountLabel.Visible = false;
                subElement5.Visible = false;
                subElement6.Text    = description;
                subElement6.Visible = true;
            }
            else if (prizeType == PrizeType.Crate)
            {
                prizeInventoryItemTag.CountLabel.Visible = false;
                CrateData crateData = this.cp.Prizes.Crates.Available[id];
                subElement5.Visible = true;
                UXUtils.SetCrateExpirationTimerLabel(crateData, subElement5, this.lang);
                if (!string.IsNullOrEmpty(crateData.PlanetId))
                {
                    PlanetVO  planetVO    = Service.StaticDataController.Get <PlanetVO>(crateData.PlanetId);
                    UXTexture subElement7 = this.itemGrid.GetSubElement <UXTexture>(id, "TexturePlanet");
                    subElement7.LoadTexture(planetVO.LeaderboardTileTexture);
                }
                if (this.crateTabLastViewedTime < crateData.ReceivedTimeStamp)
                {
                    this.itemGrid.GetSubElement <UXElement>(id, "ContainerJewelNew").Visible = true;
                    this.itemGrid.GetSubElement <UXLabel>(id, "LabelMessageCountNew").Text   = this.lang.Get("CRATE_INVENTORY_CRATE_NEW_BADGE", new object[0]);
                }
                subElement4.Tag = prizeInventoryItemTag;
            }
            else
            {
                prizeInventoryItemTag.CountLabel.Text    = string.Format("x{0}", count);
                prizeInventoryItemTag.CountLabel.Visible = true;
                subElement5.Visible = false;
            }
            this.itemGrid.GetSubElement <UXLabel>(id, "LabelItemInfo").Visible        = false;
            this.itemGrid.GetSubElement <UXLabel>(id, "LabelItemRequirement").Visible = false;
            this.itemGrid.GetSubElement <UXSprite>(id, "SpriteItemTimeIcon").Visible  = false;
            this.itemGrid.GetSubElement <UXLabel>(id, "LabelBuildTime").Visible       = false;
            uXElement.Tag = prizeInventoryItemTag;
            return(uXElement);
        }
示例#20
0
        protected override void OnScreenLoaded()
        {
            base.InitAnimator();
            string  crateDisplayName = LangUtils.GetCrateDisplayName(this.targetCrateVO);
            UXLabel element          = base.GetElement <UXLabel>("LabelCrateTitle");

            element.Text = crateDisplayName;
            UXSprite element2 = base.GetElement <UXSprite>("SpriteCrateImage");

            RewardUtils.SetCrateIcon(element2, this.targetCrateVO, AnimState.Idle);
            UXLabel element3 = base.GetElement <UXLabel>("LabelRewardsListTitle");

            element3.Text = this.lang.Get("CRATE_FLYOUT_LIST_TITLE", new object[0]);
            UXButton element4 = base.GetElement <UXButton>("BtnCloseCrateInfo");

            element4.OnClicked = new UXButtonClickedDelegate(this.OnCloseCrateInfoButtonClicked);
            UXLabel element5 = base.GetElement <UXLabel>("LabelCratePullAmt");
            int     num      = this.targetCrateVO.SupplyPoolUIDs.Length;

            element5.Text = this.lang.Get("CRATE_FLYOUT_REWARD_COUNT", new object[]
            {
                num
            });
            UXElement element6 = base.GetElement <UXElement>("ContainerCrateCircle");
            UXElement element7 = base.GetElement <UXElement>("ContainerCrateCircleSpecial");

            element7.Visible     = (this.targetLEIVO != null);
            element6.Visible     = !element7.Visible;
            this.labelRewardType = base.GetElement <UXLabel>("LabelRewardTypePreview");
            this.InitPlanetUI();
            this.InitExpirationLabel();
            this.labelRewardChance     = base.GetElement <UXLabel>("LabelChanceTitle");
            this.labelRewardName       = base.GetElement <UXLabel>("LabelRewardNamePreview");
            this.labelRewardAmt        = base.GetElement <UXLabel>("LabelRewardAmt");
            this.spriteRewardIcon      = base.GetElement <UXSprite>("SpriteRewardIcon");
            this.spriteRewardImage     = base.GetElement <UXSprite>("SpriteRewardItemImage");
            this.btnCurrencyLabel      = base.GetElement <UXLabel>("LabelBtnPayCenteredCurrency");
            this.btnCurrencySprite     = base.GetElement <UXSprite>("SpriteBtnPayCenteredCurrency");
            this.discountGroup         = base.GetElement <UXElement>("GroupDiscountBadge");
            this.discountGroup.Visible = false;
            this.InitRewardsGrid();
            base.SetTrigger("Show");
            if (this.filteredFlyoutItems.Count > 0)
            {
                this.SelectRowItemAtIndex(0);
                this.AutoScrollFlyoutRowItem();
            }
            if (this.ModalReason == CrateInfoReason.Reason_Targeted_Offer)
            {
                this.SetupTargetedOfferElements();
                this.discountGroup.Visible = true;
                UXLabel element8 = base.GetElement <UXLabel>("LabelValueStatement");
                UXLabel element9 = base.GetElement <UXLabel>("LabelValueStatement2");
                element8.Text = this.lang.Get("PERCENTAGE", new object[]
                {
                    this.CurrentOffer.Discount.ToString()
                });
                element9.Text = this.lang.Get("TARGETED_BUNDLE_DISCOUNT", new object[0]);
            }
            this.InitCTAUI();
            Service.Get <EventManager>().SendEvent(EventId.ObjectiveCrateInfoScreenOpened, null);
        }
        public async Task <IActionResult> Post(int x, int y)
        {
            string authtoken = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var    stream    = new StreamReader(Request.Body);
            var    body      = await stream.ReadToEndAsync();


            var req = JsonConvert.DeserializeObject <TappableRequest>(body);


            Random random = new Random();

            var type = StateSingleton.Instance.activeTappableTypes[req.id];
            List <List <string> > availableDropSets = null;

            try
            {
                availableDropSets = StateSingleton.Instance.tappableData[type];
            }
            catch (Exception e)
            {
                Log.Error("[Tappables] no json file for tappable type" + type + " exists in data/tappables. Using backup of dirt (f0617d6a-c35a-5177-fcf2-95f67d79196d)");
                availableDropSets = new List <List <string> >();
                availableDropSets.Add(new List <string>()
                {
                    "f0617d6a-c35a-5177-fcf2-95f67d79196d"
                });                 //dirt for you... sorry :/
            }

            if (availableDropSets == null)
            {
                Log.Error($"[Tappables] No drop sets for {type}!");
            }

            var targetDropSet = availableDropSets[random.Next(0, availableDropSets.Count)];

            if (targetDropSet == null)
            {
                Log.Error($"[Tappables] targetDropSet is null! Available drop set count was {availableDropSets.Count}");
            }

            var rewards = new RewardComponent[targetDropSet.Count];

            for (int i = 0; i < targetDropSet.Count; i++)
            {
                rewards[i] = new RewardComponent()
                {
                    Amount = random.Next(1, 3), Id = new Guid(targetDropSet[i])
                };
            }

            var response = new TappableResponse()
            {
                result = new TappableResponse.Result()
                {
                    token = new Token()
                    {
                        clientProperties = new Dictionary <string, string>(),
                        clientType       = "redeemtappable",
                        lifetime         = "Persistent",
                        rewards          = new Rewards()
                        {
                            ExperiencePoints = 400, Inventory = rewards
                        }
                    }
                }
            };

            response.updates        = RewardUtils.RedeemRewards(authtoken, response.result.token.rewards);
            response.result.updates = response.updates;

            return(Content(JsonConvert.SerializeObject(response), "application/json"));
        }
示例#22
0
        public static void TrySetupConflictItemRewardView(TournamentRewardsVO rewardGroup, UXLabel prizeLabel, UXSprite iconSprite, UXSprite crateSprite, UXElement basicElement, UXElement advancedElement, UXElement eliteElement, UXLabel crateCountLabel, UXSprite dataFragIcon, UXLabel optionalUnitName)
        {
            IDataController dataController = Service.Get <IDataController>();
            CurrentPlayer   currentPlayer  = Service.Get <CurrentPlayer>();
            string          text           = string.Empty;
            FactionType     faction        = currentPlayer.Faction;

            if (faction != FactionType.Empire)
            {
                if (faction == FactionType.Rebel)
                {
                    text = rewardGroup.RebelGuaranteedReward;
                }
            }
            else
            {
                text = rewardGroup.EmpireGuaranteedReward;
            }
            CrateSupplyVO optional = dataController.GetOptional <CrateSupplyVO>(text);
            Lang          lang     = Service.Get <Lang>();

            if (optional != null)
            {
                UXUtils.TrySetupItemQualityView(optional, basicElement, advancedElement, eliteElement, null);
                int         num = currentPlayer.Map.FindHighestHqLevel();
                IGeometryVO iconVOFromCrateSupply = GameUtils.GetIconVOFromCrateSupply(optional, num);
                if (iconVOFromCrateSupply != null)
                {
                    ProjectorConfig projectorConfig = ProjectorUtils.GenerateGeometryConfig(iconVOFromCrateSupply, iconSprite, true);
                    projectorConfig.AnimPreference = AnimationPreference.AnimationPreferred;
                    ProjectorUtils.GenerateProjector(projectorConfig);
                }
                else
                {
                    Service.Get <StaRTSLogger>().ErrorFormat("Could not generate geometry for crate supply {0}", new object[]
                    {
                        optional.Uid
                    });
                }
                if (iconVOFromCrateSupply != null)
                {
                    int shardQualityNumeric = GameUtils.GetShardQualityNumeric(optional);
                    if (shardQualityNumeric > -1)
                    {
                        dataFragIcon.SpriteName = string.Format("icoDataFragQ{0}", new object[]
                        {
                            shardQualityNumeric
                        });
                        dataFragIcon.Visible = true;
                    }
                    else
                    {
                        dataFragIcon.Visible = false;
                    }
                }
                InventoryCrateRewardController inventoryCrateRewardController = Service.Get <InventoryCrateRewardController>();
                int rewardAmount = inventoryCrateRewardController.GetRewardAmount(optional, num);
                if (rewardAmount > 1)
                {
                    string text2 = lang.ThousandsSeparated(rewardAmount);
                    prizeLabel.Text = lang.Get("CONFLICT_PRIZE_CRATE_MULTIPLIER", new object[]
                    {
                        text2
                    });
                }
                else
                {
                    prizeLabel.Visible = false;
                }
                if (optionalUnitName != null)
                {
                    optionalUnitName.Text = inventoryCrateRewardController.GetCrateSupplyRewardName(optional);
                }
            }
            else
            {
                Service.Get <StaRTSLogger>().ErrorFormat("Could not find crate supply {0} for faction {1}", new object[]
                {
                    text,
                    currentPlayer.Faction
                });
            }
            if (crateCountLabel != null)
            {
                crateCountLabel.Visible = false;
            }
            string[] crateRewardIds = rewardGroup.CrateRewardIds;
            CrateVO  crateVO        = null;

            if (crateRewardIds != null)
            {
                if (crateRewardIds.Length != 0)
                {
                    crateVO = dataController.GetOptional <CrateVO>(rewardGroup.CrateRewardIds[0]);
                }
                if (crateCountLabel != null && crateRewardIds.Length > 1)
                {
                    crateCountLabel.Visible = true;
                    crateCountLabel.Text    = lang.Get("CONFLICT_PRIZE_CRATE_MULTIPLIER", new object[]
                    {
                        crateRewardIds.Length
                    });
                }
            }
            if (crateVO != null)
            {
                RewardUtils.SetCrateIcon(crateSprite, crateVO, AnimState.Idle);
                return;
            }
            Service.Get <StaRTSLogger>().ErrorFormat("Missing crate reward meta data for tournament reward:{0}", new object[]
            {
                rewardGroup.Uid
            });
        }
示例#23
0
        public void InitCampaignDetailScreen()
        {
            UXLabel element = this.screen.GetElement <UXLabel>("LabelCampaignDescription");

            element.Text = LangUtils.GetCampaignDescription(this.selectedCampaign);
            this.campaignDescriptionGroup         = this.screen.GetElement <UXElement>("ContainerChapterDescription");
            this.campaignDescriptionGroup.Visible = false;
            UXButton element2 = this.screen.GetElement <UXButton>("BtnChapterInfo");

            element2.OnClicked = new UXButtonClickedDelegate(this.OnCampaignInfoButtonClicked);
            UXLabel element3 = this.screen.GetElement <UXLabel>("LabelCampaigns");

            element3.Text = base.LangController.Get("s_ViewAllChapters", new object[0]);
            UXLabel element4 = this.screen.GetElement <UXLabel>("LabelDetailsTitle");

            element4.Text                 = LangUtils.GetCampaignTitle(this.selectedCampaign);
            this.missionCountdown         = this.screen.GetElement <UXLabel>("Countdown");
            this.missionCountdown.Visible = false;
            UXButton element5 = this.screen.GetElement <UXButton>("BtnViewCampaignRewards");

            element5.Visible                     = false;
            this.campaignDetailsTimeLeft         = this.screen.GetElement <UXElement>("CampaignDetailsTimeLeft");
            this.campaignDetailsTimeLeft.Visible = false;
            int     totalCampaignStarsEarned = base.Player.CampaignProgress.GetTotalCampaignStarsEarned(this.selectedCampaign);
            UXLabel element6 = this.screen.GetElement <UXLabel>("LabelStarsCountDetails");

            element6.Text = base.LangController.Get("LABEL_CAMPAIGN_STARS", new object[]
            {
                totalCampaignStarsEarned,
                this.selectedCampaign.TotalMasteryStars
            });
            UXSprite    element7   = this.screen.GetElement <UXSprite>("SpriteMasteryReward");
            RewardType  rewardType = RewardType.Invalid;
            IGeometryVO config;

            base.RManager.GetFirstRewardAssetName(this.selectedCampaign.Reward, ref rewardType, out config);
            RewardUtils.SetRewardIcon(element7, config, AnimationPreference.NoAnimation);
            int     totalCampaignMissionsCompleted = base.Player.CampaignProgress.GetTotalCampaignMissionsCompleted(this.selectedCampaign);
            UXLabel element8 = this.screen.GetElement <UXLabel>("LabelObjectivesCount");

            element8.Text = base.LangController.Get("LABEL_CAMPAIGN_DETAIL_MISSIONS", new object[]
            {
                totalCampaignMissionsCompleted,
                this.selectedCampaign.TotalMissions
            });
            UXLabel element9 = this.screen.GetElement <UXLabel>("LabelUnlocksDetails");

            if (totalCampaignMissionsCompleted > 0 && totalCampaignMissionsCompleted == this.selectedCampaign.TotalMissions)
            {
                element9.Text = base.RManager.GetRewardString(this.selectedCampaign.Reward);
                if (totalCampaignStarsEarned == this.selectedCampaign.TotalMasteryStars)
                {
                    element9.TextColor = PlanetDetailsMissionViewModule.COMPLETION_COLOR;
                }
            }
            else
            {
                element9.Text = base.RManager.GetRewardString(this.selectedCampaign.Reward);
            }
            UXTexture element10 = this.screen.GetElement <UXTexture>("SpriteCampaignImageLarge");

            element10.LoadTexture(this.selectedCampaign.Uid);
            this.screen.GetElement <UXElement>("MasteryProgress").Visible = true;
            this.screen.GetElement <UXElement>("MasteryReward").Visible   = true;
            this.allChaptersButton.Visible = true;
            this.InitMissionGrid();
        }
示例#24
0
    private void addBreadcrumbsForReward(Reward reward)
    {
        addBreadCrumbsForReward <PropDefinition, DurableReward, int>(reward, breadcrumbIdentifiers.GearType, breadcrumbIdentifiers.Gear);
        addBreadCrumbsForReward <TemplateDefinition, EquipmentTemplateReward, int>(reward, breadcrumbIdentifiers.TemplateType, breadcrumbIdentifiers.Template);
        addBreadCrumbsForReward <FabricDefinition, FabricReward, int>(reward, breadcrumbIdentifiers.FabricType, breadcrumbIdentifiers.Fabric);
        addBreadCrumbsForReward <DecalDefinition, DecalReward, int>(reward, breadcrumbIdentifiers.DecalType, breadcrumbIdentifiers.Decal);
        addBreadCrumbsForReward <TubeDefinition, TubeReward, int>(reward, breadcrumbIdentifiers.TubeType, breadcrumbIdentifiers.Tube);
        addBreadCrumbsForReward <DecorationDefinition, DecorationReward, int>(reward, breadcrumbIdentifiers.DecorationType, breadcrumbIdentifiers.Decoration);
        addBreadCrumbsForReward <StructureDefinition, StructureReward, int>(reward, breadcrumbIdentifiers.StructureType, breadcrumbIdentifiers.Structure);
        addBreadCrumbsForReward <MusicTrackDefinition, MusicTrackReward, int>(reward, breadcrumbIdentifiers.MusicTrackType, breadcrumbIdentifiers.MusicTrack);
        addBreadCrumbsForReward <LightingDefinition, LightingReward, int>(reward, breadcrumbIdentifiers.LightingType, breadcrumbIdentifiers.Lighting);
        if (reward.TryGetValue(out EquipmentInstanceReward rewardable) && !rewardable.IsEmpty())
        {
            bool flag = false;
            for (int i = 0; i < rewardable.EquipmentInstances.Count; i++)
            {
                if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <TemplateDefinition, int>(rewardable.EquipmentInstances[i].definitionId))
                {
                    NotificationBreadcrumbController      obj           = notificationBreadcrumbController;
                    PersistentBreadcrumbTypeDefinitionKey inventoryType = breadcrumbIdentifiers.InventoryType;
                    long equipmentId = rewardable.EquipmentInstances[i].equipmentId;
                    obj.AddPersistentBreadcrumb(inventoryType, equipmentId.ToString());
                    flag = true;
                }
            }
            if (flag)
            {
                notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.Inventory);
            }
        }
        if (!reward.TryGetValue(out ConsumableInstanceReward rewardable2) || rewardable2.IsEmpty())
        {
            return;
        }
        Dictionary <string, int> .Enumerator enumerator = rewardable2.Consumables.GetEnumerator();
        bool flag2 = false;
        bool flag3 = false;

        while (enumerator.MoveNext())
        {
            if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <PropDefinition, int>(RewardUtils.GetConsumableIdByServerName(enumerator.Current.Key)))
            {
                PersistentBreadcrumbTypeDefinitionKey type;
                if (RewardUtils.IsConsumablePartyGame(enumerator.Current.Key))
                {
                    type  = breadcrumbIdentifiers.PartyGameType;
                    flag3 = true;
                }
                else
                {
                    type  = breadcrumbIdentifiers.ConsumableType;
                    flag2 = true;
                }
                notificationBreadcrumbController.AddPersistentBreadcrumb(type, RewardUtils.GetConsumableIdByServerName(enumerator.Current.Key).ToString());
            }
        }
        if (flag2)
        {
            notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.Consumable);
        }
        if (flag3)
        {
            notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.PartyGame);
        }
    }
示例#25
0
        private void UpdateElements()
        {
            StaticDataController     staticDataController     = Service.StaticDataController;
            TargetedBundleController targetedBundleController = Service.TargetedBundleController;

            this.currentOffer = targetedBundleController.CurrentTargetedOffer;
            if (this.currentOffer != null)
            {
                UXLabel element = base.GetElement <UXLabel>("LabelTitle");
                element.Text = this.lang.Get(this.currentOffer.Title, new object[0]);
                UXLabel element2 = base.GetElement <UXLabel>("LabelDescription");
                element2.Text = this.lang.Get(this.currentOffer.Description, new object[0]);
                TextureVO optional = staticDataController.GetOptional <TextureVO>("gui_textures_promotional");
                if (optional != null)
                {
                    UXTexture element3 = base.GetElement <UXTexture>("TexturePromoArt");
                    element3.LoadTexture(optional.AssetName);
                }
                optional = staticDataController.GetOptional <TextureVO>("targeted_bundle_entry");
                if (optional != null)
                {
                    UXTexture element4 = base.GetElement <UXTexture>("TextureEnvironmentEntry");
                    element4.LoadTexture(optional.AssetName);
                }
                optional = staticDataController.GetOptional <TextureVO>("targeted_bundle_treads");
                if (optional != null)
                {
                    UXTexture element5 = base.GetElement <UXTexture>("TextureEnvironmentRight");
                    element5.LoadTexture(optional.AssetName);
                }
                optional = staticDataController.GetOptional <TextureVO>("targeted_bundle_treads");
                if (optional != null)
                {
                    UXTexture element6 = base.GetElement <UXTexture>("TextureEnvironmentLeft");
                    element6.LoadTexture(optional.AssetName);
                }
                optional = staticDataController.GetOptional <TextureVO>("targeted_bundle_dust");
                if (optional != null)
                {
                    UXTexture element7 = base.GetElement <UXTexture>("TextureEnvironmentDustRight");
                    element7.LoadTexture(optional.AssetName);
                    element7 = base.GetElement <UXTexture>("TextureEnvironmentDustLeft");
                    element7.LoadTexture(optional.AssetName);
                }
                int i     = 0;
                int count = this.currentOffer.RewardUIDs.Count;
                while (i < count)
                {
                    RewardVO rewardVO = staticDataController.Get <RewardVO>(this.currentOffer.RewardUIDs[i]);
                    if (!RewardUtils.SetupTargetedOfferCrateRewardDisplay(rewardVO, this.itemLabels[i], this.itemSprites[i]))
                    {
                        List <RewardComponentTag> rewardComponents = RewardUtils.GetRewardComponents(rewardVO);
                        int j      = 0;
                        int count2 = rewardComponents.Count;
                        while (j < count2)
                        {
                            RewardComponentTag rewardComponentTag = rewardComponents[j];
                            this.itemLabels[i].Text = this.lang.Get("AMOUNT_AND_NAME", new object[]
                            {
                                rewardComponentTag.RewardName,
                                rewardComponentTag.Quantity
                            });
                            RewardUtils.SetRewardIcon(this.itemSprites[i], rewardComponentTag.RewardGeometryConfig, AnimationPreference.AnimationAlways);
                            j++;
                        }
                    }
                    i++;
                }
                if (targetedBundleController.IsCurrencyCostOffer(this.currentOffer))
                {
                    this.SetupCurrencyCostOffer(this.currentOffer);
                }
                else
                {
                    this.SetupIAPLinkedOffer(this.currentOffer);
                }
                UXUtils.SetupAnimatedCharacter(this.characterSprite1, this.currentOffer.Character1Image, ref this.charGeometry1);
                UXUtils.SetupAnimatedCharacter(this.characterSprite2, this.currentOffer.Character2Image, ref this.charGeometry2);
                uint serverTime = Service.ServerAPI.ServerTime;
                this.timeRemaining   = (int)(targetedBundleController.OfferExpiresAt - serverTime);
                this.timerLabel.Text = this.lang.Get("expires_in", new object[]
                {
                    GameUtils.GetTimeLabelFromSeconds(this.timeRemaining)
                });
                this.valueLabel.Text = this.lang.Get("PERCENTAGE", new object[]
                {
                    this.currentOffer.Discount.ToString()
                });
                this.value2Label.Text = this.lang.Get("TARGETED_BUNDLE_DISCOUNT", new object[]
                {
                    this.currentOffer.Discount.ToString()
                });
            }
            else
            {
                Service.Logger.Error("No current offer available for targeted bundle screen");
            }
        }
 public void LoadItem(RewardCategory rewardCategory, DReward rewardData, bool allowMemberLockOverlay = false, bool showItemName = false)
 {
     this.rewardCategory = rewardCategory;
     this.rewardData     = rewardData;
     if (rewardCategory == RewardCategory.fabrics)
     {
         loadItemIconContainer(fabricIconKey);
     }
     else if (rewardCategory == RewardCategory.partySupplies || rewardCategory == RewardCategory.consumables || rewardCategory == RewardCategory.musicTracks || rewardCategory == RewardCategory.iglooSlots || rewardCategory == RewardCategory.decorationInstances || rewardCategory == RewardCategory.decorationPurchaseRights || rewardCategory == RewardCategory.structureInstances || rewardCategory == RewardCategory.structurePurchaseRights)
     {
         loadItemIconContainer(prefabIconKey);
     }
     else
     {
         loadItemIconContainer(itemIconKey);
     }
     if (allowMemberLockOverlay)
     {
         object obj = rewardData.UnlockID;
         if (obj == null)
         {
             obj = rewardData.EquipmentRequest.definitionId;
         }
         bool flag = Service.Get <CPDataEntityCollection>().IsLocalPlayerMember() || !RewardUtils.IsRewardMemberOnly(rewardCategory, obj);
         MemberLockOverlay.SetActive(!flag);
     }
     this.showItemName = showItemName;
 }