public void Parse(GamePacketReader packet) { if (_isError) { return; } CtosMessage msg = packet.ReadCtos(); switch (msg) { case CtosMessage.PlayerInfo: OnPlayerInfo(packet); break; case CtosMessage.JoinGame: OnJoinGame(packet); break; } if (!IsAuthentified) { return; } switch (msg) { case CtosMessage.Chat: OnChat(packet); break; case CtosMessage.HsToDuelist: Game.MoveToDuelist(this); break; case CtosMessage.HsToObserver: Game.MoveToObserver(this); break; case CtosMessage.LeaveGame: Game.RemovePlayer(this); break; case CtosMessage.HsReady: Game.SetReady(this, true); break; case CtosMessage.HsNotReady: Game.SetReady(this, false); break; case CtosMessage.HsKick: OnKick(packet); break; case CtosMessage.HsStart: Game.StartDuel(this); break; case CtosMessage.HandResult: OnHandResult(packet); break; case CtosMessage.TpResult: OnTpResult(packet); break; case CtosMessage.UpdateDeck: OnUpdateDeck(packet); break; case CtosMessage.Response: OnResponse(packet); break; case CtosMessage.Surrender: Game.Surrender(this, 0); break; } }