private static void OnLiveReplayAddSpectatorRequestMessageReceived(LiveReplayAddSpectatorRequestMessage message)
        {
            if (LiveReplayManager.TryGet(message.LiveReplayId, out LiveReplay liveReplay) && !liveReplay.ContainsSession(message.SessionId, message.SlotId) && liveReplay.IsInit())
            {
                if (liveReplay.IsFull())
                {
                    ServerRequestManager.SendResponse(new LiveReplayAddSpectatorResponseMessage
                    {
                        ErrorCode = LiveReplayAddSpectatorResponseMessage.Reason.FULL
                    }, message);
                }
                else
                {
                    ServerRequestManager.SendResponse(new LiveReplayAddSpectatorResponseMessage
                    {
                        Success = true
                    }, message);

                    liveReplay.AddSpectator(message.SessionId, message.SlotId);
                }
            }
            else
            {
                ServerRequestManager.SendResponse(new LiveReplayAddSpectatorResponseMessage
                {
                    ErrorCode = LiveReplayAddSpectatorResponseMessage.Reason.NOT_EXISTS
                }, message);
            }
        }
 private static void OnEndLiveReplayMessageReceived(EndLiveReplayMessage message)
 {
     if (LiveReplayManager.TryGet(message.AccountId, out LiveReplay liveReplay))
     {
         liveReplay.SetEnd();
     }
 }
 private static void OnClientUpdateLiveReplayMessageReceived(ClientUpdateLiveReplayMessage message)
 {
     if (LiveReplayManager.TryGet(message.AccountId, out LiveReplay liveReplay))
     {
         liveReplay.SetClientUpdate(message.SubTick, message.Commands);
     }
 }
 private static void OnInitializeLiveReplayMessageReceived(InitializeLiveReplayMessage message)
 {
     if (LiveReplayManager.TryGet(message.AccountId, out LiveReplay liveReplay))
     {
         liveReplay.Init(message.StreamData);
     }
 }
 private static void OnLiveReplayRemoveSpectatorMessageReceived(LiveReplayRemoveSpectatorMessage message)
 {
     if (LiveReplayManager.TryGet(message.AccountId, out LiveReplay liveReplay))
     {
         liveReplay.RemoveSpectator(message.SessionId, message.SlotId);
     }
 }
Esempio n. 6
0
        public static LogicLong Create(GameSession session, LogicLong allianceId, LogicLong allianceStreamId)
        {
            LogicLong id = LiveReplayManager.GetNextLiveReplayId();

            Logging.Assert(LiveReplayManager.m_liveReplays.TryAdd(id, new LiveReplay(id, allianceId, allianceStreamId, session)),
                           "LiveReplayManager.m_liveReplays.TryAdd(id, allianceId, allianceStreamId, new LiveReplay(session)) return false");
            return(id);
        }
        private static void OnServerUpdateLiveReplayMessageReceived(ServerUpdateLiveReplayMessage message)
        {
            if (LiveReplayManager.TryGet(message.AccountId, out LiveReplay liveReplay))
            {
                liveReplay.Update(message.Milliseconds);

                if (liveReplay.IsEnded())
                {
                    LiveReplayManager.Remove(liveReplay.GetId());
                }
            }
        }
Esempio n. 8
0
        private static void Update()
        {
            while (true)
            {
                foreach (long id in LiveReplayManager.m_liveReplays.Keys)
                {
                    LiveReplayManager.ReceiveMessage(new ServerUpdateLiveReplayMessage
                    {
                        AccountId    = id,
                        Milliseconds = LiveReplayManager.LIVE_REPLAY_UPDATE_INTERVAL_MS
                    });
                }

                Thread.Sleep(LiveReplayManager.LIVE_REPLAY_UPDATE_INTERVAL_MS);
            }
        }