private IEnumerator InitPortalStatusImpl(Action onComplete)
    {
        LoadingQueue loadQueue = new LoadingQueue(this);
        UIntKeyTable <LoadObject> loadTextures = new UIntKeyTable <LoadObject>();

        for (int k = 0; k < locations.Length; k++)
        {
            FieldMapTable.FieldMapTableData tableData = locations[k].tableData;
            if (tableData != null && tableData.hasChildRegion && loadTextures.Get(tableData.iconId) == null)
            {
                loadTextures.Add(tableData.iconId, loadQueue.Load(RESOURCE_CATEGORY.DUNGEON_ICON, ResourceName.GetDungeonIcon(tableData.iconId), false));
            }
        }
        if (loadQueue.IsLoading())
        {
            yield return((object)loadQueue.Wait());
        }
        for (int j = 0; j < locations.Length; j++)
        {
            FieldMapTable.FieldMapTableData tableData2 = locations[j].tableData;
            if (tableData2 != null && tableData2.hasChildRegion)
            {
                locations[j].icon = (loadTextures.Get(tableData2.iconId).loadedObject as Texture2D);
            }
        }
        for (int i = 0; i < portals.Length; i++)
        {
            RegionMapPortal portal = portals[i];
            if (portal.IsVisited())
            {
                portal.Open();
            }
        }
        onComplete?.Invoke();
    }
Exemplo n.º 2
0
 private bool IsPortalReverseAndGetPortalData(int portalId, out RegionMapPortal portalData)
 {
     portalData = regionMapRoot.FindEntrancePortal(portalId);
     if (portalData != null)
     {
         return(false);
     }
     portalData = regionMapRoot.FindExitPortal(portalId);
     return(true);
 }
Exemplo n.º 3
0
    private void CreateVisitedLocationSpot()
    {
        OutGameSettingsManager.QuestMap questMap = MonoBehaviourSingleton <OutGameSettingsManager> .I.questMap;
        MonoBehaviourSingleton <FilterManager> .I.StopBlur(questMap.cameraMoveTime, 0f);

        for (int i = 0; i < regionMapRoot.locations.Length; i++)
        {
            RegionMapLocation regionMapLocation          = regionMapRoot.locations[i];
            FieldMapTable.FieldMapTableData fieldMapData = Singleton <FieldMapTable> .I.GetFieldMapData((uint)regionMapLocation.mapId);

            if ((fieldMapData != null || regionMapLocation.mapId == 0) && (fieldMapData == null || FieldManager.IsShowPortal(fieldMapData.jumpPortalID)))
            {
                if (fieldMapData != null && !MonoBehaviourSingleton <FieldManager> .I.CanJumpToMap(fieldMapData))
                {
                    CreateLocationSpot(regionMapLocation, SpotManager.ICON_TYPE.NOT_OPENED, false);
                }
                else if (regionMapLocation.mapId == newMapData.mapID && !eventData.IsOnlyCameraMoveEvent() && !eventData.IsEnterDungeon() && !eventData.IsQuestToField())
                {
                    CreateLocationSpot(regionMapLocation, SpotManager.ICON_TYPE.NOT_OPENED, false);
                }
                else
                {
                    SpotManager.ICON_TYPE iCON_TYPE = SpotManager.ICON_TYPE.CLEARED;
                    if (regionMapLocation.portal.Length > 0)
                    {
                        for (int j = 0; j < regionMapLocation.portal.Length; j++)
                        {
                            RegionMapPortal regionMapPortal = regionMapLocation.portal[j];
                            if (!regionMapPortal.IsVisited() && regionMapPortal.IsShow())
                            {
                                iCON_TYPE = SpotManager.ICON_TYPE.NEW;
                                break;
                            }
                        }
                    }
                    if (fieldMapData != null)
                    {
                        if (FieldManager.IsToHardPortal(fieldMapData.jumpPortalID))
                        {
                            iCON_TYPE = SpotManager.ICON_TYPE.HARD;
                            if (iCON_TYPE == SpotManager.ICON_TYPE.NEW)
                            {
                                iCON_TYPE = SpotManager.ICON_TYPE.HARD_NEW;
                            }
                        }
                        if (fieldMapData.hasChildRegion && fieldMapData.childRegionId != regionId)
                        {
                            iCON_TYPE = SpotManager.ICON_TYPE.CHILD_REGION;
                        }
                    }
                    CreateLocationSpot(regionMapLocation, iCON_TYPE, false);
                }
            }
        }
    }
