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

// Token: 0x020001F9 RID: 505
[Token(Token = "0x20001F9")]
public class SoulPool
{
	// Token: 0x06001422 RID: 5154 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001422")]
	[Address(RVA = "0x11F4750", Offset = "0x11F3550", VA = "0x1811F4750")]
	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: 0x06001423 RID: 5155 RVA: 0x0002DF34 File Offset: 0x0002C134
	[Token(Token = "0x6001423")]
	[Address(RVA = "0x11F4640", Offset = "0x11F3440", VA = "0x1811F4640")]
	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: 0x06001424 RID: 5156 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001424")]
	[Address(RVA = "0x11F4400", Offset = "0x11F3200", VA = "0x1811F4400")]
	public Soul NewUse(Vector3 position, Quaternion rotation, bool playSoundOnCreated = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001425 RID: 5157 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001425")]
	[Address(RVA = "0x11F4300", Offset = "0x11F3100", VA = "0x1811F4300")]
	public void GetBalance(float soulValue, ref float balanceValue)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x04001F59 RID: 8025
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4001F59")]
	private GameObjectPoolLimited<Soul> pooledSoulEffects;

	// Token: 0x04001F5A RID: 8026
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4001F5A")]
	private Action<Soul> soulProcessor;

	// Token: 0x04001F5B RID: 8027
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4001F5B")]
	private float timeScale;

	// Token: 0x04001F5C RID: 8028
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x4001F5C")]
	private float visibleTime;

	// Token: 0x04001F5D RID: 8029
	[Token(Token = "0x4001F5D")]
	private const float ALIVE_TIME_COEFF = 3f;
}
