protected override void OnQuery_FOLLOW()
    {
        GameSection.SetEventData(new object[1]
        {
            record.charaInfo.name
        });
        List <int> list = new List <int>();

        list.Add(record.charaInfo.userId);
        if (isQuestResult)
        {
            SendFollow(list, delegate
            {
                if (MonoBehaviourSingleton <CoopApp> .IsValid())
                {
                    CoopApp.UpdateField(null);
                }
            });
        }
        else
        {
            GameSection.StayEvent();
            MonoBehaviourSingleton <PartyManager> .I.SendFollowAgency(list, delegate(bool is_success)
            {
                if (isQuestResult && is_success)
                {
                    MonoBehaviourSingleton <FriendManager> .I.SetFollowToHomeCharaInfo(record.charaInfo.userId, true);
                }
                GameSection.ResumeEvent(is_success, null);
            });
        }
    }
    private void OnQuery_FOLLOW()
    {
        int index = (int)GameSection.GetEventData();

        GameSection.SetEventData(new object[1]
        {
            infoList[index].name
        });
        List <int> list = new List <int>();

        list.Add(infoList[index].userId);
        GameSection.StayEvent();
        MonoBehaviourSingleton <FriendManager> .I.SendFollowUser(list, delegate(Error err, List <int> follow_list)
        {
            bool flag = err == Error.None && follow_list.Count > 0;
            if (flag)
            {
                infoList[index].following = !infoList[index].following;
            }
            if (MonoBehaviourSingleton <CoopApp> .IsValid())
            {
                CoopApp.UpdateField(null);
            }
            GameSection.ResumeEvent(flag, null);
            RefreshUI();
        });
    }
예제 #3
0
 protected void OnQuery_CoopServerInvalidConfirm_YES()
 {
     GameSection.StayEvent();
     CoopApp.EnterQuestOffline(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
     {
         GameSection.ResumeEvent(is_s, null);
     });
 }
예제 #4
0
 private void StartQuest()
 {
     GameSection.StayEvent();
     CoopApp.EnterArenaQuestOffline(delegate(bool isMatching, bool isConnect, bool isRegist, bool isStart)
     {
         GameSection.ResumeEvent(isStart, null);
     });
 }
예제 #5
0
    private void JoinField(int fieldMapId)
    {
        if (fieldMapId == MonoBehaviourSingleton <FieldManager> .I.currentMapID)
        {
            GameSection.StopEvent();
        }
        else
        {
            FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData((uint)fieldMapId);

            if (fieldMapData == null || fieldMapData.jumpPortalID == 0)
            {
                Log.Error("RegionMap.OnQuery_SELECT() jumpPortalID is not found.");
            }
            else if (!MonoBehaviourSingleton <GameSceneManager> .I.CheckPortalAndOpenUpdateAppDialog(fieldMapData.jumpPortalID, false, true))
            {
                GameSection.StopEvent();
            }
            else if (!MonoBehaviourSingleton <FieldManager> .I.CanJumpToMap(fieldMapData))
            {
                DispatchEvent("CANT_JUMP", null);
            }
            else
            {
                GameSection.StayEvent();
                CoopApp.EnterField(fieldMapData.jumpPortalID, 0u, delegate(bool is_matching, bool is_connect, bool is_regist)
                {
                    if (!is_connect)
                    {
                        GameSection.ChangeStayEvent("COOP_SERVER_INVALID", null);
                        GameSection.ResumeEvent(true, null);
                        AppMain i     = MonoBehaviourSingleton <AppMain> .I;
                        i.onDelayCall = (Action)Delegate.Combine(i.onDelayCall, (Action) delegate
                        {
                            DispatchEvent("CLOSE", null);
                        });
                    }
                    else
                    {
                        GameSection.ResumeEvent(is_regist, null);
                        if (is_regist)
                        {
                            MonoBehaviourSingleton <GameSceneManager> .I.ChangeScene("InGame", null, UITransition.TYPE.CLOSE, UITransition.TYPE.OPEN, false);
                        }
                    }
                });
            }
        }
    }
    private void OnQuery_FOLLOW()
    {
        int playerIndex = (int)GameSection.GetEventData();

        InGameRecorder.PlayerRecord record = playerRecords[playerIndex];
        if (record == null)
        {
            GameSection.StopEvent();
        }
        else if (MonoBehaviourSingleton <FriendManager> .I.followNum >= MonoBehaviourSingleton <UserInfoManager> .I.userStatus.maxFollow)
        {
            GameSection.ChangeEvent("FOLLOW_MAX", null);
        }
        else
        {
            GameSection.StayEvent();
            List <int> list = new List <int>();
            list.Add(record.charaInfo.userId);
            MonoBehaviourSingleton <FriendManager> .I.SendFollowUser(list, delegate(Error err, List <int> follow_list)
            {
                if (err == Error.None)
                {
                    GameSection.ChangeStayEvent("FOLLOW_DIALOG", new object[1]
                    {
                        record.charaInfo.name
                    });
                    Transform root = itemsL[playerIndex];
                    SetButtonSprite(root, UI.BTN_FOLLOW, "ResultfollowBtnOff", true);
                    SetButtonEnabled(root, UI.BTN_FOLLOW, false);
                    if (MonoBehaviourSingleton <CoopApp> .IsValid())
                    {
                        CoopApp.UpdateField(null);
                    }
                }
                else if (follow_list.Count == 0)
                {
                    GameSection.ChangeStayEvent("FAILED_FOLLOW", new object[1]
                    {
                        record.charaInfo.name
                    });
                }
                GameSection.ResumeEvent(err == Error.None, null);
            });
        }
    }