Exemplo n.º 4
0
 private void SetPlayerMakerToStartPosition(RegionMapPortal portal, bool reverse)
 {
     //IL_000c: Unknown result type (might be due to invalid IL or missing references)
     //IL_0028: Unknown result type (might be due to invalid IL or missing references)
     //IL_0042: Unknown result type (might be due to invalid IL or missing references)
     playerMarker.SetParent(portal.fromLocation.get_transform());
     if (reverse)
     {
         playerMarker.SetParent(portal.toLocation.get_transform());
     }
     playerMarker.set_localPosition(MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerOffset);
 }
Exemplo n.º 5
0
    private void SetCameraToMiddlePoint(RegionMapPortal portal)
    {
        //IL_0006: Unknown result type (might be due to invalid IL or missing references)
        //IL_000b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0016: Unknown result type (might be due to invalid IL or missing references)
        //IL_001b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0020: Unknown result type (might be due to invalid IL or missing references)
        //IL_002a: Unknown result type (might be due to invalid IL or missing references)
        //IL_002f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0030: Unknown result type (might be due to invalid IL or missing references)
        //IL_0037: Unknown result type (might be due to invalid IL or missing references)
        //IL_003c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0050: Unknown result type (might be due to invalid IL or missing references)
        //IL_0055: Unknown result type (might be due to invalid IL or missing references)
        //IL_005a: Unknown result type (might be due to invalid IL or missing references)
        //IL_0061: Unknown result type (might be due to invalid IL or missing references)
        //IL_0066: Unknown result type (might be due to invalid IL or missing references)
        Vector3 val = (portal.fromLocation.get_transform().get_position() + portal.toLocation.get_transform().get_position()) / 2f;

        val -= _camera.get_transform().get_forward() * MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.eventCameraDistance;
        _camera.get_transform().set_position(val);
    }
