using System; using UnityEngine; namespace MU3 { // Token: 0x02000739 RID: 1849 public class MotionEffectInstance { // Token: 0x06002FB3 RID: 12211 RVA: 0x000FE618 File Offset: 0x000FE618 public MotionEffectInstance(MotionEffectDefine effectDefine, MotionEffectBase effectInstance) { this.effectDefine = effectDefine; this._effectInstance = effectInstance; if (effectDefine.isSetPosition) { this._effectInstance.setPosition(effectDefine.positionToFollow); } if (effectDefine.isSetRotation) { this._effectInstance.setRotation(effectDefine.rotationToFollow); } } // Token: 0x06002FB4 RID: 12212 RVA: 0x000FE674 File Offset: 0x000FE674 public static MotionEffectInstance create(MotionEffectDefine effectDefine) { MotionEffectInstance result = null; GameObject gameObject = UnityEngine.Object.Instantiate(effectDefine.prefab); if (gameObject != null) { ParticleSystem componentInChildren = gameObject.GetComponentInChildren(); if (componentInChildren != null) { MotionEffectShuriken motionEffectShuriken = new MotionEffectShuriken(); motionEffectShuriken.initialize(gameObject); result = new MotionEffectInstance(effectDefine, motionEffectShuriken); } else { MotionEffectSimple motionEffectSimple = new MotionEffectSimple(); motionEffectSimple.initialize(gameObject); result = new MotionEffectInstance(effectDefine, motionEffectSimple); } } return result; } // Token: 0x06002FB5 RID: 12213 RVA: 0x000FE6E4 File Offset: 0x000FE6E4 public void play() { this._effectInstance.start(); this.isPlaying = true; } // Token: 0x06002FB6 RID: 12214 RVA: 0x000FE6F8 File Offset: 0x000FE6F8 public void stop() { this._effectInstance.stop(); this.isPlaying = false; } // Token: 0x06002FB7 RID: 12215 RVA: 0x000FE70C File Offset: 0x000FE70C public void destroy() { this._effectInstance.destroy(); this.isDestroyed = true; this.isPlaying = false; } // Token: 0x06002FB8 RID: 12216 RVA: 0x000FE728 File Offset: 0x000FE728 public void execute() { this._duration += Time.deltaTime; if (this.effectDefine.isFollow) { if (this.effectDefine.isSetPosition) { this._effectInstance.setPosition(this.effectDefine.positionToFollow); } if (this.effectDefine.isSetRotation) { this._effectInstance.setRotation(this.effectDefine.rotationToFollow); } } if (this.isPlaying && this._duration > this.effectDefine.minimumLife && this._effectInstance.isFinished()) { this.destroy(); } else if (this.effectDefine.isDestoryByScale && this.effectDefine.scaleTransform != null) { if (this.effectDefine.scaleTransform.lossyScale.magnitude * 0.57735026f < this.effectDefine.scaleThreashold) { this._isOnceBelowScaleThreashold = true; } else if (this._isOnceBelowScaleThreashold) { this.destroy(); } } } // Token: 0x17000702 RID: 1794 // (get) Token: 0x06002FB9 RID: 12217 RVA: 0x000FE850 File Offset: 0x000FE850 // (set) Token: 0x06002FBA RID: 12218 RVA: 0x000FE858 File Offset: 0x000FE858 public MotionEffectDefine effectDefine { get; private set; } // Token: 0x17000703 RID: 1795 // (get) Token: 0x06002FBB RID: 12219 RVA: 0x000FE864 File Offset: 0x000FE864 // (set) Token: 0x06002FBC RID: 12220 RVA: 0x000FE86C File Offset: 0x000FE86C public bool isPlaying { get; private set; } // Token: 0x17000704 RID: 1796 // (get) Token: 0x06002FBD RID: 12221 RVA: 0x000FE878 File Offset: 0x000FE878 // (set) Token: 0x06002FBE RID: 12222 RVA: 0x000FE880 File Offset: 0x000FE880 public bool isDestroyed { get; private set; } // Token: 0x04005537 RID: 21815 private const float ScaleCoeff = 0.57735026f; // Token: 0x0400553B RID: 21819 private MotionEffectBase _effectInstance; // Token: 0x0400553C RID: 21820 private float _duration; // Token: 0x0400553D RID: 21821 private bool _isOnceBelowScaleThreashold; } }