예제 #7
0
    protected virtual void OnQuery_QUEST_ROOM_IN_GAME()
    {
        QuestTable.QuestTableData table = GetEventData() as QuestTable.QuestTableData;
        bool flag = MonoBehaviourSingleton <GameSceneManager> .I.IsCurrentSceneHomeOrLounge();

        if (table == null || !flag)
        {
            StopEvent();
        }
        else
        {
            bool is_free_join = true;
            if (table.questType == QUEST_TYPE.EVENT)
            {
                is_free_join = !MonoBehaviourSingleton <PartyManager> .I.IsPayingQuest();
            }
            MonoBehaviourSingleton <QuestManager> .I.SetCurrentQuestID(table.questID, is_free_join);

            StayEvent();
            CoopApp.EnterPartyQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
            {
                bool is_resume = is_s;
                if (is_r)
                {
                    if (is_s)
                    {
                        QuestRoomObserver.OffObserve();
                    }
                }
                else if (!is_c && table.questType != QUEST_TYPE.ORDER)
                {
                    ChangeStayEvent("COOP_SERVER_INVALID", null);
                    is_resume = true;
                }
                ResumeEvent(is_resume, null);
            });
        }
    }
예제 #8
0
    protected void _OnQuery_FIELD(bool fromQuest)
    {
        WorldMapOpenNewField.EVENT_TYPE eventType = WorldMapOpenNewField.EVENT_TYPE.NONE;
        uint portal_id = (uint)MonoBehaviourSingleton <OutGameSettingsManager> .I.homeScene.linkFieldPortalID;

        if (fromQuest)
        {
            eventType = WorldMapOpenNewField.EVENT_TYPE.QUEST_TO_FIELD;
            portal_id = MonoBehaviourSingleton <WorldMapManager> .I.GetJumpPortalID();
        }
        else if (MonoBehaviourSingleton <WorldMapManager> .I.IsTraveledPortal((uint)MonoBehaviourSingleton <OutGameSettingsManager> .I.homeScene.linkFieldPortalID))
        {
            eventType = WorldMapOpenNewField.EVENT_TYPE.ONLY_CAMERA_MOVE;
        }
        if (!MonoBehaviourSingleton <GameSceneManager> .I.CheckPortalAndOpenUpdateAppDialog(portal_id, false, true))
        {
            StopEvent();
        }
        else
        {
            WorldMapOpenNewField.SectionEventData eventData = new WorldMapOpenNewField.SectionEventData(eventType, ENEMY_TYPE.BAT);
            SetEventData(eventData);
            StayEvent();
            CoopApp.EnterField(portal_id, 0u, delegate(bool is_matching, bool is_connect, bool is_regist)
            {
                if (!is_connect)
                {
                    ChangeStayEvent("COOP_SERVER_INVALID", null);
                    ResumeEvent(true, null);
                }
                else
                {
                    ResumeEvent(is_regist, null);
                }
            });
        }
    }
