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()); }
public static RewardJsonWritter FromReward(Reward reward) { RewardJsonWritter rewardJsonWritter = new RewardJsonWritter(); foreach (IRewardable item in reward) { rewardJsonWritter.Add(item.RewardType, item.Reward); } return(rewardJsonWritter); }
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); }
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) } }); }
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); }
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); }
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"); }