Exemplo n.º 6
0
    private IEnumerator DoFindNewDungeonEvent(RegionMapPortal portal, LoadObject newRegion)
    {
        if (blurFilter != null)
        {
            bool wait3 = true;
            blurFilter.CacheRenderTarget(delegate
            {
                //IL_000b: Unknown result type (might be due to invalid IL or missing references)
                ((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_005d: stateMachine*/)._003C_003Ef__this.playerMarker.get_gameObject().SetActive(false);
                ((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_005d: stateMachine*/)._003C_003Ef__this.playerMarker.SetParent(((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_005d: stateMachine*/)._003C_003Ef__this._transform);
                ((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_005d: stateMachine*/)._003Cwait_003E__0 = false;
            }, true);
            while (wait3)
            {
                yield return((object)null);
            }
            uiFrontMapSprite.alpha = 1f;
            spots.ClearAllSpot();
            Object.Destroy(regionMapRoot.get_gameObject());
            RegionMapLocation newLocation = null;
            if (newRegion != null)
            {
                regionMapRoot = ResourceUtility.Realizes(newRegion.loadedObject, MonoBehaviourSingleton <AppMain> .I._transform, -1).get_gameObject().GetComponent <RegionMapRoot>();
                if (regionMapRoot != null)
                {
                    wait3 = true;
                    regionMapRoot.InitPortalStatus(delegate
                    {
                        ((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_0136: stateMachine*/)._003Cwait_003E__0 = false;
                    });
                    while (wait3)
                    {
                        yield return((object)null);
                    }
                    CreateVisitedLocationSpot();
                    newLocation = regionMapRoot.FindLocation(portal.toLocation.mapId);
                    if (newLocation != null)
                    {
                        SetCameraToLocation(newLocation);
                        playerMarker.SetParent(newLocation.get_transform());
                        playerMarker.set_localPosition(MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerOffset);
                    }
                }
            }
            wait3 = true;
            float   blurTime   = 0.25f;
            Vector2 blurCenter = new Vector2(0.5f, 0.5f);
            blurFilter.StartBlurFilter(0.01f, 0.25f, blurTime, blurCenter, delegate
            {
                ((_003CDoFindNewDungeonEvent_003Ec__Iterator169) /*Error near IL_023f: stateMachine*/)._003Cwait_003E__0 = false;
            });
            uiMapSprite.alpha = 0f;
            TweenAlpha.Begin(uiMapSprite.get_gameObject(), blurTime, 1f);
            TweenAlpha.Begin(uiFrontMapSprite.get_gameObject(), blurTime, 0f);
            while (wait3)
            {
                yield return((object)null);
            }
            yield return((object)new WaitForSeconds(1f));

            if (regionMapRoot != null && newLocation != null)
            {
                GameObject obj = CreateLocationSpot(newLocation, SpotManager.ICON_TYPE.NEW, true);
                if (obj != null)
                {
                    obj.get_transform().set_localScale(new Vector3(0.1f, 0.1f, 0.1f));
                    TweenScale.Begin(obj, 0.3f, Vector3.get_one());
                    SoundManager.PlayOneShotUISE(40000033);
                }
                yield return((object)new WaitForSeconds(0.5f));

                playerMarker.get_gameObject().SetActive(true);
                playerMarker.set_localScale(new Vector3(0f, 0f, 0f));
                TweenScale.Begin(playerMarker.get_gameObject(), MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerScaleTime, Vector3.get_one());
            }
            yield return((object)new WaitForSeconds(1.5f));
        }
    }
Exemplo n.º 7
0
    private IEnumerator DoExitEvent(RegionMapPortal portal, rymFX effect, float delay = 0f, bool reverse = false, bool findDungeon = false)
    {
        if (effect != null)
        {
            EffectManager.ReleaseEffect(effect.get_gameObject(), true, false);
            effect = null;
        }
        yield return((object)new WaitForSeconds(delay));

        LoadObject loadObj = null;

        if (findDungeon)
        {
            LoadingQueue loadQueue = new LoadingQueue(this);
            FieldMapTable.FieldMapTableData mapData = Singleton <FieldMapTable> .I.GetFieldMapData((uint)portal.toLocation.mapId);

            loadObj = loadQueue.Load(RESOURCE_CATEGORY.WORLDMAP, "RegionMap_" + mapData.childRegionId.ToString("D3"), false);
            if (null != dungeonOpenEffect)
            {
                EffectCtrl eff = dungeonOpenEffect.GetComponent <EffectCtrl>();
                eff.Reset();
                for (int i = 0; i < eff.particles.Length; i++)
                {
                    ParticleSystem particle = eff.particles[i];
                    if (!(null == particle))
                    {
                        Renderer renderer = particle.GetComponent <Renderer>();
                        if (!(null == renderer))
                        {
                            renderer.set_sortingOrder(2);
                        }
                    }
                }
                dungeonOpenEffect.get_gameObject().SetActive(true);
                AudioClip clip_effect = eff.attachedAudioClip;
                if (clip_effect != null)
                {
                    int SE_CONFIG_AREA_LOCATION = eff.attachedAudioSettingID;
                    SoundManager.PlayOneShotUISE(clip_effect, SE_CONFIG_AREA_LOCATION);
                }
                yield return((object)new WaitForSeconds(eff.waitTime));
            }
            if (loadQueue.IsLoading())
            {
                yield return((object)loadQueue.Wait());
            }
        }
        TweenScale.Begin(playerMarker.get_gameObject(), MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerScaleTime, Vector3.get_zero());
        yield return((object)new WaitForSeconds(MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerScaleTime));

        float   timer   = 0f;
        Vector3 target2 = portal.toLocation.get_transform().get_position();

        playerMarker.SetParent(portal.toLocation.get_transform());
        if (reverse)
        {
            target2 = portal.fromLocation.get_transform().get_position();
            playerMarker.SetParent(portal.fromLocation.get_transform());
        }
        playerMarker.set_localPosition(MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerOffset);
        target2 -= _camera.get_transform().get_forward() * MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.eventCameraDistance;
        Vector3 startPos = _camera.get_transform().get_position();

        TweenScale.Begin(playerMarker.get_gameObject(), MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.playerMarkerScaleTime, Vector3.get_one());
        while (timer <= MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.eventCameraMoveTime)
        {
            timer += Time.get_deltaTime();
            _camera.get_transform().set_position(Vector3.Lerp(startPos, target2, timer / MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.eventCameraMoveTime));
            yield return((object)null);
        }
        _camera.get_transform().set_position(target2);
        yield return((object)new WaitForSeconds(MonoBehaviourSingleton <GlobalSettingsManager> .I.worldMapParam.eventRemainTime));

        if (findDungeon)
        {
            yield return((object)this.StartCoroutine(DoFindNewDungeonEvent(portal, loadObj)));
        }
        OnQuery_EXIT();
    }