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()); } } } }
public static void ReleaseEffect(GameObject effect_object, bool isPlayEndAnimation = true, bool immediate = false) { //IL_0072: Unknown result type (might be due to invalid IL or missing references) if (!(effect_object == null)) { if (!MonoBehaviourSingleton <EffectManager> .IsValid()) { Object.Destroy(effect_object); } else { EffectManager i = MonoBehaviourSingleton <EffectManager> .I; EffectInfoComponent component = effect_object.GetComponent <EffectInfoComponent>(); if (component != null && component.destroyLoopEnd) { component.SetLoopAudioObject(null); rymFX component2 = effect_object.GetComponent <rymFX>(); EffectCtrl effectCtrl = null; if (component2 == null) { effectCtrl = effect_object.GetComponent <EffectCtrl>(); } if (effectCtrl == null && effect_object.get_transform().get_childCount() > 0) { effect_object.GetComponentsInChildren <Renderer>(Temporary.rendererList); int j = 0; for (int count = Temporary.rendererList.Count; j < count; j++) { Temporary.rendererList[j].set_enabled(false); } Temporary.rendererList.Clear(); } effect_object.GetComponents <Trail>(Temporary.trailList); bool flag = false; if (component2 != null && component2.get_enabled()) { component2.AutoDelete = true; component2.LoopEnd = true; flag = true; } else if (effectCtrl != null && effectCtrl.get_enabled()) { effectCtrl.EndLoop(isPlayEndAnimation); flag = true; } if (flag && !immediate) { int k = 0; for (int count2 = Temporary.trailList.Count; k < count2; k++) { Temporary.trailList[k].StartDeleteFade(); } Temporary.trailList.Clear(); } else { i.StockOrDestroy(effect_object, true); int l = 0; for (int count3 = Temporary.trailList.Count; l < count3; l++) { Temporary.trailList[l].SetAutoDelete(); } Temporary.trailList.Clear(); } } else { i.StockOrDestroy(effect_object, true); } } } }