using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using MEC;
using UnityEngine;

// Token: 0x02000121 RID: 289
[Token(Token = "0x2000121")]
public class EffectUpdater
{
	// Token: 0x1700003E RID: 62
	// (get) Token: 0x06000F44 RID: 3908 RVA: 0x00023BB0 File Offset: 0x00021DB0
	[Token(Token = "0x1700003E")]
	public bool IsActive
	{
		[Token(Token = "0x6000F44")]
		[Address(RVA = "0x159E5E0", Offset = "0x159D5E0", VA = "0x18159E5E0")]
		get
		{
			return this.source.activeSelf;
		}
	}

	// Token: 0x1700003F RID: 63
	// (get) Token: 0x06000F45 RID: 3909 RVA: 0x00023BD0 File Offset: 0x00021DD0
	[Token(Token = "0x1700003F")]
	public GameObject Source
	{
		[Token(Token = "0x6000F45")]
		[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80")]
		get
		{
			return this.source;
		}
	}

	// Token: 0x17000040 RID: 64
	// (get) Token: 0x06000F46 RID: 3910 RVA: 0x00023BE4 File Offset: 0x00021DE4
	[Token(Token = "0x17000040")]
	public ParticleSystem Particle
	{
		[Token(Token = "0x6000F46")]
		[Address(RVA = "0x159E600", Offset = "0x159D600", VA = "0x18159E600")]
		get
		{
			return this.particles[0];
		}
	}

	// Token: 0x17000041 RID: 65
	// (get) Token: 0x06000F47 RID: 3911 RVA: 0x00023C04 File Offset: 0x00021E04
	[Token(Token = "0x17000041")]
	public SoundEffect Sound
	{
		[Token(Token = "0x6000F47")]
		[Address(RVA = "0x2990A0", Offset = "0x2980A0", VA = "0x1802990A0")]
		get
		{
			return this.sound;
		}
	}

	// Token: 0x06000F48 RID: 3912 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F48")]
	[Address(RVA = "0x159E490", Offset = "0x159D490", VA = "0x18159E490")]
	public EffectUpdater(GameObject source)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F49 RID: 3913 RVA: 0x00023C18 File Offset: 0x00021E18
	[Token(Token = "0x6000F49")]
	[Address(RVA = "0x159DE10", Offset = "0x159CE10", VA = "0x18159DE10")]
	public EffectUpdater Init(float aliveTime, float recycleTime = 3f)
	{
		this.aliveTime = aliveTime;
		this.recycleTime = recycleTime;
		return this;
	}

	// Token: 0x06000F4A RID: 3914 RVA: 0x00023C34 File Offset: 0x00021E34
	[Token(Token = "0x6000F4A")]
	[Address(RVA = "0xAB3A30", Offset = "0xAB2A30", VA = "0x180AB3A30")]
	public EffectUpdater BindRecycleHandler(Action<EffectUpdater> recycleHandler)
	{
		this.recycleHandler = recycleHandler;
		return this;
	}

	// Token: 0x06000F4B RID: 3915 RVA: 0x00023C4C File Offset: 0x00021E4C
	[Token(Token = "0x6000F4B")]
	[Address(RVA = "0x159E3D0", Offset = "0x159D3D0", VA = "0x18159E3D0")]
	public EffectUpdater UpdateTimeScale(float timeScale)
	{
		this.timeScale = timeScale;
		this.UpdateTimeScale();
		return this;
	}

	// Token: 0x06000F4C RID: 3916 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F4C")]
	[Address(RVA = "0x159E3F0", Offset = "0x159D3F0", VA = "0x18159E3F0")]
	public EffectUpdater UpdateTransform(Vector3 position, Quaternion rotation)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F4D RID: 3917 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F4D")]
	[Address(RVA = "0x159DE20", Offset = "0x159CE20", VA = "0x18159DE20")]
	public void PlayEffect(bool withSound = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F4E RID: 3918 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F4E")]
	[Address(RVA = "0x159E040", Offset = "0x159D040", VA = "0x18159E040")]
	public void StopEffect(float duration)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F4F RID: 3919 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F4F")]
	[Address(RVA = "0x159E120", Offset = "0x159D120", VA = "0x18159E120")]
	public void StopEffect()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F50 RID: 3920 RVA: 0x00023C68 File Offset: 0x00021E68
	[Token(Token = "0x6000F50")]
	[Address(RVA = "0x159E270", Offset = "0x159D270", VA = "0x18159E270")]
	public void UpdateParent(Transform parent)
	{
		this.source.transform.parentInternal = parent;
	}

	// Token: 0x06000F51 RID: 3921 RVA: 0x00023C8C File Offset: 0x00021E8C
	[Token(Token = "0x6000F51")]
	[Address(RVA = "0x159E2B0", Offset = "0x159D2B0", VA = "0x18159E2B0")]
	public void UpdateTimeScale(TimeData stageTimeData)
	{
		float resultTimeScale = stageTimeData.resultTimeScale;
		this.timeScale = resultTimeScale;
		this.UpdateTimeScale();
	}

	// Token: 0x06000F52 RID: 3922 RVA: 0x00023CB4 File Offset: 0x00021EB4
	[Token(Token = "0x6000F52")]
	[Address(RVA = "0x159E2D0", Offset = "0x159D2D0", VA = "0x18159E2D0")]
	private void UpdateTimeScale()
	{
		ParticleSystem[] array = this.particles;
		int num = 0;
		int length = array.Length;
		if (num < length)
		{
			ParticleSystem.MainModule main = array[num].main;
			float num2 = this.timeScale;
			ParticleSystem.MainModule.set_simulationSpeed_Injected(main, num2);
			num++;
		}
		SoundEffect soundEffect = this.sound;
		int num3 = 0;
		if (soundEffect != num3)
		{
			SoundEffect soundEffect2 = this.sound;
			float num4 = this.timeScale;
			soundEffect2.SetTimeScale(num4);
		}
	}

	// Token: 0x06000F53 RID: 3923 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F53")]
	[Address(RVA = "0x159DC30", Offset = "0x159CC30", VA = "0x18159DC30")]
	public void Dispose()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F54 RID: 3924 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F54")]
	[Address(RVA = "0x159DFD0", Offset = "0x159CFD0", VA = "0x18159DFD0")]
	private IEnumerator<float> Play()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F55 RID: 3925 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F55")]
	[Address(RVA = "0x159E200", Offset = "0x159D200", VA = "0x18159E200")]
	private IEnumerator<float> Stop()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x040019BD RID: 6589
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x40019BD")]
	private GameObject source;

	// Token: 0x040019BE RID: 6590
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40019BE")]
	private ParticleSystem[] particles;

	// Token: 0x040019BF RID: 6591
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40019BF")]
	private SoundEffect sound;

	// Token: 0x040019C0 RID: 6592
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x40019C0")]
	private CoroutineHandle recycleCoroutine;

	// Token: 0x040019C1 RID: 6593
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x40019C1")]
	public Action<EffectUpdater> recycleHandler;

	// Token: 0x040019C2 RID: 6594
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x40019C2")]
	private float aliveTime;

	// Token: 0x040019C3 RID: 6595
	[FieldOffset(Offset = "0x3C")]
	[Token(Token = "0x40019C3")]
	private float recycleTime;

	// Token: 0x040019C4 RID: 6596
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x40019C4")]
	private float timeScale;
}
