using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Xml.Schema;
using Cpp2IlInjected;
using MEC;
using UnityEngine;

// Token: 0x02000245 RID: 581
[Token(Token = "0x2000245")]
public class SceneManager : GameSceneBase
{
	// Token: 0x170000CD RID: 205
	// (get) Token: 0x06001609 RID: 5641 RVA: 0x00031D90 File Offset: 0x0002FF90
	[Token(Token = "0x170000CD")]
	public GameDialoguePackage DialoguePackage
	{
		[Token(Token = "0x6001609")]
		[Address(RVA = "0x49DC30", Offset = "0x49CC30", VA = "0x18049DC30")]
		get
		{
			return this.dialoguePack;
		}
	}

	// Token: 0x170000CE RID: 206
	// (get) Token: 0x0600160A RID: 5642 RVA: 0x00031DA4 File Offset: 0x0002FFA4
	[Token(Token = "0x170000CE")]
	public GameBattleSelectPackage BattleSelectPack
	{
		[Token(Token = "0x600160A")]
		[Address(RVA = "0x4D0E90", Offset = "0x4CFE90", VA = "0x1804D0E90")]
		get
		{
			return this.battleSelectPack;
		}
	}

	// Token: 0x0600160B RID: 5643 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600160B")]
	[Address(RVA = "0x50F870", Offset = "0x50E870", VA = "0x18050F870")]
	private void Awake()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600160C RID: 5644 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600160C")]
	[Address(RVA = "0x510660", Offset = "0x50F660", VA = "0x180510660", Slot = "4")]
	public override void Enter()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600160D RID: 5645 RVA: 0x00031DB8 File Offset: 0x0002FFB8
	[Token(Token = "0x600160D")]
	[Address(RVA = "0x512F20", Offset = "0x511F20", VA = "0x180512F20")]
	private void Setup()
	{
		Game.RunStageServices(new Action(this.OnTimeEventReceived));
		this.onSystemMenu = false;
	}

	// Token: 0x0600160E RID: 5646 RVA: 0x00031DE0 File Offset: 0x0002FFE0
	[Token(Token = "0x600160E")]
	[Address(RVA = "0x511880", Offset = "0x510880", VA = "0x180511880")]
	private void Init()
	{
		TreasureBox[] saveTreasureBox = this.Save.SaveTreasureBox;
		int num = 0;
		int num2 = 0;
		if (num2 < saveTreasureBox.Length)
		{
			TreasureBox treasureBox = saveTreasureBox[num];
			if (treasureBox != 0)
			{
				treasureBox.index = num;
			}
			num++;
		}
		WizardGirlManage wizardGirlManage = this.wizardGirl;
		GameSkin currentSkin = Game.Collection.currentSkin;
		wizardGirlManage.Init(currentSkin);
		ScriptMode scriptMode = this.scriptSystem;
		NobetaAnimatorController animatorController = Game.GetPlayerManager().GetAnimatorController();
		scriptMode.g_PlayerAni = animatorController;
		PlayerCamera camera = Game.GetPlayerManager().GetCamera();
		scriptMode.g_CameraEff = camera;
		scriptMode.g_bSwitchScene = false;
		scriptMode.g_iSkipID = (int)((ulong)0L);
		scriptMode.g_iVoiceIndex = (int)((ulong)4294967294L);
		UIStackingManager uistackingManager = Game.GetUIStackingManager();
		int num3 = 0;
		uistackingManager.Init((UIStackingManager.UIStackingCommand)num3);
		GameObject[] array = GameObject.FindGameObjectsWithTag("NPC");
		int num4 = 0;
		int num5 = 0;
		int length = array.Length;
		if (num4 < length)
		{
			NPC component = array[num5].GetComponent<NPC>();
			if (component)
			{
				component.Init();
			}
			num5++;
		}
		Transform[] array2 = this.children;
		ItemSystem itemSystem = this.itemSystem;
		Transform transform = array2[3];
		itemSystem.Init(transform);
		Transform[] array3 = this.children;
		SoulSystem soulSystem = this.soulSystem;
		Transform transform2 = array3[4];
		soulSystem.Init(transform2);
		this.achievementSystem.Init();
		RadiusPlayerCheck[] array4 = UnityEngine.Object.FindObjectsOfType<RadiusPlayerCheck>(true);
		this.areaEffects = array4;
		GameObject[] array5 = GameObject.FindGameObjectsWithTag("AttackableObject");
		this.attackGroups = array5;
		SceneEventManager sem = this.SEM;
		int num6 = 0;
		if (sem != num6 && this.SEM.gameObject.activeSelf)
		{
			this.SEM.InitData();
		}
		this.currentAttackableId = (int)((ulong)0L);
	}

