using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x020000F8 RID: 248
[Token(Token = "0x20000F8")]
public class EffectPoolFull : IDisposable
{
	// Token: 0x06000DFC RID: 3580 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000DFC")]
	[Address(RVA = "0xA5FAA0", Offset = "0xA5E8A0", VA = "0x180A5FAA0")]
	public void Init(string assetPath, Transform root, int limitation, float aliveTime = 1f, float recycleTime = 3f)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000DFD RID: 3581 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000DFD")]
	[Address(RVA = "0xA5F8C0", Offset = "0xA5E6C0", VA = "0x180A5F8C0")]
	public void Init(GameObject prefab, Transform root, int limitation, float aliveTime = 1f, float recycleTime = 3f)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000DFE RID: 3582 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000DFE")]
	[Address(RVA = "0xA5F930", Offset = "0xA5E730", VA = "0x180A5F930")]
	private void Init(int limitation, float aliveTime, float recycleTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000DFF RID: 3583 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000DFF")]
	[Address(RVA = "0xA5FBD0", Offset = "0xA5E9D0", VA = "0x180A5FBD0")]
	public GameObject NewUse(Vector3 position, Quaternion rotation, bool withSound = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E00 RID: 3584 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E00")]
	[Address(RVA = "0xA5FB40", Offset = "0xA5E940", VA = "0x180A5FB40")]
	public GameObject NewUse(bool withSound = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E01 RID: 3585 RVA: 0x0002192C File Offset: 0x0001FB2C
	[Token(Token = "0x6000E01")]
	[Address(RVA = "0xA5FCF0", Offset = "0xA5EAF0", VA = "0x180A5FCF0")]
	public void SetTimeScale(float timeScale)
	{
		EffectUpdater[] array = this.updaterPool;
		int num = 0;
		this.timeScale = timeScale;
		int length = array.Length;
		if (num < length)
		{
			EffectUpdater effectUpdater = array[num];
			float num2 = this.timeScale;
			effectUpdater.timeScale = num2;
			effectUpdater.UpdateTimeScale();
			num++;
		}
	}

	// Token: 0x06000E02 RID: 3586 RVA: 0x0002197C File Offset: 0x0001FB7C
	[Token(Token = "0x6000E02")]
	[Address(RVA = "0xA5FE10", Offset = "0xA5EC10", VA = "0x180A5FE10")]
	public void Stop(float recycleTime)
	{
		if (!this.hasDisposed)
		{
			EffectUpdater[] array = this.updaterPool;
			int num = this.pointer;
			if (array[num].source.activeSelf)
			{
				EffectUpdater[] array2 = this.updaterPool;
				int num2 = this.pointer;
				array2[num2].StopEffect(recycleTime);
			}
		}
	}

	// Token: 0x06000E03 RID: 3587 RVA: 0x000219D8 File Offset: 0x0001FBD8
	[Token(Token = "0x6000E03")]
	[Address(RVA = "0xA5FEB0", Offset = "0xA5ECB0", VA = "0x180A5FEB0")]
	public void Stop(int index, float recycleTime)
	{
		if (!this.hasDisposed && this.updaterPool[index].source.activeSelf)
		{
			this.updaterPool[index].StopEffect(recycleTime);
		}
	}

	// Token: 0x06000E04 RID: 3588 RVA: 0x00021A20 File Offset: 0x0001FC20
	[Token(Token = "0x6000E04")]
	[Address(RVA = "0xA5FD70", Offset = "0xA5EB70", VA = "0x180A5FD70")]
	public void StopAll(float recycleTime)
	{
		if (!this.hasDisposed)
		{
			EffectUpdater[] array = this.updaterPool;
			int num = 0;
			int length = array.Length;
			if (num < length)
			{
				EffectUpdater effectUpdater = array[num];
				if (effectUpdater.source.activeSelf)
				{
					effectUpdater.StopEffect(recycleTime);
				}
				num++;
			}
		}
	}

	// Token: 0x06000E05 RID: 3589 RVA: 0x00021A74 File Offset: 0x0001FC74
	[Token(Token = "0x6000E05")]
	[Address(RVA = "0xA5F290", Offset = "0xA5E090", VA = "0x180A5F290")]
	public void CloseAll()
	{
		if (!this.hasDisposed)
		{
			EffectUpdater[] array = this.updaterPool;
			int num = 0;
			int length = array.Length;
			if (num < length)
			{
				EffectUpdater effectUpdater = array[num];
				if (effectUpdater.source.activeSelf)
				{
					effectUpdater.Dispose();
				}
				num++;
			}
		}
	}

	// Token: 0x06000E06 RID: 3590 RVA: 0x00021AC4 File Offset: 0x0001FCC4
	[Token(Token = "0x6000E06")]
	[Address(RVA = "0xA5F6B0", Offset = "0xA5E4B0", VA = "0x180A5F6B0")]
	public Transform GetSource()
	{
		return this.prefab.transform;
	}

	// Token: 0x06000E07 RID: 3591 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E07")]
	[Address(RVA = "0xA5F5A0", Offset = "0xA5E3A0", VA = "0x180A5F5A0")]
	public GameObject GetGameObject()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E08 RID: 3592 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E08")]
	[Address(RVA = "0xA5F460", Offset = "0xA5E260", VA = "0x180A5F460")]
	public GameObject[] GetAllGameObjects()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E09 RID: 3593 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E09")]
	[Address(RVA = "0xA5F5F0", Offset = "0xA5E3F0", VA = "0x180A5F5F0")]
	public ParticleSystem GetParticle()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E0A RID: 3594 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E0A")]
	[Address(RVA = "0xA5F660", Offset = "0xA5E460", VA = "0x180A5F660")]
	public SoundEffect GetSoundEffect()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E0B RID: 3595 RVA: 0x00021AE4 File Offset: 0x0001FCE4
	[Token(Token = "0x6000E0B")]
	[Address(RVA = "0xA5F440", Offset = "0xA5E240", VA = "0x180A5F440")]
	public float GetAliveTime()
	{
		return this.data.aliveTime;
	}

	// Token: 0x06000E0C RID: 3596 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E0C")]
	[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
	public void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E0D RID: 3597 RVA: 0x00021B04 File Offset: 0x0001FD04
	[Token(Token = "0x6000E0D")]
	[Address(RVA = "0xA5F320", Offset = "0xA5E120", VA = "0x180A5F320", Slot = "4")]
	public void Dispose()
	{
		EffectUpdater[] array = this.updaterPool;
		int num = 0;
		this.hasDisposed = true;
		this.pointer = (int)((ulong)4294967295L);
		int length = array.Length;
		if (num < length)
		{
			array[num].Dispose();
			num++;
		}
	}

	// Token: 0x06000E0E RID: 3598 RVA: 0x00021B54 File Offset: 0x0001FD54
	[Token(Token = "0x6000E0E")]
	[Address(RVA = "0xA5F390", Offset = "0xA5E190", VA = "0x180A5F390")]
	private EffectUpdater GenerateUpdater()
	{
		GameObject gameObject = this.prefab;
		Transform transform = this.root;
		return new EffectUpdater(UnityEngine.Object.Instantiate<GameObject>(gameObject, transform));
	}

	// Token: 0x06000E0F RID: 3599 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E0F")]
	[Address(RVA = "0xA5F6D0", Offset = "0xA5E4D0", VA = "0x180A5F6D0")]
	private EffectUpdater GetUpdater()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000E10 RID: 3600 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000E10")]
	[Address(RVA = "0xA5FF60", Offset = "0xA5ED60", VA = "0x180A5FF60")]
	public EffectPoolFull()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x040018A7 RID: 6311
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x40018A7")]
	private GameObject prefab;

	// Token: 0x040018A8 RID: 6312
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40018A8")]
	private Transform root;

	// Token: 0x040018A9 RID: 6313
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40018A9")]
	private EffectControlData data;

	// Token: 0x040018AA RID: 6314
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x40018AA")]
	private float timeScale;

	// Token: 0x040018AB RID: 6315
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x40018AB")]
	private EffectUpdater[] updaterPool;

	// Token: 0x040018AC RID: 6316
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x40018AC")]
	private GameObject gameObjects;

	// Token: 0x040018AD RID: 6317
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x40018AD")]
	private int pointer;

	// Token: 0x040018AE RID: 6318
	[FieldOffset(Offset = "0x44")]
	[Token(Token = "0x40018AE")]
	private bool hasDisposed;
}
