private PartyGameMessageEvent partyGameMessageEventFromProps(ISFSObject props) { PartyGameMessageEvent result = default(PartyGameMessageEvent); result.sessionId = props.GetInt("id"); result.type = props.GetInt("type"); result.message = props.GetUtfString("message"); return(result); }
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"); }
public void StartSession() { PartyGameStartEventV2 partyGameStartEventV = default(PartyGameStartEventV2); partyGameStartEventV.sessionId = sessionId; partyGameStartEventV.templateId = cpItem.gameTemplateId; partyGameStartEventV.playerData = TubeRaceWorldObject.getPlayerData(userScores.Keys); processEvent(GameServerEvent.PARTY_GAME_START_V2, partyGameStartEventV); PartyGameMessageEvent partyGameMessageEvent = default(PartyGameMessageEvent); partyGameMessageEvent.sessionId = sessionId; partyGameMessageEvent.type = 10; partyGameMessageEvent.message = "{\"ModifierLayoutId\":" + UnityEngine.Random.Range(0, 3) + "}"; processEvent(GameServerEvent.PARTY_GAME_MESSAGE, partyGameMessageEvent); foreach (long key in userScores.Keys) { PlayerLocomotionStateEvent playerLocomotionStateEvent = default(PlayerLocomotionStateEvent); playerLocomotionStateEvent.SessionId = key; playerLocomotionStateEvent.State = LocomotionState.Racing; processEvent(GameServerEvent.USER_LOCO_STATE_CHANGED, playerLocomotionStateEvent); } timer.Start(); }
private void onPartyGameMessage(GameServerEvent gameServerEvent, object data) { PartyGameMessageEvent partyGameMessageEvent = (PartyGameMessageEvent)data; Service.Get <EventDispatcher>().DispatchEvent(new PartyGameServiceEvents.PartyGameSessionMessage(partyGameMessageEvent.sessionId, partyGameMessageEvent.type, partyGameMessageEvent.message)); }