public void UpdateRoomGameStatus(ERoomGameStatus status, ERoomEnterStatus enter) { _logger.InfoFormat("Update Room Status {0}=>{1}", GameStatus, status); GameStatus = status; var e = RoomEvent.AllocEvent <UpdateRoomGameStatusEvent>(); e.HallRoomId = HallRoomId; e.Status = (int)status; e.CanEnter = (int)enter; _dispatcher.AddEvent(e); }
public override void GameOver(bool forceOver) { var evt = RoomEvent.AllocEvent <GameOverEvent>(); evt.HallRoomId = HallRoomId; evt.Message = null; _dispatcher.AddEvent(evt); }
public void Handle(INetworkChannel networkChannel, object messagName, ResponseRegisterBattleServerMessage msg) { var e = RoomEvent.AllocEvent <HallServerConnectEvent>(); _dispatcher.AddEvent(e); _logger.InfoFormat("Receive Response Register Battle Server Message, Has Hall Server"); }
public void CheckStateOnReceivePlayerMessage() { if (_hasHallServer) { if (IsRoomGameExit()) { var e = RoomEvent.AllocEvent <MandatoryLogOutEvent>(); e.LogOutReason = MandatoryLogOutEvent.Reason.GameExit; e.PlayerId = 0; e.HallRoomId = _hallRoomId; e.RoomId = _roomId; _dispatcher.AddEvent(e); _logger.Info("The room game has exited!"); } } }
private void DisposeClientConnect() { DisposeChannel(_clientChannel); _clientChannel = null; var evt = RoomEvent.AllocEvent <HallServerDisconnectEvent>(); _dispatcher.AddEvent(evt); _logger.ErrorFormat("Disconnect From Allocation Server."); }
public void Handle(INetworkChannel networkChannel, object messagName, LongData roomId, RoomPlayer player) { var e = RoomEvent.AllocEvent <JoinRoomEvent>(); e.HallRoomId = roomId.Value; e.RoomPlayer = player; _dispatcher.AddEvent(e); _logger.InfoFormat("Receive Join Room Message Hall Room Id {0} Map Id {1}", roomId, player.Id); }
private void CreateRoom(CreateRoomEvent e) { bool success = false; if (_room == null && (e.IsDummy || e.Message != null)) { try { _room = _roomFactory.Create(e.Message); FinishRoomCreate(e.Message); success = true; } catch (Exception exception) { _logger.Error("Create Room Failed: ", exception); } } if (!success) { var evt = RoomEvent.AllocEvent <CreateRoomResponseEvent>(); evt.Success = false; evt.ErrCode = _room != null ? ErrorCode.CreateRoom_ServerRoom_Exist : ErrorCode.CreateRoom_Message_Error; _dispatcher.AddEvent(evt); } }
public void Handle(INetworkChannel networkChannel, object messagName, RequestCreateRoomMessage messageData) { var e = RoomEvent.AllocEvent <CreateRoomEvent>(); e.Message = messageData as RequestCreateRoomMessage; _dispatcher.AddEvent(e); if (e.Message != null) { _logger.InfoFormat("Receive Create Room Message Hall Room Id {0} Map Id {1}", e.Message.HallRoomId, e.Message.MapId); } else { _logger.ErrorFormat("Receive Create Room Message is Null"); } }
public void Handle(INetworkChannel networkChannel, object messagName, RequestJoinRoomListMessage message) { var e = RoomEvent.AllocEvent <JoinRoomListEvent>(); e.HallRoomId = message.HallRoomId; int count = message.Players.Count; var roomPlayerList = new RoomPlayer[count]; for (int i = 0; i < count; ++i) { roomPlayerList[i] = message.Players[i]; } e.RoomPlayerList = roomPlayerList; _dispatcher.AddEvent(e); _logger.InfoFormat("Receive Join Room List Message Hall Room Id {0} Count {1}", e.HallRoomId, count); }
private void CreateRoom(CreateRoomEvent e) { if (_room != null || (!e.IsDummy && e.Message == null)) { var evt = RoomEvent.AllocEvent <CreateRoomResponseEvent>(); evt.Success = false; evt.ErrCode = _room != null ? ErrorCode.CreateRoom_ServerRoom_Exist : ErrorCode.CreateRoom_Message_Error; _dispatcher.AddEvent(evt); } else { _room = _roomFactory.Create(e.Message); FinishRoomCreate(e.Message); } }
private void NetworkChannelOnMessageReceived(INetworkChannel channel, int messageType, object messageBody) { if (messageType == (int)EClient2ServerMessage.Login) { LoginMessage message = (LoginMessage)messageBody; if (message == null) { _logger.InfoFormat("Illegal login message"); channel.Disconnect(); } else { _logger.InfoFormat("Received Log in Message ... token:{0} {1}", message.Token, message.LoginStage); var e = RoomEvent.AllocEvent <LoginServerEvent>(); e.Channel = channel; e.Message = message; _dispatcher.AddEvent(e); } } _networkMonitor.CheckStateOnReceivePlayerMessage(); }