Esempio n. 1
0
    private static void exportRewardAsRewardJsonWritter(Reward value, LitJson.JsonWriter writer)
    {
        StringBuilder stringBuilder = new StringBuilder();

        LitJson.JsonWriter writer2 = new LitJson.JsonWriter(stringBuilder);
        JsonMapper.ToJson(RewardJsonWritter.FromReward(value), writer2);
        writer.WriteRaw(stringBuilder.ToString());
    }
Esempio n. 2
0
    public static RewardJsonWritter FromReward(Reward reward)
    {
        RewardJsonWritter rewardJsonWritter = new RewardJsonWritter();

        foreach (IRewardable item in reward)
        {
            rewardJsonWritter.Add(item.RewardType, item.Reward);
        }
        return(rewardJsonWritter);
    }
Esempio n. 3
0
    protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
    {
        ResponseBody = new ClaimDailySpinRewardResponse();
        Reward reward     = new Reward();
        Reward reward2    = new Reward();
        int    spinResult = offlineDefinitions.GetSpinResult(reward, reward2);

        offlineDefinitions.AddReward(reward, ResponseBody);
        offlineDefinitions.AddReward(reward2, ResponseBody);
        JsonService jsonService = Service.Get <JsonService>();

        ResponseBody.spinOutcomeId = spinResult;
        ResponseBody.reward        = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(reward)));
        ResponseBody.chestReward   = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(reward2)));
    }
        public static QuestChangeResponse SetStatus(QuestStatus status, string questId, OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            QuestChangeResponse questChangeResponse = new QuestChangeResponse();
            QuestStates         questStates         = offlineDatabase.Read <QuestStates>();

            QuestStates.QuestState questState = null;
            int num = -1;

            for (int i = 0; i < questStates.Quests.Count; i++)
            {
                if (questStates.Quests[i].questId == questId)
                {
                    questState = questStates.Quests[i];
                    num        = i;
                    break;
                }
            }
            QuestRewardsCollection questRewardsCollection = offlineDefinitions.QuestRewards(questId);
            Reward reward = null;

            if (questState == null)
            {
                reward = questRewardsCollection.StartReward;
                if (reward != null)
                {
                    if (reward.isEmpty())
                    {
                        reward = null;
                    }
                    else
                    {
                        offlineDefinitions.AddReward(reward, questChangeResponse);
                    }
                }
                questState         = new QuestStates.QuestState();
                questState.questId = questId;
            }
            if (status == QuestStatus.ACTIVE)
            {
                for (int i = 0; i < questStates.Quests.Count; i++)
                {
                    if (questStates.Quests[i].status == QuestStatus.ACTIVE)
                    {
                        questStates.Quests[i].status = QuestStatus.SUSPENDED;
                    }
                }
                if (questState.status == QuestStatus.COMPLETED)
                {
                    questState.completedObjectives.Clear();
                }
            }
            if (status == QuestStatus.COMPLETED)
            {
                int timesCompleted = questState.timesCompleted;
                if (timesCompleted == 0)
                {
                    questState.completedTime = DateTime.UtcNow;
                    reward = questRewardsCollection.CompleteReward;
                    if (reward != null)
                    {
                        if (reward.isEmpty())
                        {
                            reward = null;
                        }
                        else
                        {
                            offlineDefinitions.AddReward(reward, questChangeResponse);
                        }
                    }
                }
                questState.timesCompleted = timesCompleted + 1;
            }
            questState.status = status;
            if (num >= 0)
            {
                questStates.Quests[num] = questState;
            }
            else
            {
                questStates.Quests.Add(questState);
            }
            offlineDatabase.Write(questStates);
            JsonService jsonService = Service.Get <JsonService>();

            if (reward != null)
            {
                questChangeResponse.reward = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(reward)));
            }
            questChangeResponse.questId = questId;
            questChangeResponse.questStateCollection = new SignedResponse <QuestStateCollection>
            {
                Data = SetProgressOperation.GetQuestStateCollection(questStates, offlineDefinitions, includeComplete: false)
            };
            return(questChangeResponse);
        }
Esempio n. 5
0
        protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            Response = new FishingCatchResponse();
            Reward fishingReward = offlineDefinitions.GetFishingReward(FishingCatchRequest.winningRewardName);

            offlineDefinitions.AddReward(fishingReward, Response);
            JsonService jsonService = Service.Get <JsonService>();
            Dictionary <string, RewardJsonReader> dictionary = new Dictionary <string, RewardJsonReader>();

            dictionary.Add(client.PlayerSessionId.ToString(), jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(fishingReward))));
            Response.rewards = new SignedResponse <RewardedUserCollectionJsonHelper>
            {
                Data = new RewardedUserCollectionJsonHelper
                {
                    rewards  = dictionary,
                    source   = RewardSource.MINI_GAME,
                    sourceId = "fishing"
                }
            };
            if (Response.wsEvents == null)
            {
                Response.wsEvents = new List <SignedResponse <WebServiceEvent> >();
            }
            Response.wsEvents.Add(new SignedResponse <WebServiceEvent>
            {
                Data = new WebServiceEvent
                {
                    type    = 1,
                    details = new JsonData(FishingCatchRequest.winningRewardName)
                }
            });
        }