	// Token: 0x0600160F RID: 5647 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600160F")]
	[Address(RVA = "0x510D30", Offset = "0x50FD30", VA = "0x180510D30")]
	private void InitStageObjs()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001610 RID: 5648 RVA: 0x00031FB4 File Offset: 0x000301B4
	[Token(Token = "0x6001610")]
	[Address(RVA = "0x511F30", Offset = "0x510F30", VA = "0x180511F30")]
	private void OnSceneInitComplete()
	{
		this.InitStageObjs();
		Game.SwitchGameplayInput();
		this.wizardGirl.Setup();
		Game.UpdateSystemTimeScale(1f, true);
		if (Game.GameSave.basic.difficulty != GameDifficulty.BossRush)
		{
			int num;
			SceneManager.<FadeOutBlackScreen>d__47 <FadeOutBlackScreen>d__ = new SceneManager.<FadeOutBlackScreen>d__47(num);
			num = 0;
			<FadeOutBlackScreen>d__.delayTime = 0.5f;
			CoroutineHandle coroutineHandle = MECExtensionMethods1.RunCoroutine(<FadeOutBlackScreen>d__);
			return;
		}
	}

	// Token: 0x06001611 RID: 5649 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001611")]
	[Address(RVA = "0x5107A0", Offset = "0x50F7A0", VA = "0x1805107A0")]
	private IEnumerator<float> FadeOutBlackScreen(float delayTime)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001612 RID: 5650 RVA: 0x0003201C File Offset: 0x0003021C
	[Token(Token = "0x6001612")]
	[Address(RVA = "0x513310", Offset = "0x512310", VA = "0x180513310")]
	private void Update()
	{
		this.itemSystem.Update();
		ScriptMode scriptMode = this.scriptSystem;
		float num = Game.GetSystemDeltaTime();
		scriptMode.Update(num);
		AchievementsSystem achievementsSystem = this.achievementSystem;
		num = Game.GetGameDeltaTime();
		achievementsSystem.Update(num);
	}

	// Token: 0x06001613 RID: 5651 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001613")]
	[Address(RVA = "0x511D60", Offset = "0x510D60", VA = "0x180511D60")]
	private void OnDisable()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001614 RID: 5652 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001614")]
	[Address(RVA = "0x512030", Offset = "0x511030", VA = "0x180512030")]
	private void OnTimeEventReceived(TimeEffectType effectType, StageTimeManager timeManager)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001615 RID: 5653 RVA: 0x00032068 File Offset: 0x00030268
	[Token(Token = "0x6001615")]
	[Address(RVA = "0x512E90", Offset = "0x511E90", VA = "0x180512E90")]
	public void SetGameState(SceneManager.GameState state)
	{
		if (state == SceneManager.GameState.Script || this.stageState == SceneManager.GameState.Script)
		{
			Game.EnableStoryVolumeEffect(true);
		}
		this.stageState = state;
	}

	// Token: 0x06001616 RID: 5654 RVA: 0x00032094 File Offset: 0x00030294
	[Token(Token = "0x6001616")]
	[Address(RVA = "0x4229A0", Offset = "0x4219A0", VA = "0x1804229A0")]
	public SceneManager.GameState GetGameState()
	{
		return this.stageState;
	}

	// Token: 0x06001617 RID: 5655 RVA: 0x000320A8 File Offset: 0x000302A8
	[Token(Token = "0x6001617")]
	[Address(RVA = "0x34BFA0", Offset = "0x34AFA0", VA = "0x18034BFA0")]
	public void SetIsSystemOptionOpened(bool isSystemOptionOpened)
	{
		this.onSystemMenu = isSystemOptionOpened;
	}

	// Token: 0x06001618 RID: 5656 RVA: 0x000320BC File Offset: 0x000302BC
	[Token(Token = "0x6001618")]
	[Address(RVA = "0x5109C0", Offset = "0x50F9C0", VA = "0x1805109C0")]
	public bool GetIsOpenSystemOption()
	{
		return this.onSystemMenu;
	}

	// Token: 0x06001619 RID: 5657 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001619")]
	[Address(RVA = "0x510280", Offset = "0x50F280", VA = "0x180510280")]
	public void CreateEventSoul(Vector3 Pos, Vector3 Target, int Num, SwitchDevice SD, [Optional] Transform LeadObject)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600161A RID: 5658 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600161A")]
	[Address(RVA = "0x510300", Offset = "0x50F300", VA = "0x180510300")]
	public void CreateEventSoul(Vector3 Pos, Vector3 Target, int Num, SceneEvent OpenSceneEvent, Transform OpenSceneEventPos, [Optional] Transform LeadObject)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600161B RID: 5659 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600161B")]
	[Address(RVA = "0x5103D0", Offset = "0x50F3D0", VA = "0x1805103D0")]
	public void CreateSoundWave(Vector3 v3Center, float fRadius, SceneManager.SoundWaveType SoundType = SceneManager.SoundWaveType.Battle)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600161C RID: 5660 RVA: 0x000320D0 File Offset: 0x000302D0
	[Token(Token = "0x600161C")]
	[Address(RVA = "0x511CD0", Offset = "0x510CD0", VA = "0x180511CD0")]
	public void LoadScript(LoadScript LS)
	{
		bool flag = this.scriptSystem.LoadScript(LS);
		this.wizardGirl.playerController.ClearInput();
	}

