public IEnumerator SendRetire()
    {
        if (this.isSendEvent)
        {
            yield break;
        }
        RetireData message = new RetireData
        {
            playerUserId    = ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId,
            hashValue       = Singleton <TCPUtil> .Instance.CreateHash(TCPMessageType.Retire, ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId, TCPMessageType.None),
            retiredPlayerId = ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId
        };

        global::Debug.LogFormat("[リタイア]playerUserId:{0} hashValue:{1}", new object[]
        {
            message.playerUserId,
            message.hashValue
        });
        IEnumerator wait = this.SendMessageInsistently <RetireData>(TCPMessageType.Retire, message, 2f);

        while (wait.MoveNext())
        {
            object obj = wait.Current;
            yield return(obj);
        }
        this.StopSomething();
        base.stateManager.events.CallRetireEvent();
        yield break;
    }
    private void RecieveRetire(TCPMessageType tcpMessageType, object messageObj)
    {
        global::Debug.Log("Retire: リタイア");
        RetireData retierData = TCPData <RetireData> .Convert(messageObj);

        if (base.CheckRecieveData(retierData.playerUserId, retierData.hashValue))
        {
            return;
        }
        this.lastAction[TCPMessageType.Retire] = delegate()
        {
            if (retierData.retiredPlayerId != ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId)
            {
                this.ShowWinDialog();
            }
        };
        base.SendConfirmation(tcpMessageType, retierData.playerUserId, string.Empty);
    }