using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000194 RID: 404
[Token(Token = "0x2000194")]
public class Elevator : SceneEvent
{
	// Token: 0x0600129B RID: 4763 RVA: 0x0002AAC8 File Offset: 0x00028CC8
	[Token(Token = "0x600129B")]
	[Address(RVA = "0xA63E90", Offset = "0xA62C90", VA = "0x180A63E90")]
	private void Start()
	{
		this.Set();
	}

	// Token: 0x0600129C RID: 4764 RVA: 0x0002AADC File Offset: 0x00028CDC
	[Token(Token = "0x600129C")]
	[Address(RVA = "0xA62700", Offset = "0xA61500", VA = "0x180A62700", Slot = "4")]
	public override void InitData(SceneEventManager SEM)
	{
		base.InitData(SEM);
		this.g_EffIdle = new EffectPool
		{
			timeScale = 1f
		};
		EffectPool effectPool = this.g_EffIdle;
		Transform floor = this.Floor;
		GameObject effectIdleObject = this.EffectIdleObject;
		effectPool.prefab = effectIdleObject;
		effectPool.root = floor;
		effectPool.Init(1, -1f, 3f);
		Game.BindStageTimeScale(this.g_EffIdle);
		this.g_EffMoveUp = new EffectPool
		{
			timeScale = 1f
		};
		EffectPool effectPool2 = this.g_EffMoveUp;
		Transform floor2 = this.Floor;
		GameObject effectMoveUpObject = this.EffectMoveUpObject;
		effectPool2.prefab = effectMoveUpObject;
		effectPool2.root = floor2;
		effectPool2.Init(1, -1f, 3f);
		Game.BindStageTimeScale(this.g_EffMoveUp);
		this.g_EffMoveDown = new EffectPool
		{
			timeScale = 1f
		};
		EffectPool effectPool3 = this.g_EffMoveDown;
		Transform floor3 = this.Floor;
		GameObject effectMoveDownObject = this.EffectMoveDownObject;
		effectPool3.prefab = effectMoveDownObject;
		effectPool3.root = floor3;
		effectPool3.Init(1, -1f, 3f);
		Game.BindStageTimeScale(this.g_EffMoveDown);
		Transform floor4 = this.Floor;
		SoundEffect soundEffectOfPrefabs = Common.GetSoundEffectOfPrefabs(this.SEMoveObject, floor4);
		this.g_SEMove = soundEffectOfPrefabs;
		Transform floor5 = this.Floor;
		SoundEffect soundEffectOfPrefabs2 = Common.GetSoundEffectOfPrefabs(this.SEMoveEndObject, floor5);
		this.g_SEMoveEnd = soundEffectOfPrefabs2;
		Game.BindStageTimeScale(this.g_SEMove);
		Game.BindStageTimeScale(this.g_SEMoveEnd);
	}

	// Token: 0x0600129D RID: 4765 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600129D")]
	[Address(RVA = "0xA63EA0", Offset = "0xA62CA0", VA = "0x180A63EA0")]
	protected void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600129E RID: 4766 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600129E")]
	[Address(RVA = "0xA629E0", Offset = "0xA617E0", VA = "0x180A629E0", Slot = "5")]
	public override void OpenEvent()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600129F RID: 4767 RVA: 0x0002AC68 File Offset: 0x00028E68
	[Token(Token = "0x600129F")]
	[Address(RVA = "0xA62E30", Offset = "0xA61C30", VA = "0x180A62E30", Slot = "8")]
	public override void ReleaseEvent()
	{
		base.ReleaseEvent();
		this.SwitchUp.Close();
		this.SwitchDown.Close();
		StartUpEvent startUpGO = this.StartUpGO;
		int num = 0;
		if (startUpGO != num)
		{
			this.StartUpGO.Close();
		}
		StartUpEvent startUpBack = this.StartUpBack;
		int num2 = 0;
		if (startUpBack != num2)
		{
			this.StartUpBack.Close();
		}
		this.g_EffIdle.Stop(3f);
		this.g_EffMoveUp.Stop(3f);
		this.g_EffMoveDown.Stop(3f);
		this.g_SEMove.Stop();
		this.g_SEMoveEnd.Stop();
		LightController lc = this.LC;
		int num3 = 0;
		if (lc != num3)
		{
			this.LC.ReleaseEvent();
		}
	}

	// Token: 0x060012A0 RID: 4768 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012A0")]
	[Address(RVA = "0xA63010", Offset = "0xA61E10", VA = "0x180A63010", Slot = "12")]
	public override void ResetEvent()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012A1 RID: 4769 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012A1")]
	[Address(RVA = "0xA636B0", Offset = "0xA624B0", VA = "0x180A636B0")]
	public void Set()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012A2 RID: 4770 RVA: 0x0002AD3C File Offset: 0x00028F3C
	[Token(Token = "0x60012A2")]
	[Address(RVA = "0xA645B0", Offset = "0xA633B0", VA = "0x180A645B0")]
	public Elevator()
	{
	}