	// Token: 0x0600161D RID: 5661 RVA: 0x00032100 File Offset: 0x00030300
	[Token(Token = "0x600161D")]
	[Address(RVA = "0x512CB0", Offset = "0x511CB0", VA = "0x180512CB0")]
	public void RunNextScriptStep()
	{
		ScriptMode scriptMode = this.scriptSystem;
		int g_iStepMax = scriptMode.g_iStepMax;
		if (scriptMode.g_iStep >= g_iStepMax || scriptMode.g_bAutoStep)
		{
			return;
		}
		if (!scriptMode.g_bDialog)
		{
			Game.SetDialogArrowEnable(false);
			int num = scriptMode.g_iStep;
			num++;
			scriptMode.g_iStep = num;
			scriptMode.RunStep(num);
			return;
		}
		string g_sDialogText = scriptMode.g_sDialogText;
		int stringLength = g_sDialogText.m_stringLength;
		int num2 = 0;
		string g_sDialogSpeaker = scriptMode.g_sDialogSpeaker;
		scriptMode.g_sDialogTextNum = stringLength;
		string text = g_sDialogText.Substring(num2, stringLength);
		Game.SetDialogText(g_sDialogSpeaker, text);
		scriptMode.g_bDialog = false;
		while (scriptMode.g_bAutoStep)
		{
		}
		Game.SetDialogArrowEnable(true);
	}

	// Token: 0x0600161E RID: 5662 RVA: 0x000321AC File Offset: 0x000303AC
	[Token(Token = "0x600161E")]
	[Address(RVA = "0x512FD0", Offset = "0x511FD0", VA = "0x180512FD0")]
	public void SkipScript()
	{
		ScriptMode scriptMode = this.scriptSystem;
		int g_iSkipID = scriptMode.g_iSkipID;
		if (g_iSkipID > 1)
		{
			scriptMode.g_iStep = g_iSkipID;
			scriptMode.RunStep(g_iSkipID);
			return;
		}
	}

	// Token: 0x0600161F RID: 5663 RVA: 0x000321E0 File Offset: 0x000303E0
	[Token(Token = "0x600161F")]
	[Address(RVA = "0x511CA0", Offset = "0x510CA0", VA = "0x180511CA0")]
	public bool IsSkipScriptAllowed()
	{
		return this.scriptSystem.g_iSkipID > 0;
	}

	// Token: 0x06001620 RID: 5664 RVA: 0x00032204 File Offset: 0x00030404
	[Token(Token = "0x6001620")]
	[Address(RVA = "0x513230", Offset = "0x512230", VA = "0x180513230")]
	public void UpdateSavePoint(SavePoint savePoint)
	{
		int savePointNumber = this.GetSavePointNumber(savePoint);
		GameSaveBasicData basic = Game.GameSave.basic;
		string text = this.stageName;
		basic.AddNewSavePoint(text, savePointNumber);
		UITeleport canvas = Game.GetCanvas<UITeleport>();
		GameStage stage = Game.GameSave.basic.stage;
		canvas.UpdateLocation(stage, savePointNumber);
	}

	// Token: 0x06001621 RID: 5665 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001621")]
	[Address(RVA = "0x5133C0", Offset = "0x5123C0", VA = "0x1805133C0")]
	public bool VerifySaveSystem()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001622 RID: 5666 RVA: 0x00032260 File Offset: 0x00030460
	[Token(Token = "0x6001622")]
	[Address(RVA = "0x513150", Offset = "0x512150", VA = "0x180513150")]
	public void UpdateGameSave(SavePoint savePoint)
	{
		SaveSystem save = this.Save;
		SoulSystem soulSystem = this.soulSystem;
		WizardGirlManage wizardGirlManage = this.wizardGirl;
		save.UpdateCharacterData(wizardGirlManage, soulSystem);
		GameSaveBasicData basic = Game.GameSave.basic;
		string text = this.stageName;
		int savePointNumber = this.GetSavePointNumber(savePoint);
		basic.UpdateStageData(text, savePointNumber);
		Game.WriteGameSave();
	}

	// Token: 0x06001623 RID: 5667 RVA: 0x000322C4 File Offset: 0x000304C4
	[Token(Token = "0x6001623")]
	[Address(RVA = "0x513120", Offset = "0x512120", VA = "0x180513120")]
	public void UpdateGameSaveWithUIMenu()
	{
		SaveSystem save = this.Save;
		SoulSystem soulSystem = this.soulSystem;
		WizardGirlManage wizardGirlManage = this.wizardGirl;
		save.UpdateCharacterData(wizardGirlManage, soulSystem);
	}

