public virtual bool OnRecvClientBattleRetire(Coop_Model_ClientBattleRetire model)
 {
     isBattleRetire = true;
     if (isPartyOwner)
     {
         MonoBehaviourSingleton <CoopManager> .I.coopRoom.ownerRetire = true;
     }
     if (QuestManager.IsValidInGame() && MonoBehaviourSingleton <UIDeadAnnounce> .IsValid())
     {
         MonoBehaviourSingleton <UIDeadAnnounce> .I.Announce(UIDeadAnnounce.ANNOUNCE_TYPE.RETIRE, GetPlayer());
     }
     if (!isStageHost)
     {
         CoopStageObjectUtility.TransfarOwnerForClientObjects(clientId, MonoBehaviourSingleton <CoopManager> .I.coopStage.hostClientId);
     }
     if (QuestManager.IsValidInGameExplore())
     {
         MonoBehaviourSingleton <QuestManager> .I.RemoveExplorePlayerStatus(this);
     }
     if (MonoBehaviourSingleton <CoopManager> .I.coopRoom.NeedsForceLeave())
     {
         MonoBehaviourSingleton <CoopNetworkManager> .I.Close(1000, "Bye!", null);
     }
     return(true);
 }
    public bool OnRecvRoomStageHostChanged(Coop_Model_RoomStageHostChanged model)
    {
        int hostClientId = MonoBehaviourSingleton <CoopManager> .I.coopStage.hostClientId;

        if (model.stgid == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId)
        {
            if (model.stghostid != 0)
            {
                CoopStageObjectUtility.TransfarOwnerForClientObjects(hostClientId, model.stghostid);
            }
            MonoBehaviourSingleton <CoopManager> .I.coopStage.SetHostClient(model.stghostid);
        }
        clients.ForEach(delegate(CoopClient c)
        {
            if (c.stageId == model.stgid)
            {
                c.SetStageHost(c.clientId == model.stghostid);
            }
        });
        return(true);
    }