Exemplo n.º 1
0
 private void ConnectGameServer(MatchS2C feedback)
 {
     NetworkManager.Shutdown(() => MatchGameServer(feedback.serverIp, feedback.serverPort));
 }
Exemplo n.º 2
0
        private void HandleMatchFeedback(byte[] data)
        {
            UILockManager.ResetGroupState(UIEventGroup.Middle);

            MatchS2C feedback = ProtobufUtils.Deserialize <MatchS2C>(data);

            switch (feedback.result)
            {
            case MatchServerMessageType.RoomCreatedSucceed:
                DebugUtils.Log(DebugUtils.Type.Match, "Room Created Succeed~");
                //view.timeLeft_room = feedback.matchTime / 1000;

                view.OpenMatchingUI();
                break;

            case MatchServerMessageType.RoomCreatedFail:
                DebugUtils.Log(DebugUtils.Type.Match, "Match Room Created Fail~");
                break;

            case MatchServerMessageType.RoomFound:
                DebugUtils.Log(DebugUtils.Type.Match, "Room Found~");

                break;

            case MatchServerMessageType.RoomReady:
                DebugUtils.Log(DebugUtils.Type.Match, "Room Ready~");
                view.OpenMatchSucceedUI();
                view.timeLeft_matchSucceed = feedback.matchTime / 1000;
                MatchSucceedUIData(feedback.matchers);
                break;

            case MatchServerMessageType.Cancelled:
            case MatchServerMessageType.MatchingTimeout:
                DebugUtils.Log(DebugUtils.Type.Match, feedback.result.ToString() + "~");

                isTimeOut = false;
                ConnectGameServer(feedback);
                matcherReadyDatas.Remove(matcherReadyDatas.Find(p => p.playerId != DataManager.GetInstance().GetPlayerId()));
                view.SetFriendUI(false);
                view.beInvited    = false;
                currentFriendItem = null;
                currentFriendId   = 0;
                view.OpenMatchUI();
                view.SetStartMatchState(false);
                break;

            case MatchServerMessageType.CancelFailed:
                DebugUtils.Log(DebugUtils.Type.Match, "Match Cancel Failed~");
                break;

            case MatchServerMessageType.MatcherFound:
                DebugUtils.Log(DebugUtils.Type.Match, "Matcher Found~");

                break;

            case MatchServerMessageType.MatcherCancelled:
                DebugUtils.Log(DebugUtils.Type.Match, "Matcher Cancelled~");
                MatcherCancelledUIData(feedback.matchers);
                //view.timeLeft_room = feedback.matchTime / 1000;
                //TODO: if the friend cancelled  ,  need do something

                break;

            case MatchServerMessageType.MatcherReady:
                DebugUtils.Log(DebugUtils.Type.Match, "Matcher Ready~");
                MatchSucceedUIData(feedback.matchers);
                break;

            default:
                DebugUtils.Log(DebugUtils.Type.Match, "Match result is wrong~");
                break;
            }
        }