using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x020001CB RID: 459
[Token(Token = "0x20001CB")]
public class Elevator : SceneEvent
{
	// Token: 0x0600143A RID: 5178 RVA: 0x0002E208 File Offset: 0x0002C408
	[Token(Token = "0x600143A")]
	[Address(RVA = "0x15A06C0", Offset = "0x159F6C0", VA = "0x1815A06C0")]
	private void Start()
	{
		this.Set();
	}

	// Token: 0x0600143B RID: 5179 RVA: 0x0002E21C File Offset: 0x0002C41C
	[Token(Token = "0x600143B")]
	[Address(RVA = "0x159EF30", Offset = "0x159DF30", VA = "0x18159EF30", 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: 0x0600143C RID: 5180 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600143C")]
	[Address(RVA = "0x15A06D0", Offset = "0x159F6D0", VA = "0x1815A06D0")]
	protected void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600143D RID: 5181 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600143D")]
	[Address(RVA = "0x159F210", Offset = "0x159E210", VA = "0x18159F210", Slot = "5")]
	public override void OpenEvent()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600143E RID: 5182 RVA: 0x0002E3A8 File Offset: 0x0002C5A8
	[Token(Token = "0x600143E")]
	[Address(RVA = "0x159F660", Offset = "0x159E660", VA = "0x18159F660", 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: 0x0600143F RID: 5183 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600143F")]
	[Address(RVA = "0x159F840", Offset = "0x159E840", VA = "0x18159F840", Slot = "12")]
	public override void ResetEvent()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001440 RID: 5184 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001440")]
	[Address(RVA = "0x159FEE0", Offset = "0x159EEE0", VA = "0x18159FEE0")]
	public void Set()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001441 RID: 5185 RVA: 0x0002E47C File Offset: 0x0002C67C
	[Token(Token = "0x6001441")]
	[Address(RVA = "0x15A0DE0", Offset = "0x159FDE0", VA = "0x1815A0DE0")]
	public Elevator()
	{
	}

	// Token: 0x04001E9D RID: 7837
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001E9D")]
	public Transform Floor;

	// Token: 0x04001E9E RID: 7838
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4001E9E")]
	public Transform TargetUp;

	// Token: 0x04001E9F RID: 7839
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4001E9F")]
	public Transform TargetDown;

	// Token: 0x04001EA0 RID: 7840
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x4001EA0")]
	public DoorSwitch SwitchUp;

	// Token: 0x04001EA1 RID: 7841
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x4001EA1")]
	public DoorSwitch SwitchDown;

	// Token: 0x04001EA2 RID: 7842
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x4001EA2")]
	public StartUpEvent StartUpGO;

	// Token: 0x04001EA3 RID: 7843
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x4001EA3")]
	public StartUpEvent StartUpBack;

	// Token: 0x04001EA4 RID: 7844
	[FieldOffset(Offset = "0x70")]
	[Token(Token = "0x4001EA4")]
	public GameObject EffectIdleObject;

	// Token: 0x04001EA5 RID: 7845
	[FieldOffset(Offset = "0x78")]
	[Token(Token = "0x4001EA5")]
	public GameObject EffectMoveUpObject;

	// Token: 0x04001EA6 RID: 7846
	[FieldOffset(Offset = "0x80")]
	[Token(Token = "0x4001EA6")]
	public GameObject EffectMoveDownObject;

	// Token: 0x04001EA7 RID: 7847
	[FieldOffset(Offset = "0x88")]
	[Token(Token = "0x4001EA7")]
	public GameObject SEMoveObject;

	// Token: 0x04001EA8 RID: 7848
	[FieldOffset(Offset = "0x90")]
	[Token(Token = "0x4001EA8")]
	public GameObject SEMoveEndObject;

	// Token: 0x04001EA9 RID: 7849
	[FieldOffset(Offset = "0x98")]
	[Token(Token = "0x4001EA9")]
	public Elevator.ElevatorStatus Status;

	// Token: 0x04001EAA RID: 7850
	[FieldOffset(Offset = "0xA0")]
	[Token(Token = "0x4001EAA")]
	public LightController LC;

	// Token: 0x04001EAB RID: 7851
	[FieldOffset(Offset = "0xA8")]
	[Token(Token = "0x4001EAB")]
	public bool DefaultEnable = true;

	// Token: 0x04001EAC RID: 7852
	[FieldOffset(Offset = "0xB0")]
	[Token(Token = "0x4001EAC")]
	private EffectPool g_EffIdle;

	// Token: 0x04001EAD RID: 7853
	[FieldOffset(Offset = "0xB8")]
	[Token(Token = "0x4001EAD")]
	private EffectPool g_EffMoveUp;

	// Token: 0x04001EAE RID: 7854
	[FieldOffset(Offset = "0xC0")]
	[Token(Token = "0x4001EAE")]
	private EffectPool g_EffMoveDown;

	// Token: 0x04001EAF RID: 7855
	[FieldOffset(Offset = "0xC8")]
	[Token(Token = "0x4001EAF")]
	private SoundEffect g_SEMove;

	// Token: 0x04001EB0 RID: 7856
	[FieldOffset(Offset = "0xD0")]
	[Token(Token = "0x4001EB0")]
	private SoundEffect g_SEMoveEnd;

	// Token: 0x04001EB1 RID: 7857
	[FieldOffset(Offset = "0xD8")]
	[Token(Token = "0x4001EB1")]
	private float g_fSEMoveVolume;

	// Token: 0x04001EB2 RID: 7858
	[FieldOffset(Offset = "0xDC")]
	[Token(Token = "0x4001EB2")]
	private float g_fDelayMove = 2f;

	// Token: 0x04001EB3 RID: 7859
	[FieldOffset(Offset = "0xE0")]
	[Token(Token = "0x4001EB3")]
	private float g_fDelayMoveVal;

	// Token: 0x020001CC RID: 460
	[Token(Token = "0x20001CC")]
	public enum ElevatorStatus
	{
		// Token: 0x04001EB5 RID: 7861
		[Token(Token = "0x4001EB5")]
		WaitDown,
		// Token: 0x04001EB6 RID: 7862
		[Token(Token = "0x4001EB6")]
		WaitUp,
		// Token: 0x04001EB7 RID: 7863
		[Token(Token = "0x4001EB7")]
		MoveGo,
		// Token: 0x04001EB8 RID: 7864
		[Token(Token = "0x4001EB8")]
		MoveBack
	}
}