	// Token: 0x06001624 RID: 5668 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001624")]
	[Address(RVA = "0x510A80", Offset = "0x50FA80", VA = "0x180510A80")]
	public int GetSavePointNumber(SavePoint savePoint)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001625 RID: 5669 RVA: 0x000322F4 File Offset: 0x000304F4
	[Token(Token = "0x6001625")]
	[Address(RVA = "0x3352E0", Offset = "0x3342E0", VA = "0x1803352E0")]
	public SceneBGMController GetBGM()
	{
		return this.BGM;
	}

	// Token: 0x06001626 RID: 5670 RVA: 0x00032308 File Offset: 0x00030508
	[Token(Token = "0x6001626")]
	[Address(RVA = "0x33F2E0", Offset = "0x33E2E0", VA = "0x18033F2E0")]
	public Camera GetStageCamera()
	{
		return this.stageCam;
	}

	// Token: 0x06001627 RID: 5671 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001627")]
	[Address(RVA = "0x510860", Offset = "0x50F860", VA = "0x180510860")]
	public PlayerCamera GetCameraController()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001628 RID: 5672 RVA: 0x0003231C File Offset: 0x0003051C
	[Token(Token = "0x6001628")]
	[Address(RVA = "0x512E00", Offset = "0x511E00", VA = "0x180512E00")]
	public void SetBossDialogue(CombatDialogueType dialogueType)
	{
		this.bossDialogue = dialogueType;
		this.isBossAttacking = false;
	}

	// Token: 0x06001629 RID: 5673 RVA: 0x00032338 File Offset: 0x00030538
	[Token(Token = "0x6001629")]
	[Address(RVA = "0x512DF0", Offset = "0x511DF0", VA = "0x180512DF0")]
	public void SetBossAttacking(bool isBossAttacking)
	{
		this.isBossAttacking = isBossAttacking;
	}

	// Token: 0x0600162A RID: 5674 RVA: 0x0003234C File Offset: 0x0003054C
	[Token(Token = "0x600162A")]
	[Address(RVA = "0x5134B0", Offset = "0x5124B0", VA = "0x1805134B0")]
	public void WaitForDeathMenu()
	{
		SceneBGMController bgm = this.BGM;
		int num = 0;
		if (bgm != num)
		{
			SceneBGMController bgm2 = this.BGM;
			BGM g_DeathBGM = bgm2.g_DeathBGM;
			int num2 = 0;
			if (!(g_DeathBGM == num2))
			{
				bgm2.StopBGM();
				int num3 = UnityEngine.Random.Range(0, 3);
				if (num3 != 0)
				{
					if (num3 != 0)
					{
						if (num3 != 1)
						{
							goto IL_8E;
						}
						bgm2.g_DeathBGM.PlayBGM(86f);
					}
					bgm2.g_DeathBGM.PlayBGM(54f);
				}
				BGM g_DeathBGM2 = bgm2.g_DeathBGM;
				int num4 = 0;
				g_DeathBGM2.PlayBGM((float)num4);
			}
			Debug.Log("找不到死亡音樂");
		}
		IL_8E:
		int num5;
		Action action = new Action(num5.OpenPlayerDeathMessageBox);
		num5 = 0;
		Game.BindAnyKeyDownHandler(action);
		if (this.bossDialogue != CombatDialogueType.None)
		{
			int num6;
			SceneManager.<PlayBossDialogue>d__73 <PlayBossDialogue>d__ = new SceneManager.<PlayBossDialogue>d__73(num6);
			num6 = 0;
			<PlayBossDialogue>d__.<>4__this = this;
			CoroutineHandle coroutineHandle = MECExtensionMethods1.RunCoroutine(<PlayBossDialogue>d__);
		}
	}

	// Token: 0x0600162B RID: 5675 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600162B")]
	[Address(RVA = "0x5129D0", Offset = "0x5119D0", VA = "0x1805129D0")]
	private IEnumerator<float> PlayBossDialogue()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600162C RID: 5676 RVA: 0x0003242C File Offset: 0x0003062C
	[Token(Token = "0x600162C")]
	[Address(RVA = "0x512A40", Offset = "0x511A40", VA = "0x180512A40")]
	public void PlayPartnerDialogue()
	{
		this.stageUI.PlayPartnerDialogue();
	}

	// Token: 0x0600162D RID: 5677 RVA: 0x0003244C File Offset: 0x0003064C
	[Token(Token = "0x600162D")]
	[Address(RVA = "0x512B80", Offset = "0x511B80", VA = "0x180512B80")]
	public void ResetAllEnemy()
	{
		this.enemiesManager.ResetEnemyDeath();
	}