Esempio n. 6
0
        protected override void PerformOfflineAction(OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            ResponseBody = new ClaimRewardResponse();
            Reward quickNotificationReward = offlineDefinitions.GetQuickNotificationReward();

            offlineDefinitions.AddReward(quickNotificationReward, ResponseBody);
            JsonService jsonService = Service.Get <JsonService>();

            ResponseBody.reward = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(quickNotificationReward)));
        }
        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 void sendReward()
            {
                JsonService jsonService = Service.Get <JsonService>();
                Dictionary <string, RewardJsonReader> dictionary = new Dictionary <string, RewardJsonReader>();

                dictionary.Add(client.clubPenguinClient.PlayerSessionId.ToString(), jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(totalReward))));
                SignedResponse <RewardedUserCollectionJsonHelper> signedResponse = new SignedResponse <RewardedUserCollectionJsonHelper>();

                signedResponse.Data = new RewardedUserCollectionJsonHelper
                {
                    rewards  = dictionary,
                    source   = RewardSource.WORLD_OBJECT,
                    sourceId = item.Id.Id.ToString()
                };
                SignedResponse <RewardedUserCollectionJsonHelper> data = signedResponse;

                client.processEvent(GameServerEvent.RECEIVED_REWARDS, data);
            }
Esempio n. 9
0
 public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer)
 {
     serializer.Serialize(writer, RewardJsonWritter.FromReward((Reward)value));
 }
        public static QuestChangeResponse SetProgress(QuestObjectives objectives, OfflineDatabase offlineDatabase, IOfflineDefinitionLoader offlineDefinitions)
        {
            QuestStates.QuestState questState          = null;
            QuestStates            questStates         = offlineDatabase.Read <QuestStates>();
            QuestChangeResponse    questChangeResponse = new QuestChangeResponse();

            foreach (QuestStates.QuestState quest in questStates.Quests)
            {
                if (quest.status == QuestStatus.ACTIVE)
                {
                    questState = quest;
                    break;
                }
            }
            if (questState == null)
            {
                return(questChangeResponse);
            }
            if (questState.completedObjectives == null)
            {
                questState.completedObjectives = new QuestObjectives();
            }
            Reward reward = null;

            if (questState.timesCompleted == 0)
            {
                Dictionary <string, Reward> objectiveRewards = offlineDefinitions.QuestRewards(questState.questId).ObjectiveRewards;
                foreach (string objective in objectives)
                {
                    if (!questState.completedObjectives.Contains(objective) && objectiveRewards.ContainsKey(objective))
                    {
                        if (reward == null)
                        {
                            reward = new Reward();
                        }
                        reward.AddReward(objectiveRewards[objective]);
                    }
                }
            }
            if (reward != null)
            {
                offlineDefinitions.AddReward(reward, questChangeResponse);
            }
            questState.completedObjectives = objectives;
            offlineDatabase.Write(questStates);
            questChangeResponse.questId = questState.questId;
            questChangeResponse.questStateCollection = new SignedResponse <QuestStateCollection>
            {
                Data = GetQuestStateCollection(questStates, offlineDefinitions, includeComplete: false)
            };
            if (reward != null)
            {
                JsonService jsonService = Service.Get <JsonService>();
                questChangeResponse.reward = jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(reward)));
            }
            return(questChangeResponse);
        }
Esempio n. 11
0
            public void EndSession(long userSessionId)
            {
                timer.Stop();
                JsonService jsonService = Service.Get <JsonService>();

                PartyGameSessionMessages.TubeRacePlayerResult tubeRacePlayerResult = new PartyGameSessionMessages.TubeRacePlayerResult();
                tubeRacePlayerResult.CompletionTimeInMilliseconds = timer.ElapsedMilliseconds;
                tubeRacePlayerResult.OverallScore  = raceDefinition.StartingPoints - timer.ElapsedMilliseconds * raceDefinition.PointsDeductedPerSecond / 1000 + userScores[userSessionId];
                tubeRacePlayerResult.PlayerId      = userSessionId;
                tubeRacePlayerResult.ScoreModifier = userScores[userSessionId];
                PartyGameSessionMessages.TubeRacePlayerResult objectToSerialize = tubeRacePlayerResult;
                PartyGameMessageEvent partyGameMessageEvent = default(PartyGameMessageEvent);

                partyGameMessageEvent.sessionId = sessionId;
                partyGameMessageEvent.type      = 13;
                partyGameMessageEvent.message   = jsonService.Serialize(objectToSerialize);
                PartyGameMessageEvent partyGameMessageEvent2 = partyGameMessageEvent;

                processEvent(GameServerEvent.PARTY_GAME_MESSAGE, partyGameMessageEvent2);
                if (Service.Get <IGameData>().Get <Dictionary <int, PartyGameDefinition> >().TryGetValue(cpItem.gameTemplateId, out var value))
                {
                    foreach (PartyGameDefinition.PartyGameReward reward in value.Rewards)
                    {
                        if (reward.Placement == PartyGameEndPlacement.FIRST)
                        {
                            Dictionary <string, RewardJsonReader> dictionary = new Dictionary <string, RewardJsonReader>();
                            dictionary.Add(userSessionId.ToString(), jsonService.Deserialize <RewardJsonReader>(jsonService.Serialize(RewardJsonWritter.FromReward(reward.Reward.ToReward()))));
                            SignedResponse <RewardedUserCollectionJsonHelper> signedResponse = new SignedResponse <RewardedUserCollectionJsonHelper>();
                            signedResponse.Data = new RewardedUserCollectionJsonHelper
                            {
                                rewards  = dictionary,
                                source   = RewardSource.MINI_GAME,
                                sourceId = sessionId.ToString()
                            };
                            SignedResponse <RewardedUserCollectionJsonHelper> arg = signedResponse;
                            processEvent(GameServerEvent.RECEIVED_REWARDS_DELAYED, arg);
                            break;
                        }
                    }
                }
                CoroutineRunner.StartPersistent(finishEndSession(), this, "finishEndSession");
            }