예제 #1
0
 protected override void ChengeState_toActive()
 {
     base.ChengeState_toActive();
     _waitFlag = new WaitFlag();
     _waitFlag.SetWaitLength(_waitTime);
     _waitFlag.WaitStart();
 }
예제 #2
0
    public void HideWaitingWin(WaitFlag eFlag = WaitFlag.Unkown)
    {
        if (eFlag == WaitFlag.ClearAllWait)
        {
            ClearAllWait();
            return;
        }

        if (_dicTimer.ContainsKey(eFlag))
        {
            TimerManager.GetInstance().RemoveTimer(_dicTimer[eFlag]);
            _dicTimer.Remove(eFlag);
        }

        if (_listWaitFlag.Contains(eFlag))
        {
            _listWaitFlag.Remove(eFlag);
        }

        if (eFlag == WaitFlag.DoingAction && monoComponent != null)
        {
            monoComponent.ShowJuHua();
        }
        if (eFlag == WaitFlag.NewbieGuide && monoComponent != null)
        {
            monoComponent.ShowJuHua();
        }

        if (monoComponent != null && _listWaitFlag.Count == 0)
        {
            monoComponent.HideWin();
        }
    }
예제 #3
0
 public bool IsWaitShowing(WaitFlag eFlag)
 {
     if (eFlag == null)
     {
         return(false);
     }
     if (_dicTimer.ContainsKey(eFlag))
     {
         return(true);
     }
     return(false);
 }
예제 #4
0
    void Init()
    {
        if (_charWaitFlag != null)
        {
            return;
        }
        _charWaitFlag = new WaitFlag();
        _charWaitFlag.SetWaitLength(charWaitTime);
        _endWaitFlag = new WaitFlag();
        _endWaitFlag.SetWaitLength(charWaitTime);

        _displayTextArea.text = "";
    }
예제 #5
0
    public void ShowWaitingWin(WaitFlag eFlag = WaitFlag.Unkown, float fWaitTime = 10f)
    {
        if (_dicTimer.ContainsKey(eFlag))
        {
            TimerManager.GetInstance().RemoveTimer(_dicTimer[eFlag]);
            _dicTimer.Remove(eFlag);
        }
        if (_listWaitFlag.Contains(eFlag))
        {
            _listWaitFlag.Remove(eFlag);
        }

        //_waitTimer = new Timer(fWaitTime, WaitForTimeOut, 0, false);
        Timer waitTimer = new Timer(
            fWaitTime,
            new TimerEvent(delegate(){ WaitForTimeOut(eFlag); }),
            0,
            false);

        _dicTimer.Add(eFlag, waitTimer);
        _listWaitFlag.Add(eFlag);

        if (eFlag == WaitFlag.DoingAction && monoComponent != null)
        {
            monoComponent.HideJuHua();
        }
        if (eFlag == WaitFlag.NewbieGuide && monoComponent != null)
        {
            monoComponent.HideJuHua();
        }
        if (eFlag == WaitFlag.SaveFormation && monoComponent != null)
        {
            monoComponent.HideJuHua();
        }
        if (eFlag == WaitFlag.EquipCastReq && monoComponent != null)
        {
            monoComponent.HideJuHua();
        }

        if (monoComponent != null)
        {
            monoComponent.HideJuHua();
            monoComponent.ShowWin();
        }
    }
예제 #6
0
    //等待超时
    public void WaitForTimeOut(WaitFlag eFlag)
    {
        if (_listWaitFlag.Count == 0)
        {
            return;
        }

        if (_dicTimer.ContainsKey(eFlag))
        {
            _dicTimer.Remove(eFlag);
        }
        if (_listWaitFlag.Contains(eFlag))
        {
            _listWaitFlag.Remove(eFlag);
        }
        if (monoComponent != null && _listWaitFlag.Count == 0)
        {
            monoComponent.HideWin();
        }
        EventMultiArgs args;

        switch (eFlag)
        {
        case WaitFlag.AppStorePay:
            break;

        case WaitFlag.ConnectSocketFirst:
            ShowWaitingWin(WaitFlag.ConnectSocketSecond, 10f);
            ClientNetwork.Instance.CloseSocket();
            ClientNetwork.Instance.Connect();     //第一次connect超时,直接尝试第二次连接socket。
            break;

        case WaitFlag.ConnectSocketSecond:
            UtilTools.PlaySoundEffect("Sounds/UISound/error");
            UtilTools.ErrorMessageDialog(GameText.GetStr("socket_connect_timeout"), "614d46", "Center",
                                         OnOKButton); //第二次还超时,弹窗提示。
            UtilTools.HideWaitWin(WaitFlag.ClearAllWait);
            ClearAllWait();
            break;

        case WaitFlag.LoginFirst:
            ShowWaitingWin(WaitFlag.LoginScecond, 6f);
            EngineManager engine = EngineManager.GetInstance();
//                Msg.CS_loggin login = new Msg.CS_CAccountLoginRequest();
            var login = new cs_login_reconnection();
//                login.account = GameDataMgr.LOGIN_DATA.nowLoginAccount;//tools.GetDeviceUUID(); //
//                login.pwd = GameDataMgr.LOGIN_DATA.nowLoginPassword;

            /*login.platform_flag = (uint) engine.GetSDKId();
             * login.user = GameDataMgr.LOGIN_DATA.userName;
             * login.reconnect_key =
             * ClientNetwork.Instance.SendMsg(ProtoID.SC_LOGIN_RECONNECTION_REPLY, login);*/
            //TODO loging问题后面再看看
            ClientNetwork.ToSendReconnectMsgSecond();
            break;

        case WaitFlag.LoginScecond:
            UtilTools.LoginFailedAndShowLoginWin();
            break;

        case WaitFlag.ChangeAccount:
            GameDataMgr.LOGIN_DATA.IsConnectGamerServer = false;
            //UIManager.GetControler<ChangeAccountController>().ChangeAccountTimeOut();
            break;

        default:    //菊花超时
            ClientNetwork.Instance.ReconnectWithoutAsk(false);
            break;
        }
        Utils.LogSys.Log("WaitForTimeOut:" + eFlag.ToString());
    }
예제 #7
0
 public override void CodeAction()
 {
     wf = new WaitFlag();
     wf.SetWaitLength(waitTime);
     wf.WaitStart();
 }
예제 #8
0
 protected override void ChengeState_toSleep()
 {
     base.ChengeState_toSleep();
     _waitFlag = null;
 }