	// Token: 0x0600162E RID: 5678 RVA: 0x0003246C File Offset: 0x0003066C
	[Token(Token = "0x600162E")]
	[Address(RVA = "0x512BB0", Offset = "0x511BB0", VA = "0x180512BB0")]
	public void ResetAllScriptSceneEvent()
	{
		SaveSystem save = this.Save;
		int num = 0;
		if (save != num && this.Save.gameObject.activeSelf)
		{
			ScriptSceneEventEnable[] components = this.Save.GetComponents<ScriptSceneEventEnable>();
			int num2 = 0;
			int length = components.Length;
			if (num2 < length)
			{
				components[num2].CloseScriptEvent();
				num2++;
			}
		}
	}

	// Token: 0x0600162F RID: 5679 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600162F")]
	[Address(RVA = "0x5130D0", Offset = "0x5120D0", VA = "0x1805130D0")]
	public void UnlockAchievements(GameAchievement achievement)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001630 RID: 5680 RVA: 0x000324D0 File Offset: 0x000306D0
	[Token(Token = "0x6001630")]
	[Address(RVA = "0x512E10", Offset = "0x511E10", VA = "0x180512E10")]
	public void SetDodgeTime()
	{
		Game.EnablePlayerHitStop(0.3f, 0.6f);
		Game.EnableStageHitStop(0.3f, 0.6f);
	}

	// Token: 0x06001631 RID: 5681 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001631")]
	[Address(RVA = "0x511D20", Offset = "0x510D20", VA = "0x180511D20")]
	public void MarkTreasureChestDataUnlocked(int index)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001632 RID: 5682 RVA: 0x000324FC File Offset: 0x000306FC
	[Token(Token = "0x6001632")]
	[Address(RVA = "0x4D0F50", Offset = "0x4CFF50", VA = "0x1804D0F50")]
	public WizardGirlManage GetPlayerManager()
	{
		return this.wizardGirl;
	}

	// Token: 0x06001633 RID: 5683 RVA: 0x00032510 File Offset: 0x00030710
	[Token(Token = "0x6001633")]
	[Address(RVA = "0x510810", Offset = "0x50F810", VA = "0x180510810")]
	public AchievementsSystem GetAchievementsSystem()
	{
		return this.achievementSystem;
	}

	// Token: 0x06001634 RID: 5684 RVA: 0x00032524 File Offset: 0x00030724
	[Token(Token = "0x6001634")]
	[Address(RVA = "0x50F680", Offset = "0x50E680", VA = "0x18050F680")]
	public void AddEffect(EffectPool source)
	{
		this.timeScaledEffects.Add(source);
		float stageTimeScale = Game.GetStageTimeScale();
		source.SetTimeScale(stageTimeScale);
	}

	// Token: 0x06001635 RID: 5685 RVA: 0x00032554 File Offset: 0x00030754
	[Token(Token = "0x6001635")]
	[Address(RVA = "0x50F5E0", Offset = "0x50E5E0", VA = "0x18050F5E0")]
	public void AddEffect(EffectPoolFull source)
	{
		this.timeScaledFullEffects.Add(source);
		float stageTimeScale = Game.GetStageTimeScale();
		source.SetTimeScale(stageTimeScale);
	}

	// Token: 0x06001636 RID: 5686 RVA: 0x00032584 File Offset: 0x00030784
	[Token(Token = "0x6001636")]
	[Address(RVA = "0x50F7D0", Offset = "0x50E7D0", VA = "0x18050F7D0")]
	public void AddSound(SoundEffect source)
	{
		this.timeScaledSounds.Add(source);
		float stageTimeScale = Game.GetStageTimeScale();
		source.SetTimeScale(stageTimeScale);
	}

	// Token: 0x06001637 RID: 5687 RVA: 0x000325B4 File Offset: 0x000307B4
	[Token(Token = "0x6001637")]
	[Address(RVA = "0x50F580", Offset = "0x50E580", VA = "0x18050F580")]
	public void AddDisposeHandler(IDisposable handler)
	{
		this.disposeHandlers.Add(handler);
	}

	// Token: 0x06001638 RID: 5688 RVA: 0x000325D4 File Offset: 0x000307D4
	[Token(Token = "0x6001638")]
	[Address(RVA = "0x50F720", Offset = "0x50E720", VA = "0x18050F720")]
	public void AddNpc(NPC npc)
	{
		this.timeScaledNpc.Add(npc);
		float stageTimeScale = Game.GetStageTimeScale();
		XmlSchemaType xmlType = npc.XmlType;
	}

	// Token: 0x06001639 RID: 5689 RVA: 0x00032604 File Offset: 0x00030804
	[Token(Token = "0x6001639")]
	[Address(RVA = "0x512B20", Offset = "0x511B20", VA = "0x180512B20")]
	public void RemoveNpc(NPC npc)
	{
		bool flag = this.timeScaledNpc.Remove(npc);
	}

