using System;
using Cpp2IlInjected;
using MarsSDK;
using UnityEngine;

// Token: 0x0200023A RID: 570
[Token(Token = "0x200023A")]
public class SoulPool
{
	// Token: 0x060015EB RID: 5611 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60015EB")]
	[Address(RVA = "0x1462700", Offset = "0x1461700", VA = "0x181462700")]
	public SoulPool(string soulEffectName, Transform root, int size, float visibleTime = 60f)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060015EC RID: 5612 RVA: 0x00031C0C File Offset: 0x0002FE0C
	[Token(Token = "0x60015EC")]
	[Address(RVA = "0x14625F0", Offset = "0x14615F0", VA = "0x1814625F0")]
	public void SetTimeScale(float timeScale)
	{
		if (this.soulProcessor == (ulong)0L)
		{
			Action<Soul> action = delegate(Soul soul)
			{
				float num = timeScale;
				soul.UpdateTimeScale(num);
			};
			this.soulProcessor = action;
		}
		GameObjectPoolLimited<Soul> gameObjectPoolLimited = this.pooledSoulEffects;
		Action<Soul> action2 = this.soulProcessor;
		gameObjectPoolLimited.ProcessActivePool(action2);
	}

	// Token: 0x060015ED RID: 5613 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60015ED")]
	[Address(RVA = "0x14623B0", Offset = "0x14613B0", VA = "0x1814623B0")]
	public Soul NewUse(Vector3 position, Quaternion rotation, bool playSoundOnCreated = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060015EE RID: 5614 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60015EE")]
	[Address(RVA = "0x14622B0", Offset = "0x14612B0", VA = "0x1814622B0")]
	public void GetBalance(float soulValue, ref float balanceValue)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0400213E RID: 8510
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x400213E")]
	private GameObjectPoolLimited<Soul> pooledSoulEffects;

	// Token: 0x0400213F RID: 8511
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x400213F")]
	private Action<Soul> soulProcessor;

	// Token: 0x04002140 RID: 8512
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002140")]
	private float timeScale;

	// Token: 0x04002141 RID: 8513
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x4002141")]
	private float visibleTime;

	// Token: 0x04002142 RID: 8514
	[Token(Token = "0x4002142")]
	private const float ALIVE_TIME_COEFF = 3f;
}
