private static void PlaySound(rymFX fx, rymFXSoundInfo info)
 {
     //IL_0018: Unknown result type (might be due to invalid IL or missing references)
     //IL_0074: Unknown result type (might be due to invalid IL or missing references)
     //IL_0079: Expected O, but got Unknown
     if (fx.get_enabled() && (!info.loop || !(info.audio_source != null)) && !string.IsNullOrEmpty(info.clip_name))
     {
         ResourceLink component = fx.GetComponent <ResourceLink>();
         if (component != null)
         {
             string    fileNameWithoutExtension = Path.GetFileNameWithoutExtension(info.clip_name);
             AudioClip val = component.Get <AudioClip>(fileNameWithoutExtension);
             if (val != null)
             {
                 AudioObject audioObject = SoundManager.PlaySE(val, info.loop, fx.get__transform());
                 if (audioObject != null && info.loop)
                 {
                     EffectInfoComponent component2 = fx.GetComponent <EffectInfoComponent>();
                     if (component2 != null)
                     {
                         component2.SetLoopAudioObject(audioObject);
                     }
                 }
             }
             else
             {
                 Log.Error(LOG.RESOURCE, "{0} is not found. ({1})", fileNameWithoutExtension, fx.get_name());
             }
         }
     }
 }
    private IEnumerator DoStartLogoAnimation(bool tutorial_flag, Action onComplete, Action onLoop)
    {
        logo.root.set_position(Vector3.get_up() * 1000f);
        logo.root.set_rotation(Quaternion.get_identity());
        logo.root.set_localScale(Vector3.get_one());
        logo.camera.get_gameObject().SetActive(true);
        Material faderMat = logo.fader.get_material();
        Material logoMat  = logo.logo.get_material();

        logo.camera.set_depth(-1f);
        logo.dragonRoot.SetActive(false);
        Color dragonPlaneColor = new Color(1f, 1f, 1f, 0f);

        logo.dragonPlane.get_sharedMaterial().SetColor("Color", dragonPlaneColor);
        if (tutorial_flag)
        {
            this.StartCoroutine(DoFadeOut());
            SoundManager.RequestBGM(11, false);
            while (MonoBehaviourSingleton <SoundManager> .I.playingBGMID != 11 || MonoBehaviourSingleton <SoundManager> .I.changingBGM)
            {
                yield return((object)null);
            }
            yield return((object)new WaitForSeconds(2.3f));
        }
        else
        {
            faderMat.SetColor("_Color", new Color(0f, 0f, 0f, 0f));
        }
        effects = (GameObject[])new GameObject[titleEffectPrefab.Length];
        for (int j = 0; j < titleEffectPrefab.Length; j++)
        {
            rymFX effect = ResourceUtility.Realizes(titleEffectPrefab[j], -1).GetComponent <rymFX>();
            effect.Cameras = (Camera[])new Camera[1]
            {
                logo.camera
            };
            effect.get__transform().set_localScale(effect.get__transform().get_localScale() * 10f);
            if (j == 1)
            {
                effect.get__transform().set_position(new Vector3(0.568f, 999.946f, 0.1f));
            }
            else
            {
                effect.get__transform().set_position(logo.eye.get_transform().get_position());
            }
            effects[j] = effect.get_gameObject();
        }
        yield return((object)new WaitForSeconds(1f));

        float timer4 = 0f;

        while (timer4 < 0.17f)
        {
            timer4 += Time.get_deltaTime();
            float s = Mathf.Clamp01(timer4 / 0.17f);
            logo.eye.get_transform().set_localScale(Vector3.get_one() * s * 10f);
            logoMat.SetFloat("_AlphaRate", -1f + timer4 * 2f);
            yield return((object)null);
        }
        logo.dragonRoot.SetActive(true);
        while (timer4 < 1f)
        {
            timer4 += Time.get_deltaTime();
            logoMat.SetFloat("_AlphaRate", -1f + timer4 * 2f);
            dragonPlaneColor.a = timer4;
            logo.dragonPlane.get_sharedMaterial().SetColor("Color", dragonPlaneColor);
            yield return((object)null);
        }
        dragonPlaneColor.a = 1f;
        logo.dragonPlane.get_sharedMaterial().SetColor("Color", dragonPlaneColor);
        timer4 = 0f;
        while (timer4 < 0.5f)
        {
            timer4 += Time.get_deltaTime();
            logoMat.SetFloat("_BlendRate", timer4 * 2f);
            yield return((object)null);
        }
        logo.bg.SetActive(true);
        logo.effect1.SetActive(true);
        timer4 = 0f;
        Material bgMaterial = logo.bgFader.get_material();

        while (timer4 < 0.7f)
        {
            timer4 += Time.get_deltaTime();
            bgMaterial.set_color(new Color(1f, 1f, 1f, 1f - timer4 / 0.7f));
            yield return((object)null);
        }
        if (!tutorial_flag)
        {
            onLoop?.Invoke();
            while (!tutorial_flag)
            {
                yield return((object)null);
            }
        }
        yield return((object)new WaitForSeconds(0.3f));

        if (titleUIPrefab != null)
        {
            Transform title_ui = ResourceUtility.Realizes(titleUIPrefab, MonoBehaviourSingleton <UIManager> .I.uiRootTransform, 5);
            if (title_ui != null)
            {
                Transform t3 = Utility.Find(title_ui, "BTN_START");
                if (t3 != null)
                {
                    t3.GetComponent <Collider>().set_enabled(false);
                }
                t3 = Utility.Find(title_ui, "BTN_ADVANCED_LOGIN");
                if (t3 != null)
                {
                    t3.get_gameObject().SetActive(false);
                }
                t3 = Utility.Find(title_ui, "BTN_CLEARCACHE");
                if (t3 != null)
                {
                    t3.get_gameObject().SetActive(false);
                }
            }
        }
        yield return((object)new WaitForSeconds(6f));

        timer4 = 0f;
        while (timer4 < 0.3f)
        {
            timer4 += Time.get_deltaTime();
            faderMat.SetColor("_Color", new Color(0f, 0f, 0f, timer4 / 0.3f));
            yield return((object)null);
        }
        MonoBehaviourSingleton <InputManager> .I.SetDisable(INPUT_DISABLE_FACTOR.INGAME_TUTORIAL, false);

        for (int i = 0; i < effects.Length; i++)
        {
            EffectManager.ReleaseEffect(effects[i], true, false);
        }
        onComplete?.Invoke();
    }