	// Token: 0x0600163A RID: 5690 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600163A")]
	[Address(RVA = "0x50F4B0", Offset = "0x50E4B0", VA = "0x18050F4B0")]
	public void AddAttackable(AttackableObject attackableObject)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600163B RID: 5691 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600163B")]
	[Address(RVA = "0x512A60", Offset = "0x511A60", VA = "0x180512A60")]
	public void RemoveAttackable(AttackableObject attackableObject)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600163C RID: 5692 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600163C")]
	[Address(RVA = "0x510A40", Offset = "0x50FA40", VA = "0x180510A40")]
	public Dictionary<int, Vector3> GetNearAttackable(Vector3 unitPos)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600163D RID: 5693 RVA: 0x00032624 File Offset: 0x00030824
	[Token(Token = "0x600163D")]
	[Address(RVA = "0x5109D0", Offset = "0x50F9D0", VA = "0x1805109D0")]
	public ItemSystem GetItemManager()
	{
		return this.itemSystem;
	}

	// Token: 0x0600163E RID: 5694 RVA: 0x00032638 File Offset: 0x00030838
	[Token(Token = "0x600163E")]
	[Address(RVA = "0x510970", Offset = "0x50F970", VA = "0x180510970")]
	public EnemiesManager GetEnemiesManager()
	{
		return this.enemiesManager;
	}

	// Token: 0x0600163F RID: 5695 RVA: 0x0003264C File Offset: 0x0003084C
	[Token(Token = "0x600163F")]
	[Address(RVA = "0x510A20", Offset = "0x50FA20", VA = "0x180510A20")]
	public LockPointsManager GetLockPointsManager()
	{
		return this.enemiesManager.<LockPointsManager>k__BackingField;
	}

	// Token: 0x06001640 RID: 5696 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001640")]
	[Address(RVA = "0x510380", Offset = "0x50F380", VA = "0x180510380")]
	public void CreateSoul(SoulSystem.SoulType Type, Vector3 Pos, int iNum)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001641 RID: 5697 RVA: 0x0003266C File Offset: 0x0003086C
	[Token(Token = "0x6001641")]
	[Address(RVA = "0x510160", Offset = "0x50F160", VA = "0x180510160")]
	public void CalculateSceneSouls()
	{
		WizardGirlManage wizardGirlManage = this.wizardGirl;
		SoulSystem soulSystem = this.soulSystem;
		if (!wizardGirlManage.GetIsDead())
		{
			float sceneMoney = soulSystem.GetSceneMoney();
			int num = Mathf.RoundToInt(sceneMoney);
			Game.GameSave.stats.currentMoney = sceneMoney;
			int num2 = Game.Collection.IncreaseSoulAcquired(num);
		}
	}

	// Token: 0x06001642 RID: 5698 RVA: 0x000326C8 File Offset: 0x000308C8
	[Token(Token = "0x6001642")]
	[Address(RVA = "0x5108F0", Offset = "0x50F8F0", VA = "0x1805108F0")]
	public Transform GetCharacterParent()
	{
		return this.children[0];
	}

	// Token: 0x06001643 RID: 5699 RVA: 0x000326E8 File Offset: 0x000308E8
	[Token(Token = "0x6001643")]
	[Address(RVA = "0x510980", Offset = "0x50F980", VA = "0x180510980")]
	public Transform GetEnemyEffectParent()
	{
		return this.children[1];
	}

	// Token: 0x06001644 RID: 5700 RVA: 0x00032708 File Offset: 0x00030908
	[Token(Token = "0x6001644")]
	[Address(RVA = "0x510930", Offset = "0x50F930", VA = "0x180510930")]
	public Transform GetEffectParent()
	{
		return this.children[2];
	}

	// Token: 0x06001645 RID: 5701 RVA: 0x00032728 File Offset: 0x00030928
	[Token(Token = "0x6001645")]
	[Address(RVA = "0x5109E0", Offset = "0x50F9E0", VA = "0x1805109E0")]
	public Transform GetItemParent()
	{
		return this.children[3];
	}

	// Token: 0x06001646 RID: 5702 RVA: 0x00032748 File Offset: 0x00030948
	[Token(Token = "0x6001646")]
	[Address(RVA = "0x510CB0", Offset = "0x50FCB0", VA = "0x180510CB0")]
	public Transform GetSoulParent()
	{
		return this.children[4];
	}

	// Token: 0x06001647 RID: 5703 RVA: 0x00032768 File Offset: 0x00030968
	[Token(Token = "0x6001647")]
	[Address(RVA = "0x510CF0", Offset = "0x50FCF0", VA = "0x180510CF0")]
	public Transform GetSoundParent()
	{
		return this.children[5];
	}

	// Token: 0x06001648 RID: 5704 RVA: 0x00032788 File Offset: 0x00030988
	[Token(Token = "0x6001648")]
	[Address(RVA = "0x510820", Offset = "0x50F820", VA = "0x180510820")]
	public Transform GetBGMParent()
	{
		return this.children[6];
	}

