Exemplo n.º 1
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);
                }
            });
        }
    }
    public override void StartSection()
    {
        //IL_0016: Unknown result type (might be due to invalid IL or missing references)
        //IL_0023: Expected O, but got Unknown
        //IL_00ab: Unknown result type (might be due to invalid IL or missing references)
        //IL_00b8: Expected O, but got Unknown
        //IL_0104: Unknown result type (might be due to invalid IL or missing references)
        //IL_0112: Expected O, but got Unknown
        //IL_0145: Unknown result type (might be due to invalid IL or missing references)
        //IL_0153: Expected O, but got Unknown
        //IL_01b9: Unknown result type (might be due to invalid IL or missing references)
        //IL_01c7: Expected O, but got Unknown
        //IL_01dc: Unknown result type (might be due to invalid IL or missing references)
        //IL_01e9: Expected O, but got Unknown
        if (coopServerInvalidFlag)
        {
            MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "COOP_SERVER_INVALID", null, null, true);
        }
        else if ((isTransitionFieldMap || isEncounterBoss) && !MonoBehaviourSingleton <FieldManager> .I.useFastTravel)
        {
            bool flag  = IsSrcOrDstChildRegion(portalID);
            bool flag2 = IsDifferentRegion(portalID);
            bool flag3 = IsSameField(portalID);
            bool flag4 = MonoBehaviourSingleton <QuestManager> .I.IsExplore();

            if ((MonoBehaviourSingleton <InGameManager> .IsValid() && MonoBehaviourSingleton <InGameManager> .I.isStoryPortal) || flag3)
            {
                MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "INGAME_MAIN", null, null, true);
            }
            else if (flag4)
            {
                ToExplore();
            }
            else if (flag2 && !flag)
            {
                WorldMapOpenNewRegion.EVENT_TYPE eventType = WorldMapOpenNewRegion.EVENT_TYPE.ONLY_CAMERA_MOVE;
                if (isNewField)
                {
                    eventType = WorldMapOpenNewRegion.EVENT_TYPE.NONE;
                }
                WorldMapOpenNewRegion.SectionEventData user_data = new WorldMapOpenNewRegion.SectionEventData(eventType);
                MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "NEW_REGION", user_data, null, true);
            }
            else if (IsJumpPortal(portalID))
            {
                WorldMapOpenNewField.EVENT_TYPE       eventType2 = WorldMapOpenNewField.EVENT_TYPE.QUEST_TO_FIELD;
                WorldMapOpenNewField.SectionEventData user_data2 = new WorldMapOpenNewField.SectionEventData(eventType2, ENEMY_TYPE.BAT);
                MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "NEW_FIELD", user_data2, null, true);
            }
            else
            {
                WorldMapOpenNewField.EVENT_TYPE eventType3 = WorldMapOpenNewField.EVENT_TYPE.ONLY_CAMERA_MOVE;
                if (isNewField)
                {
                    eventType3 = ((flag2 && flag) ? WorldMapOpenNewField.EVENT_TYPE.OPEN_NEW_DUNGEON : WorldMapOpenNewField.EVENT_TYPE.NONE);
                }
                else if (isEncounterBoss)
                {
                    eventType3 = WorldMapOpenNewField.EVENT_TYPE.ENCOUNTER_BOSS;
                }
                else if (flag)
                {
                    eventType3 = WorldMapOpenNewField.EVENT_TYPE.EXIST_IN_DUNGEON;
                }
                WorldMapOpenNewField.SectionEventData user_data3 = new WorldMapOpenNewField.SectionEventData(eventType3, ENEMY_TYPE.BAT);
                MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "NEW_FIELD", user_data3, null, true);
            }
        }
        else
        {
            MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameProgress", this.get_gameObject(), "INGAME_MAIN", null, null, true);
        }
        if (MonoBehaviourSingleton <FieldManager> .IsValid())
        {
            MonoBehaviourSingleton <FieldManager> .I.useFastTravel = false;
        }
    }