public IEnumerator SendLeaderChange(int leaderindex)
    {
        LeaderChangeData message = new LeaderChangeData
        {
            playerUserId = ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId,
            hashValue    = Singleton <TCPUtil> .Instance.CreateHash(TCPMessageType.LeaderChange, ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId, TCPMessageType.None),
            leaderIndex  = leaderindex
        };
        IEnumerator wait = this.SendMessageInsistently <LeaderChangeData>(TCPMessageType.LeaderChange, message, 2f);

        while (wait.MoveNext())
        {
            object obj = wait.Current;
            yield return(obj);
        }
        base.battleStateData.ChangePlayerLeader(message.leaderIndex);
        base.battleStateData.ChangeEnemyLeader(message.leaderIndex);
        yield break;
    }
    protected void RecieveLeaderChange(TCPMessageType tcpMessageType, object messageObj)
    {
        if (this.isDisconnected)
        {
            global::Debug.Log("LeaderChange: 切断中");
            return;
        }
        global::Debug.Log("LeaderChange: 受信");
        LeaderChangeData data = TCPData <LeaderChangeData> .Convert(messageObj);

        if (this.CheckHash(data.hashValue))
        {
            return;
        }
        this.lastAction[tcpMessageType] = delegate()
        {
            this.battleStateData.ChangePlayerLeader(data.leaderIndex);
            this.battleStateData.ChangeEnemyLeader(data.leaderIndex);
            this.recieveChecks[tcpMessageType] = true;
        };
        this.SendConfirmation(tcpMessageType, data.playerUserId, string.Empty);
    }