	// Token: 0x06001649 RID: 5705 RVA: 0x000327A8 File Offset: 0x000309A8
	[Token(Token = "0x6001649")]
	[Address(RVA = "0x513720", Offset = "0x512720", VA = "0x180513720")]
	public SceneManager()
	{
		List<SoundEffect> list = new List();
		this.timeScaledSounds = list;
		ulong num;
		this.originalGravity.z = (float)num;
		EnemiesManager enemiesManager = new EnemiesManager();
		this.enemiesManager = enemiesManager;
		ItemSystem itemSystem = new ItemSystem();
		this.itemSystem = itemSystem;
		SoulSystem soulSystem = new SoulSystem();
		this.soulSystem = soulSystem;
		this.scriptSystem = new ScriptMode
		{
			g_sVersionText = "V011"
		};
		AchievementsSystem achievementsSystem = new AchievementsSystem();
		this.achievementSystem = achievementsSystem;
		List<AttackableObject> list2 = new List();
		this.timeAttackables = list2;
		List<NPC> list3 = new List();
		this.timeScaledNpc = list3;
		List<EffectPool> list4 = new List();
		this.timeScaledEffects = list4;
		List<EffectPoolFull> list5 = new List();
		this.timeScaledFullEffects = list5;
		List<IDisposable> list6 = new List();
		this.disposeHandlers = list6;
		base..ctor();
	}