예제 #9
0
    private void OnQuery_AUTO_MATCH()
    {
        GameSection.StayEvent();
        Action <bool, bool, bool, bool> matching_end_action = delegate(bool is_m, bool is_c, bool is_r, bool is_s)
        {
            //IL_0086: Unknown result type (might be due to invalid IL or missing references)
            if (!is_m)
            {
                QuestResume(false);
            }
            else if (is_s)
            {
                UIModelRenderTexture component = base.GetComponent <UIModelRenderTexture>((Enum)UI.TEX_ENEMY);
                if (component != null && component.enemyAnimCtrl != null)
                {
                    component.enemyAnimCtrl.PlayQuestStartAnim(delegate
                    {
                        //IL_001d: Unknown result type (might be due to invalid IL or missing references)
                        this.StartCoroutine(GoToQuest(delegate
                        {
                            QuestResume(true);
                        }));
                    });
                }
                else
                {
                    this.StartCoroutine(GoToQuest(delegate
                    {
                        QuestResume(true);
                    }));
                }
            }
            else if (!is_c)
            {
                GameSection.ChangeStayEvent("COOP_SERVER_INVALID", null);
                QuestResume(true);
            }
            else
            {
                QuestResume(false);
            }
        };

        if (questInfo.questData.tableData.questType == QUEST_TYPE.ORDER)
        {
            int questID = (int)questInfo.questData.tableData.questID;
            PartyManager.PartySetting party_setting = new PartyManager.PartySetting(false, 0, 0, 0, 0);
            MonoBehaviourSingleton <PartyManager> .I.SendCreate(questID, party_setting, delegate(bool is_success)
            {
                if (is_success)
                {
                    CoopApp.EnterPartyQuest(matching_end_action);
                }
                else
                {
                    QuestResume(false);
                }
            });
        }
        else
        {
            CoopApp.EnterQuest(matching_end_action);
        }
    }
