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

// Token: 0x0200024C RID: 588
[Token(Token = "0x200024C")]
public class StageTimeManager : MonoBehaviour
{
	// Token: 0x06001663 RID: 5731 RVA: 0x00032A04 File Offset: 0x00030C04
	[Token(Token = "0x6001663")]
	[Address(RVA = "0x980800", Offset = "0x97F800", VA = "0x180980800")]
	public void Init()
	{
		Game.OnGameSettingsChanged += new Action(this.UpdateWithGameSetting);
		bool hitStop = Game.Config.gameSettings.hitStop;
		this.enableHitStop = hitStop;
	}

	// Token: 0x06001664 RID: 5732 RVA: 0x00032A44 File Offset: 0x00030C44
	[Token(Token = "0x6001664")]
	[Address(RVA = "0x981100", Offset = "0x980100", VA = "0x180981100")]
	private void UpdateWithGameSetting(GameSettings gameSettings)
	{
		bool hitStop = gameSettings.hitStop;
		this.enableHitStop = hitStop;
	}

	// Token: 0x06001665 RID: 5733 RVA: 0x00032A68 File Offset: 0x00030C68
	[Token(Token = "0x6001665")]
	[Address(RVA = "0x9805E0", Offset = "0x97F5E0", VA = "0x1809805E0")]
	public void Execute(Action<TimeEffectType, StageTimeManager> timeEventHandler)
	{
		/*
An exception occurred when decompiling this method (06001665)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void StageTimeManager::Execute(System.Action`2<TimeEffectType,StageTimeManager>)

 ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001666 RID: 5734 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001666")]
	[Address(RVA = "0x980920", Offset = "0x97F920", VA = "0x180980920")]
	private IEnumerator<float> Tick()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001667 RID: 5735 RVA: 0x00032B3C File Offset: 0x00030D3C
	[Token(Token = "0x6001667")]
	[Address(RVA = "0x980120", Offset = "0x97F120", VA = "0x180980120")]
	private void CalculateTimeValues()
	{
		/*
An exception occurred when decompiling this method (06001667)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void StageTimeManager::CalculateTimeValues()

 ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001668 RID: 5736 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001668")]
	[Address(RVA = "0x9808D0", Offset = "0x97F8D0", VA = "0x1809808D0")]
	private void SendEvents(TimeEffectType effectType)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001669 RID: 5737 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001669")]
	[Address(RVA = "0x980D70", Offset = "0x97FD70", VA = "0x180980D70")]
	public void UpdateSystemTimeScale(float timeScale, bool clearHitStop)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166A RID: 5738 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600166A")]
	[Address(RVA = "0x980EE0", Offset = "0x97FEE0", VA = "0x180980EE0")]
	public void UpdateTimeScaleFactor(float timeScale, float duration)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166B RID: 5739 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600166B")]
	[Address(RVA = "0x980B10", Offset = "0x97FB10", VA = "0x180980B10")]
	public void UpdatePlayerTimeScale(float timeScale)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166C RID: 5740 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600166C")]
	[Address(RVA = "0x980C40", Offset = "0x97FC40", VA = "0x180980C40")]
	public void UpdateStageTimeScale(float timeScale)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166D RID: 5741 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600166D")]
	[Address(RVA = "0x9802A0", Offset = "0x97F2A0", VA = "0x1809802A0")]
	public void EnablePlayerHitStop(float duration, float hitStopFactor)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166E RID: 5742 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600166E")]
	[Address(RVA = "0x980440", Offset = "0x97F440", VA = "0x180980440")]
	public void EnableStageHitStop(float duration, float hitStopFactor)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600166F RID: 5743 RVA: 0x00032B90 File Offset: 0x00030D90
	[Token(Token = "0x600166F")]
	[Address(RVA = "0x75AF40", Offset = "0x759F40", VA = "0x18075AF40")]
	public float GetGameDeltaTime()
	{
		return this.gameDeltaTime;
	}

	// Token: 0x06001670 RID: 5744 RVA: 0x00032BA4 File Offset: 0x00030DA4
	[Token(Token = "0x6001670")]
	[Address(RVA = "0x5C7D20", Offset = "0x5C6D20", VA = "0x1805C7D20")]
	public float GetSystemDeltaTime()
	{
		return this.systemDeltaTime;
	}

	// Token: 0x06001671 RID: 5745 RVA: 0x00032BB8 File Offset: 0x00030DB8
	[Token(Token = "0x6001671")]
	[Address(RVA = "0x33F2F0", Offset = "0x33E2F0", VA = "0x18033F2F0")]
	public TimeData GetPlayerTimeData()
	{
		return this.playerTimeData;
	}

	// Token: 0x06001672 RID: 5746 RVA: 0x00032BCC File Offset: 0x00030DCC
	[Token(Token = "0x6001672")]
	[Address(RVA = "0x33F1F0", Offset = "0x33E1F0", VA = "0x18033F1F0")]
	public TimeData GetStageTimeData()
	{
		return this.stageTimeData;
	}

	// Token: 0x06001673 RID: 5747 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001673")]
	[Address(RVA = "0x9807B0", Offset = "0x97F7B0", VA = "0x1809807B0")]
	public ulong GetPlayedSeconds()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001674 RID: 5748 RVA: 0x00032BE0 File Offset: 0x00030DE0
	[Token(Token = "0x6001674")]
	[Address(RVA = "0x980190", Offset = "0x97F190", VA = "0x180980190")]
	public void Dispose()
	{
		CoroutineHandle[] array = new CoroutineHandle[4];
		int length = array.Length;
		CoroutineHandle coroutineHandle = this.mainProcessor;
		array[0] = coroutineHandle;
		CoroutineHandle coroutineHandle2 = this.systemFactorProcessor;
		array[0] = coroutineHandle2;
		CoroutineHandle coroutineHandle3 = this.playerHitStopProcessor;
		array[1] = coroutineHandle3;
		CoroutineHandle coroutineHandle4 = this.stageHitStopProcessor;
		array[1] = coroutineHandle4;
		int num = Timing.KillCoroutines(array);
		int num2 = 0;
		this.systemTimeScale = (float)num2;
		this.timeEventHandler = num2;
		throw new NullReferenceException();
	}

	// Token: 0x06001675 RID: 5749 RVA: 0x00032C5C File Offset: 0x00030E5C
	[Token(Token = "0x6001675")]
	[Address(RVA = "0x981120", Offset = "0x980120", VA = "0x180981120")]
	public StageTimeManager()
	{
		TimeData timeData = new TimeData();
		this.playerTimeData = timeData;
		TimeData timeData2 = new TimeData();
		this.stageTimeData = timeData2;
		base..ctor();
	}

	// Token: 0x06001676 RID: 5750 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001676")]
	[Address(RVA = "0x980A90", Offset = "0x97FA90", VA = "0x180980A90")]
	[CompilerGenerated]
	private IEnumerator<float> <UpdateTimeScaleFactor>g__WaitForRestore|22_0(float delay)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001677 RID: 5751 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001677")]
	[Address(RVA = "0x980990", Offset = "0x97F990", VA = "0x180980990")]
	[CompilerGenerated]
	private IEnumerator<float> <EnablePlayerHitStop>g__WaitForRestore|25_0(float timer)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001678 RID: 5752 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001678")]
	[Address(RVA = "0x980A10", Offset = "0x97FA10", VA = "0x180980A10")]
	[CompilerGenerated]
	private IEnumerator<float> <EnableStageHitStop>g__WaitForRestore|26_0(float timer)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x040021AF RID: 8623
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40021AF")]
	[SerializeField]
	private float gameDeltaTime;

	// Token: 0x040021B0 RID: 8624
	[FieldOffset(Offset = "0x1C")]
	[Token(Token = "0x40021B0")]
	[SerializeField]
	private float systemDeltaTime;

	// Token: 0x040021B1 RID: 8625
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40021B1")]
	[SerializeField]
	private bool enableHitStop = true;

	// Token: 0x040021B2 RID: 8626
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x40021B2")]
	[SerializeField]
	private float systemTimeScale = 1f;

	// Token: 0x040021B3 RID: 8627
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x40021B3")]
	[SerializeField]
	private float systemTimeScaleFactor = 1f;

	// Token: 0x040021B4 RID: 8628
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x40021B4")]
	[SerializeField]
	private TimeData playerTimeData;

	// Token: 0x040021B5 RID: 8629
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x40021B5")]
	[SerializeField]
	private float playerHitStopTimer;

	// Token: 0x040021B6 RID: 8630
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x40021B6")]
	[SerializeField]
	private TimeData stageTimeData;

	// Token: 0x040021B7 RID: 8631
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x40021B7")]
	[SerializeField]
	private float stageHitStopTimer;

	// Token: 0x040021B8 RID: 8632
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x40021B8")]
	private ulong playedSeconds;

	// Token: 0x040021B9 RID: 8633
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x40021B9")]
	private CoroutineHandle mainProcessor;

	// Token: 0x040021BA RID: 8634
	[FieldOffset(Offset = "0x5C")]
	[Token(Token = "0x40021BA")]
	private CoroutineHandle systemFactorProcessor;

	// Token: 0x040021BB RID: 8635
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x40021BB")]
	private CoroutineHandle playerHitStopProcessor;

	// Token: 0x040021BC RID: 8636
	[FieldOffset(Offset = "0x64")]
	[Token(Token = "0x40021BC")]
	private CoroutineHandle stageHitStopProcessor;

	// Token: 0x040021BD RID: 8637
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x40021BD")]
	private Action<TimeEffectType, StageTimeManager> timeEventHandler;
}
