using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x0200011E RID: 286
[Token(Token = "0x200011E")]
public class EffectPoolFull : IDisposable
{
	// Token: 0x06000F27 RID: 3879 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F27")]
	[Address(RVA = "0x159C2D0", Offset = "0x159B2D0", VA = "0x18159C2D0")]
	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: 0x06000F28 RID: 3880 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F28")]
	[Address(RVA = "0x159C0F0", Offset = "0x159B0F0", VA = "0x18159C0F0")]
	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: 0x06000F29 RID: 3881 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F29")]
	[Address(RVA = "0x159C160", Offset = "0x159B160", VA = "0x18159C160")]
	private void Init(int limitation, float aliveTime, float recycleTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F2A RID: 3882 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F2A")]
	[Address(RVA = "0x159C400", Offset = "0x159B400", VA = "0x18159C400")]
	public GameObject NewUse(Vector3 position, Quaternion rotation, bool withSound = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F2B RID: 3883 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F2B")]
	[Address(RVA = "0x159C370", Offset = "0x159B370", VA = "0x18159C370")]
	public GameObject NewUse(bool withSound = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F2C RID: 3884 RVA: 0x0002386C File Offset: 0x00021A6C
	[Token(Token = "0x6000F2C")]
	[Address(RVA = "0x159C520", Offset = "0x159B520", VA = "0x18159C520")]
	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: 0x06000F2D RID: 3885 RVA: 0x000238BC File Offset: 0x00021ABC
	[Token(Token = "0x6000F2D")]
	[Address(RVA = "0x159C640", Offset = "0x159B640", VA = "0x18159C640")]
	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: 0x06000F2E RID: 3886 RVA: 0x00023918 File Offset: 0x00021B18
	[Token(Token = "0x6000F2E")]
	[Address(RVA = "0x159C6E0", Offset = "0x159B6E0", VA = "0x18159C6E0")]
	public void Stop(int index, float recycleTime)
	{
		if (!this.hasDisposed && this.updaterPool[index].source.activeSelf)
		{
			this.updaterPool[index].StopEffect(recycleTime);
		}
	}

	// Token: 0x06000F2F RID: 3887 RVA: 0x00023960 File Offset: 0x00021B60
	[Token(Token = "0x6000F2F")]
	[Address(RVA = "0x159C5A0", Offset = "0x159B5A0", VA = "0x18159C5A0")]
	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: 0x06000F30 RID: 3888 RVA: 0x000239B4 File Offset: 0x00021BB4
	[Token(Token = "0x6000F30")]
	[Address(RVA = "0x159BAC0", Offset = "0x159AAC0", VA = "0x18159BAC0")]
	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: 0x06000F31 RID: 3889 RVA: 0x00023A04 File Offset: 0x00021C04
	[Token(Token = "0x6000F31")]
	[Address(RVA = "0x159BEE0", Offset = "0x159AEE0", VA = "0x18159BEE0")]
	public Transform GetSource()
	{
		return this.prefab.transform;
	}

	// Token: 0x06000F32 RID: 3890 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F32")]
	[Address(RVA = "0x159BDD0", Offset = "0x159ADD0", VA = "0x18159BDD0")]
	public GameObject GetGameObject()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F33 RID: 3891 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F33")]
	[Address(RVA = "0x159BC90", Offset = "0x159AC90", VA = "0x18159BC90")]
	public GameObject[] GetAllGameObjects()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F34 RID: 3892 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F34")]
	[Address(RVA = "0x159BE20", Offset = "0x159AE20", VA = "0x18159BE20")]
	public ParticleSystem GetParticle()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F35 RID: 3893 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F35")]
	[Address(RVA = "0x159BE90", Offset = "0x159AE90", VA = "0x18159BE90")]
	public SoundEffect GetSoundEffect()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F36 RID: 3894 RVA: 0x00023A24 File Offset: 0x00021C24
	[Token(Token = "0x6000F36")]
	[Address(RVA = "0x159BC70", Offset = "0x159AC70", VA = "0x18159BC70")]
	public float GetAliveTime()
	{
		return this.data.aliveTime;
	}

	// Token: 0x06000F37 RID: 3895 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F37")]
	[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0")]
	public void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F38 RID: 3896 RVA: 0x00023A44 File Offset: 0x00021C44
	[Token(Token = "0x6000F38")]
	[Address(RVA = "0x159BB50", Offset = "0x159AB50", VA = "0x18159BB50", 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: 0x06000F39 RID: 3897 RVA: 0x00023A94 File Offset: 0x00021C94
	[Token(Token = "0x6000F39")]
	[Address(RVA = "0x159BBC0", Offset = "0x159ABC0", VA = "0x18159BBC0")]
	private EffectUpdater GenerateUpdater()
	{
		GameObject gameObject = this.prefab;
		Transform transform = this.root;
		return new EffectUpdater(UnityEngine.Object.Instantiate<GameObject>(gameObject, transform));
	}

	// Token: 0x06000F3A RID: 3898 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F3A")]
	[Address(RVA = "0x159BF00", Offset = "0x159AF00", VA = "0x18159BF00")]
	private EffectUpdater GetUpdater()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000F3B RID: 3899 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000F3B")]
	[Address(RVA = "0x159C790", Offset = "0x159B790", VA = "0x18159C790")]
	public EffectPoolFull()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x040019AF RID: 6575
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x40019AF")]
	private GameObject prefab;

	// Token: 0x040019B0 RID: 6576
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40019B0")]
	private Transform root;

	// Token: 0x040019B1 RID: 6577
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40019B1")]
	private EffectControlData data;

	// Token: 0x040019B2 RID: 6578
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x40019B2")]
	private float timeScale;

	// Token: 0x040019B3 RID: 6579
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x40019B3")]
	private EffectUpdater[] updaterPool;

	// Token: 0x040019B4 RID: 6580
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x40019B4")]
	private GameObject gameObjects;

	// Token: 0x040019B5 RID: 6581
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x40019B5")]
	private int pointer;

	// Token: 0x040019B6 RID: 6582
	[FieldOffset(Offset = "0x44")]
	[Token(Token = "0x40019B6")]
	private bool hasDisposed;
}