	// Token: 0x04002175 RID: 8565
	[Cpp2IlInjected.FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4002175")]
	public GameObject PlayerObj;

	// Token: 0x04002176 RID: 8566
	[Cpp2IlInjected.FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002176")]
	public GameObject CameraObj;

	// Token: 0x04002177 RID: 8567
	[Cpp2IlInjected.FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4002177")]
	public Vector3 g_v3PlayerPos;

	// Token: 0x04002178 RID: 8568
	[Cpp2IlInjected.FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4002178")]
	public SaveSystem Save;

	// Token: 0x04002179 RID: 8569
	[Cpp2IlInjected.FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4002179")]
	public SceneEventManager SEM;

	// Token: 0x0400217A RID: 8570
	[Cpp2IlInjected.FieldOffset(Offset = "0x48")]
	[Token(Token = "0x400217A")]
	public SceneBGMController BGM;

	// Token: 0x0400217B RID: 8571
	[Cpp2IlInjected.FieldOffset(Offset = "0x50")]
	[Token(Token = "0x400217B")]
	public VoiceController Voice;

	// Token: 0x0400217C RID: 8572
	[Cpp2IlInjected.FieldOffset(Offset = "0x58")]
	[Token(Token = "0x400217C")]
	public SceneManager.GameState stageState;

	// Token: 0x0400217D RID: 8573
	[Cpp2IlInjected.FieldOffset(Offset = "0x60")]
	[Token(Token = "0x400217D")]
	private Camera stageCam;

	// Token: 0x0400217E RID: 8574
	[Cpp2IlInjected.FieldOffset(Offset = "0x68")]
	[Token(Token = "0x400217E")]
	[SerializeField]
	private StageUIManager stageUI;

	// Token: 0x0400217F RID: 8575
	[Cpp2IlInjected.FieldOffset(Offset = "0x70")]
	[Token(Token = "0x400217F")]
	[SerializeField]
	private Transform[] children;

	// Token: 0x04002180 RID: 8576
	[Cpp2IlInjected.FieldOffset(Offset = "0x78")]
	[Token(Token = "0x4002180")]
	[SerializeField]
	private PassiveEvent[] passiveEvents;

	// Token: 0x04002181 RID: 8577
	[Cpp2IlInjected.FieldOffset(Offset = "0x80")]
	[Token(Token = "0x4002181")]
	[SerializeField]
	private List<SoundEffect> timeScaledSounds;

	// Token: 0x04002182 RID: 8578
	[Cpp2IlInjected.FieldOffset(Offset = "0x88")]
	[Token(Token = "0x4002182")]
	[SerializeField]
	private CombatDialogueType bossDialogue;

	// Token: 0x04002183 RID: 8579
	[Cpp2IlInjected.FieldOffset(Offset = "0x8C")]
	[Token(Token = "0x4002183")]
	[SerializeField]
	private bool isBossAttacking;

	// Token: 0x04002184 RID: 8580
	[Cpp2IlInjected.FieldOffset(Offset = "0x90")]
	[Token(Token = "0x4002184")]
	[SerializeField]
	private GameDialoguePackage dialoguePack;

	// Token: 0x04002185 RID: 8581
	[Cpp2IlInjected.FieldOffset(Offset = "0x98")]
	[Token(Token = "0x4002185")]
	[SerializeField]
	private GameBattleSelectPackage battleSelectPack;

	// Token: 0x04002186 RID: 8582
	[Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
	[Token(Token = "0x4002186")]
	private readonly Vector3 originalGravity;

	// Token: 0x04002187 RID: 8583
	[Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
	[Token(Token = "0x4002187")]
	private WizardGirlManage wizardGirl;

	// Token: 0x04002188 RID: 8584
	[Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
	[Token(Token = "0x4002188")]
	private EnemiesManager enemiesManager;

	// Token: 0x04002189 RID: 8585
	[Cpp2IlInjected.FieldOffset(Offset = "0xC0")]
	[Token(Token = "0x4002189")]
	private ItemSystem itemSystem;

	// Token: 0x0400218A RID: 8586
	[Cpp2IlInjected.FieldOffset(Offset = "0xC8")]
	[Token(Token = "0x400218A")]
	private SoulSystem soulSystem;

	// Token: 0x0400218B RID: 8587
	[Cpp2IlInjected.FieldOffset(Offset = "0xD0")]
	[Token(Token = "0x400218B")]
	private ScriptMode scriptSystem;

	// Token: 0x0400218C RID: 8588
	[Cpp2IlInjected.FieldOffset(Offset = "0xD8")]
	[Token(Token = "0x400218C")]
	private AchievementsSystem achievementSystem;

	// Token: 0x0400218D RID: 8589
	[Cpp2IlInjected.FieldOffset(Offset = "0xE0")]
	[Token(Token = "0x400218D")]
	private bool onSystemMenu;

	// Token: 0x0400218E RID: 8590
	[Cpp2IlInjected.FieldOffset(Offset = "0xE8")]
	[Token(Token = "0x400218E")]
	private bool[] treasureChestData;

	// Token: 0x0400218F RID: 8591
	[Cpp2IlInjected.FieldOffset(Offset = "0xF0")]
	[Token(Token = "0x400218F")]
	private string stageName;

	// Token: 0x04002190 RID: 8592
	[Cpp2IlInjected.FieldOffset(Offset = "0xF8")]
	[Token(Token = "0x4002190")]
	private int stageId;

	// Token: 0x04002191 RID: 8593
	[Cpp2IlInjected.FieldOffset(Offset = "0xFC")]
	[Token(Token = "0x4002191")]
	private int currentAttackableId;

	// Token: 0x04002192 RID: 8594
	[Cpp2IlInjected.FieldOffset(Offset = "0x100")]
	[Token(Token = "0x4002192")]
	private List<AttackableObject> timeAttackables;

	// Token: 0x04002193 RID: 8595
	[Cpp2IlInjected.FieldOffset(Offset = "0x108")]
	[Token(Token = "0x4002193")]
	private List<NPC> timeScaledNpc;

	// Token: 0x04002194 RID: 8596
	[Cpp2IlInjected.FieldOffset(Offset = "0x110")]
	[Token(Token = "0x4002194")]
	private List<EffectPool> timeScaledEffects;

	// Token: 0x04002195 RID: 8597
	[Cpp2IlInjected.FieldOffset(Offset = "0x118")]
	[Token(Token = "0x4002195")]
	private List<EffectPoolFull> timeScaledFullEffects;

	// Token: 0x04002196 RID: 8598
	[Cpp2IlInjected.FieldOffset(Offset = "0x120")]
	[Token(Token = "0x4002196")]
	private List<IDisposable> disposeHandlers;

	// Token: 0x04002197 RID: 8599
	[Cpp2IlInjected.FieldOffset(Offset = "0x128")]
	[Token(Token = "0x4002197")]
	private RadiusPlayerCheck[] areaEffects;

	// Token: 0x04002198 RID: 8600
	[Cpp2IlInjected.FieldOffset(Offset = "0x130")]
	[Token(Token = "0x4002198")]
	private GameObject[] attackGroups;

	// Token: 0x04002199 RID: 8601
	[Cpp2IlInjected.FieldOffset(Offset = "0x138")]
	[Token(Token = "0x4002199")]
	private SpatialHashManager spatialHashManager;

	// Token: 0x02000246 RID: 582
	[Token(Token = "0x2000246")]
	public enum GameState
	{
		// Token: 0x0400219B RID: 8603
		[Token(Token = "0x400219B")]
		Normal,
		// Token: 0x0400219C RID: 8604
		[Token(Token = "0x400219C")]
		Death,
		// Token: 0x0400219D RID: 8605
		[Token(Token = "0x400219D")]
		Script,
		// Token: 0x0400219E RID: 8606
		[Token(Token = "0x400219E")]
		SaveUI
	}

	// Token: 0x02000247 RID: 583
	[Token(Token = "0x2000247")]
	public enum SoundWaveType
	{
		// Token: 0x040021A0 RID: 8608
		[Token(Token = "0x40021A0")]
		Battle,
		// Token: 0x040021A1 RID: 8609
		[Token(Token = "0x40021A1")]
		Footstep
	}
}