예제 #10
0
    private CoopClient OnJoinClient(int client_id, int stgid, int stgidx, bool stghost, int counter = 0)
    {
        //IL_0080: Unknown result type (might be due to invalid IL or missing references)
        //IL_0086: Expected O, but got Unknown
        CoopClient coopClient = null;

        coopClient = clients.FindByClientId(client_id);
        if (coopClient != null)
        {
            Logd("OnJoinClient: already join. client={0}", coopClient);
            return(coopClient);
        }
        if (client_id == MonoBehaviourSingleton <UserInfoManager> .I.userInfo.id)
        {
            coopClient = MonoBehaviourSingleton <CoopManager> .I.coopMyClient;
            coopClient.Init(client_id);
        }
        else
        {
            coopClient = (CoopClient)Utility.CreateGameObjectAndComponent("CoopClient", this.get_transform(), -1);
            coopClient.Init(client_id);
            MonoBehaviourSingleton <CoopManager> .I.coopMyClient.WelcomeClient(client_id);

            if (QuestManager.IsValidInGameExplore())
            {
                if (MonoBehaviourSingleton <CoopManager> .I.isStageHost)
                {
                    MonoBehaviourSingleton <CoopManager> .I.coopRoom.packetSender.SendSyncAllPortalPoint(MonoBehaviourSingleton <QuestManager> .I.GetExploreStatus().GetAllPortalData(), client_id);

                    MonoBehaviourSingleton <CoopManager> .I.coopRoom.packetSender.SendSyncExploreBoss(MonoBehaviourSingleton <QuestManager> .I.GetExploreStatus(), client_id);
                }
                if (MonoBehaviourSingleton <StageObjectManager> .IsValid() && MonoBehaviourSingleton <StageObjectManager> .I.self != null)
                {
                    MonoBehaviourSingleton <CoopManager> .I.coopRoom.packetSender.SendSyncPlayerStatus(MonoBehaviourSingleton <StageObjectManager> .I.self, client_id);
                }
            }
            else if (MonoBehaviourSingleton <QuestManager> .IsValid() && MonoBehaviourSingleton <QuestManager> .I.IsDefenseBattle())
            {
                if (MonoBehaviourSingleton <CoopManager> .I.isStageHost && MonoBehaviourSingleton <InGameProgress> .IsValid())
                {
                    MonoBehaviourSingleton <CoopManager> .I.coopRoom.packetSender.SendSyncDefenseBattle(MonoBehaviourSingleton <InGameProgress> .I.defenseBattleEndurance);
                }
            }
            else if (QuestManager.IsValidInGameWaveMatch() && MonoBehaviourSingleton <CoopManager> .I.isStageHost && !MonoBehaviourSingleton <InGameProgress> .IsValid())
            {
                goto IL_01d8;
            }
        }
        goto IL_01d8;
IL_01d8:
        coopClient.SetStage(stgid, stgidx, stghost);
        int num = slotInfos.FindIndex((FieldModel.SlotInfo s) => s.userId == client_id);

        if (num >= 0)
        {
            FieldModel.SlotInfo slotInfo = slotInfos[num];
            coopClient.Activate(slotInfo.userId, slotInfo.token, slotInfo.userInfo, num);
        }
        else if (counter == 0)
        {
            CoopApp.UpdateField(null);
        }
        clients.Add(coopClient);
        if (MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId == coopClient.stageId)
        {
            MonoBehaviourSingleton <CoopManager> .I.coopStage.OnJoinClient(coopClient);
        }
        return(coopClient);
    }
    private IEnumerator DoInitialize()
    {
        yield return((object)null);

        if (MonoBehaviourSingleton <InputManager> .IsValid())
        {
            MonoBehaviourSingleton <InputManager> .I.SetDisable(INPUT_DISABLE_FACTOR.INGAME_GRAB, false);

            MonoBehaviourSingleton <InputManager> .I.SetDisable(INPUT_DISABLE_FACTOR.INGAME_COMMAND, false);
        }
        MonoBehaviourSingleton <InGameManager> .I.ResumeQuestTransferInfo();

        bool keep_record          = false;
        bool is_back_transition   = false;
        bool is_back_online_field = false;

        if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToField)
        {
            MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToField = false;
            if (MonoBehaviourSingleton <QuestManager> .IsValid())
            {
                MonoBehaviourSingleton <QuestManager> .I.ClearPlayData();
            }
            if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate && MonoBehaviourSingleton <InGameRecorder> .I.isVictory)
            {
                MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapPortalID(MonoBehaviourSingleton <InGameManager> .I.beforePortalID);

                MonoBehaviourSingleton <InGameManager> .I.isGateQuestClear = true;
            }
            else if (MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo != null)
            {
                FieldManager.FieldTransitionInfo trans_info = MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo;
                MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapPortalID(trans_info.portalID, trans_info.mapX, trans_info.mapZ, trans_info.mapDir);

                is_back_transition = true;
                if (MonoBehaviourSingleton <InGameManager> .I.isQuestHappen)
                {
                    is_back_online_field = true;
                }
            }
            MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo = null;
            MonoBehaviourSingleton <InGameManager> .I.isQuestHappen      = false;
            MonoBehaviourSingleton <InGameManager> .I.isQuestPortal      = false;
            MonoBehaviourSingleton <InGameManager> .I.isQuestGate        = false;
            MonoBehaviourSingleton <InGameManager> .I.isStoryPortal      = false;
        }
        bool          matching_flag       = false;
        Action <bool> matching_end_action = delegate(bool is_connect)
        {
            if (!is_connect)
            {
                ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_01ba: stateMachine*/)._003C_003Ef__this.coopServerInvalidFlag = true;
            }
            else
            {
                ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_01ba: stateMachine*/)._003Cmatching_flag_003E__4 = true;
            }
        };

        if (MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldToQuest)
        {
            MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldToQuest = false;
            if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate)
            {
                if (MonoBehaviourSingleton <FieldManager> .IsValid())
                {
                    MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData();
                }
                if (MonoBehaviourSingleton <QuestManager> .IsValid() && MonoBehaviourSingleton <QuestManager> .I.GetVorgonQuestType() != 0)
                {
                    CoopApp.EnterQuestOffline(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
                    {
                        ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0221: stateMachine*/)._003Cmatching_end_action_003E__5(is_c);
                    });
                }
                else if (MonoBehaviourSingleton <QuestManager> .I.IsForceDefeatQuest())
                {
                    CoopApp.EnterQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
                    {
                        ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0246: stateMachine*/)._003Cmatching_end_action_003E__5(is_c);
                    });
                }
                else
                {
                    CoopApp.EnterQuestRandomMatching(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
                    {
                        ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_025c: stateMachine*/)._003Cmatching_end_action_003E__5(is_s);
                    });
                }
            }
            else if (MonoBehaviourSingleton <InGameManager> .I.isQuestHappen)
            {
                int now_stage_id4 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId;
                MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange((int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID, 0);

                while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id4 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId)
                {
                    yield return((object)null);
                }
                CoopApp.EnterQuestOnly(delegate
                {
                    ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_02e7: stateMachine*/)._003Cmatching_end_action_003E__5(CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected());
                });
                if (MonoBehaviourSingleton <CoopManager> .IsValid())
                {
                    MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval();
                }
            }
            else
            {
                if (MonoBehaviourSingleton <FieldManager> .IsValid())
                {
                    MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData();
                }
                CoopApp.EnterQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
                {
                    ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0325: stateMachine*/)._003Cmatching_end_action_003E__5(is_c);
                });
            }
            if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate)
            {
                isEncounterBoss = true;
            }
        }
        else if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToQuest)
        {
            MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToQuest = false;
            if (MonoBehaviourSingleton <FieldManager> .IsValid())
            {
                MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData();
            }
            CoopApp.EnterPartyQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s)
            {
                ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0384: stateMachine*/)._003Cmatching_end_action_003E__5(is_c);
            });
        }
        else if (QuestManager.IsValidInGame())
        {
            if (MonoBehaviourSingleton <QuestManager> .I.IsExplore() || MonoBehaviourSingleton <InGameManager> .I.IsRush())
            {
                if (MonoBehaviourSingleton <QuestManager> .I.IsExplore())
                {
                    isTransitionFieldMap = true;
                }
                bool is_stage_change = true;
                if (MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry)
                {
                    MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry = false;
                    isTransitionFieldMap = false;
                    is_stage_change      = false;
                    bool  wait             = true;
                    uint  currentMapID     = MonoBehaviourSingleton <FieldManager> .I.currentMapID;
                    float currentStartMapX = MonoBehaviourSingleton <FieldManager> .I.currentStartMapX;
                    float currentStartMapZ = MonoBehaviourSingleton <FieldManager> .I.currentStartMapZ;
                    CoopApp.EnterPartyField(delegate(bool is_m, bool is_c, bool is_r)
                    {
                        ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cwait_003E__8 = false;
                        if (is_r)
                        {
                            ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cis_stage_change_003E__7 = true;
                        }
                        if (((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_id_003E__9 != MonoBehaviourSingleton <FieldManager> .I.currentMapID)
                        {
                            MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_id_003E__9, ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_x_003E__10, ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_z_003E__11, 0f);
                        }
                    }, true);
                    while (wait)
                    {
                        yield return((object)null);
                    }
                }
                else
                {
                    MonoBehaviourSingleton <CoopManager> .I.coopRoom.SnedMoveField((int)MonoBehaviourSingleton <QuestManager> .I.GetLastPortalId());
                }
                int  mapIndex = 0;
                int  questId  = 0;
                uint dstMapId = MonoBehaviourSingleton <FieldManager> .I.currentMapID;
                if (MonoBehaviourSingleton <QuestManager> .I.IsExplore())
                {
                    questId  = (int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID;
                    mapIndex = MonoBehaviourSingleton <QuestManager> .I.ExploreMapIdToIndex(dstMapId);
                }
                else if (MonoBehaviourSingleton <InGameManager> .I.IsRush())
                {
                    questId = (int)MonoBehaviourSingleton <PartyManager> .I.GetQuestId();

                    mapIndex = MonoBehaviourSingleton <InGameManager> .I.GetRushIndex();
                }
                if (is_stage_change && MonoBehaviourSingleton <CoopManager> .I.coopStage.stageIndex != mapIndex)
                {
                    int now_stage_id2 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId;
                    MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange(questId, mapIndex);

                    while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id2 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId)
                    {
                        yield return((object)null);
                    }
                }
                matching_end_action(true);
                keep_record = true;
                if (MonoBehaviourSingleton <InGameManager> .I.IsRush())
                {
                    uint map_id = MonoBehaviourSingleton <QuestManager> .I.GetCurrentMapId();

                    if (MonoBehaviourSingleton <FieldManager> .I.currentMapID != map_id)
                    {
                        MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(map_id, 0f, 0f, 0f);
                    }
                }
                if (MonoBehaviourSingleton <CoopManager> .IsValid())
                {
                    MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval();
                }
                if (dstMapId == MonoBehaviourSingleton <QuestManager> .I.GetExploreBossBatlleMapId() && isTransitionFieldMap)
                {
                    isEncounterBoss = true;
                }
                if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToFieldExplore)
                {
                    fromBossExplore = true;
                    MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToFieldExplore = false;
                }
            }
            else
            {
                int now_stage_id3 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId;
                MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange((int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID, (int)MonoBehaviourSingleton <QuestManager> .I.currentQuestSeriesIndex);

                while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id3 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId)
                {
                    yield return((object)null);
                }
                matching_end_action(true);
                uint map_id2 = MonoBehaviourSingleton <QuestManager> .I.GetCurrentMapId();

                if (MonoBehaviourSingleton <FieldManager> .I.currentMapID != map_id2)
                {
                    MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(map_id2, 0f, 0f, 0f);
                }
                keep_record = true;
                if (MonoBehaviourSingleton <CoopManager> .IsValid())
                {
                    MonoBehaviourSingleton <CoopManager> .I.OnQuestSeriesInterval();
                }
            }
        }
        else if (FieldManager.IsValidInGame())
        {
            isNewField = !MonoBehaviourSingleton <FieldManager> .I.CanJumpToMap(MonoBehaviourSingleton <FieldManager> .I.currentMapID);

            portalID = MonoBehaviourSingleton <FieldManager> .I.currentPortalID;
            if (!is_back_transition && !MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry)
            {
                isTransitionFieldMap = true;
            }
            MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry = false;
            if (is_back_online_field && CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected())
            {
                int now_stage_id = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId;
                MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange(0, 0);

                while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId)
                {
                    yield return((object)null);
                }
                matching_end_action(CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected());
                if (MonoBehaviourSingleton <CoopManager> .IsValid())
                {
                    MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval();
                }
            }
            else
            {
                uint portal_id = MonoBehaviourSingleton <FieldManager> .I.currentPortalID;
                CoopApp.EnterField(portal_id, 0u, delegate(bool is_m, bool is_c, bool is_r)
                {
                    ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0889: stateMachine*/)._003Cmatching_end_action_003E__5(is_c);
                });
            }
        }
        while (!matching_flag && !coopServerInvalidFlag)
        {
            yield return((object)null);
        }
        if (coopServerInvalidFlag)
        {
            base.Initialize();
        }
        else
        {
            if (MonoBehaviourSingleton <UIManager> .IsValid() && MonoBehaviourSingleton <UIManager> .I.mainChat != null)
            {
                MonoBehaviourSingleton <UIManager> .I.mainChat.Open(UITransition.TYPE.OPEN);
            }
            if (!keep_record && MonoBehaviourSingleton <InGameRecorder> .IsValid())
            {
                Object.DestroyImmediate(MonoBehaviourSingleton <InGameRecorder> .I);
            }
            MonoBehaviourSingleton <StageManager> .I.UnloadStage();

            yield return((object)MonoBehaviourSingleton <AppMain> .I.UnloadUnusedAssets(true));

            if (MonoBehaviourSingleton <InGameManager> .IsValid())
            {
                MonoBehaviourSingleton <InGameManager> .I.ClearAllDrop();
            }
            MonoBehaviourSingleton <AppMain> .I.mainCamera.get_gameObject().SetActive(true);

            base.Initialize();
        }
    }