private void showNextReward()
    {
        ClaimableRewardData claimableRewardData = rewardsToShow.Dequeue();

        ShowRewardPopup.Builder builder = new ShowRewardPopup.Builder(DRewardPopup.RewardPopupType.generic, claimableRewardData.Reward).setRewardSource("ClaimableReward");
        builder.setHeaderText(claimableRewardData.RewardTitle);
        ShowRewardPopup showRewardPopup = builder.Build();

        showRewardPopup.Execute();
        Service.Get <ICPSwrveService>().Action("game.marketing_promotion", claimableRewardData.RewardTitle);
    }
    private bool onClaimedReward(RewardServiceEvents.ClaimedReward evt)
    {
        int num = rewardsToClaimById.Dequeue();
        ClaimableRewardDefinition claimableRewardDefinition = this.claimableRewardDefinition[num];
        ClaimableRewardData       item = new ClaimableRewardData(claimableRewardDefinition.TitleToken, claimableRewardDefinition.Reward.ToReward());

        rewardsToShow.Enqueue(item);
        ClaimedRewardIdsData claimedRewardIdsData = dataEntityCollection.GetComponent <ClaimedRewardIdsData>(dataEntityCollection.LocalPlayerHandle);

        if (claimedRewardIdsData == null)
        {
            claimedRewardIdsData = dataEntityCollection.AddComponent <ClaimedRewardIdsData>(dataEntityCollection.LocalPlayerHandle);
        }
        claimedRewardIdsData.RewardIds.Add(num);
        claimNextReward();
        return(false);
    }
        internal static bool ClaimReward(int rewardId, out ClaimRewardResponse responseBody, OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            responseBody = new ClaimRewardResponse();
            ClaimableRewardData value = offlineDatabase.Read <ClaimableRewardData>();

            if (value.ClimedRewards.Contains(rewardId))
            {
                return(false);
            }
            Reward claimableReward = offlineDefinitions.GetClaimableReward(rewardId);

            if (claimableReward != null)
            {
                offlineDefinitions.AddReward(claimableReward, responseBody);
                value.ClimedRewards.Add(rewardId);
                offlineDatabase.Write(value);
                JsonService jsonService = Service.Get <JsonService>();
                responseBody.reward = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(claimableReward)));
                return(true);
            }
            return(false);
        }
        protected override void SetOfflineData(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            BreadcrumbCollection value = offlineDatabase.Read <BreadcrumbCollection>();

            value.breadcrumbs = ResponseBody.breadcrumbs.breadcrumbs;
            offlineDatabase.Write(value);
            ClaimableRewardData value2 = offlineDatabase.Read <ClaimableRewardData>();

            value2.ClimedRewards = ResponseBody.claimedRewardIds;
            offlineDatabase.Write(value2);
            ClubPenguin.Net.Offline.DailySpinData value3 = offlineDatabase.Read <ClubPenguin.Net.Offline.DailySpinData>();
            value3.CurrentChestId = ResponseBody.dailySpinData.currentChestId;
            value3.NumChestsReceivedOfCurrentChestId = ResponseBody.dailySpinData.numChestsReceivedOfCurrentChestId;
            value3.NumPunchesOnCurrentChest          = ResponseBody.dailySpinData.numPunchesOnCurrentChest;
            value3.TimeOfLastSpinInMilliseconds      = ResponseBody.dailySpinData.timeOfLastSpinInMilliseconds;
            offlineDatabase.Write(value3);
            ClubPenguin.Net.Offline.PlayerOutfitDetails value4 = offlineDatabase.Read <ClubPenguin.Net.Offline.PlayerOutfitDetails>();
            value4.Parts = ResponseBody.outfit;
            offlineDatabase.Write(value4);
            ClubPenguin.Net.Offline.Profile value5 = offlineDatabase.Read <ClubPenguin.Net.Offline.Profile>();
            value5.Colour      = ResponseBody.profile.colour;
            value5.DateCreated = DateTime.UtcNow.AddDays(-1 * ResponseBody.profile.daysOld).GetTimeInMilliseconds();
            offlineDatabase.Write(value5);
            SetProgressOperation.SetOfflineQuestStateCollection(offlineDatabase, ResponseBody.quests);
            TutorialData value6 = offlineDatabase.Read <TutorialData>();

            for (int i = 0; i < value6.Bytes.Length; i++)
            {
                sbyte b = 0;
                if (i < ResponseBody.tutorialData.Count)
                {
                    b = ResponseBody.tutorialData[i];
                }
                value6.Bytes[i] = b;
            }
            offlineDatabase.Write(value6);
        }