	// Token: 0x04001CD5 RID: 7381
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001CD5")]
	public Transform Floor;

	// Token: 0x04001CD6 RID: 7382
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4001CD6")]
	public Transform TargetUp;

	// Token: 0x04001CD7 RID: 7383
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4001CD7")]
	public Transform TargetDown;

	// Token: 0x04001CD8 RID: 7384
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x4001CD8")]
	public DoorSwitch SwitchUp;

	// Token: 0x04001CD9 RID: 7385
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x4001CD9")]
	public DoorSwitch SwitchDown;

	// Token: 0x04001CDA RID: 7386
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x4001CDA")]
	public StartUpEvent StartUpGO;

	// Token: 0x04001CDB RID: 7387
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x4001CDB")]
	public StartUpEvent StartUpBack;

	// Token: 0x04001CDC RID: 7388
	[FieldOffset(Offset = "0x70")]
	[Token(Token = "0x4001CDC")]
	public GameObject EffectIdleObject;

	// Token: 0x04001CDD RID: 7389
	[FieldOffset(Offset = "0x78")]
	[Token(Token = "0x4001CDD")]
	public GameObject EffectMoveUpObject;

	// Token: 0x04001CDE RID: 7390
	[FieldOffset(Offset = "0x80")]
	[Token(Token = "0x4001CDE")]
	public GameObject EffectMoveDownObject;

	// Token: 0x04001CDF RID: 7391
	[FieldOffset(Offset = "0x88")]
	[Token(Token = "0x4001CDF")]
	public GameObject SEMoveObject;

	// Token: 0x04001CE0 RID: 7392
	[FieldOffset(Offset = "0x90")]
	[Token(Token = "0x4001CE0")]
	public GameObject SEMoveEndObject;

	// Token: 0x04001CE1 RID: 7393
	[FieldOffset(Offset = "0x98")]
	[Token(Token = "0x4001CE1")]
	public Elevator.ElevatorStatus Status;

	// Token: 0x04001CE2 RID: 7394
	[FieldOffset(Offset = "0xA0")]
	[Token(Token = "0x4001CE2")]
	public LightController LC;

	// Token: 0x04001CE3 RID: 7395
	[FieldOffset(Offset = "0xA8")]
	[Token(Token = "0x4001CE3")]
	public bool DefaultEnable = true;

	// Token: 0x04001CE4 RID: 7396
	[FieldOffset(Offset = "0xB0")]
	[Token(Token = "0x4001CE4")]
	private EffectPool g_EffIdle;

	// Token: 0x04001CE5 RID: 7397
	[FieldOffset(Offset = "0xB8")]
	[Token(Token = "0x4001CE5")]
	private EffectPool g_EffMoveUp;

	// Token: 0x04001CE6 RID: 7398
	[FieldOffset(Offset = "0xC0")]
	[Token(Token = "0x4001CE6")]
	private EffectPool g_EffMoveDown;

	// Token: 0x04001CE7 RID: 7399
	[FieldOffset(Offset = "0xC8")]
	[Token(Token = "0x4001CE7")]
	private SoundEffect g_SEMove;

	// Token: 0x04001CE8 RID: 7400
	[FieldOffset(Offset = "0xD0")]
	[Token(Token = "0x4001CE8")]
	private SoundEffect g_SEMoveEnd;

	// Token: 0x04001CE9 RID: 7401
	[FieldOffset(Offset = "0xD8")]
	[Token(Token = "0x4001CE9")]
	private float g_fSEMoveVolume;

	// Token: 0x04001CEA RID: 7402
	[FieldOffset(Offset = "0xDC")]
	[Token(Token = "0x4001CEA")]
	private float g_fDelayMove = 2f;

	// Token: 0x04001CEB RID: 7403
	[FieldOffset(Offset = "0xE0")]
	[Token(Token = "0x4001CEB")]
	private float g_fDelayMoveVal;

	// Token: 0x02000195 RID: 405
	[Token(Token = "0x2000195")]
	public enum ElevatorStatus
	{
		// Token: 0x04001CED RID: 7405
		[Token(Token = "0x4001CED")]
		WaitDown,
		// Token: 0x04001CEE RID: 7406
		[Token(Token = "0x4001CEE")]
		WaitUp,
		// Token: 0x04001CEF RID: 7407
		[Token(Token = "0x4001CEF")]
		MoveGo,
		// Token: 0x04001CF0 RID: 7408
		[Token(Token = "0x4001CF0")]
		MoveBack
	}
}
