Decompiled source of PEAKPartyGames v0.1.5

BepInEx/plugins/PEAKPartyGames/PEAKPartyGames.dll

Decompiled a day ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Configuration;
using ExitGames.Client.Photon;
using HarmonyLib;
using Peak.Afflictions;
using Photon.Pun;
using Photon.Realtime;
using UnityEngine;
using UnityEngine.Rendering;
using Zorro.Core;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("peakmod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("peakmod")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("151563ae-3187-4437-8520-701a4dbc2edc")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace PeakCloudArena;

[BepInPlugin("songt.peak.cloudarena", "PEAK Party Games", "5.21.6")]
public class Plugin : BaseUnityPlugin, IOnEventCallback
{
	public enum GameState
	{
		Idle,
		SpawningArena,
		RoundStarting,
		Running,
		RoundEnding,
		GameEnding
	}

	public enum RoundGameType
	{
		CloudDynamite,
		ShelfHook,
		BounceFrisbee,
		DoubleCloudCoconut,
		RhythmGame,
		ColorCloudSurvival,
		ButtonMashRace,
		StarGrid,
		MemoryMatch,
		HalliGalli,
		DinoRun
	}

	public enum DirectPrefabMode
	{
		AutoFromItem,
		ManualPath
	}

	private enum Round6CloudColor
	{
		Green,
		Yellow,
		Orange,
		Purple,
		Red
	}

	private class ArenaTile
	{
		public GameObject obj;

		public Vector3 position;

		public int layerIndex;

		public ArenaTile(GameObject obj, Vector3 position, int layerIndex)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			this.obj = obj;
			this.position = position;
			this.layerIndex = layerIndex;
		}
	}

	private sealed class FungusFrameLocker : MonoBehaviour
	{
		private Transform[] transforms;

		private Vector3[] localPositions;

		private Quaternion[] localRotations;

		private Vector3[] localScales;

		public void Capture(Transform root)
		{
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)root == (Object)null)
			{
				return;
			}
			transforms = ((Component)root).GetComponentsInChildren<Transform>(true);
			localPositions = (Vector3[])(object)new Vector3[transforms.Length];
			localRotations = (Quaternion[])(object)new Quaternion[transforms.Length];
			localScales = (Vector3[])(object)new Vector3[transforms.Length];
			for (int i = 0; i < transforms.Length; i++)
			{
				Transform val = transforms[i];
				if (!((Object)(object)val == (Object)null))
				{
					localPositions[i] = val.localPosition;
					localRotations[i] = val.localRotation;
					localScales[i] = val.localScale;
				}
			}
		}

		private void LateUpdate()
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			if (transforms == null)
			{
				return;
			}
			for (int i = 0; i < transforms.Length; i++)
			{
				Transform val = transforms[i];
				if (!((Object)(object)val == (Object)null))
				{
					try
					{
						val.localPosition = localPositions[i];
						val.localRotation = localRotations[i];
						val.localScale = localScales[i];
					}
					catch
					{
					}
				}
			}
		}
	}

	[CompilerGenerated]
	private sealed class <>c__DisplayClass881_0
	{
		public RoundGameType roundType;

		internal void <AutoGameRoutine>b__0(RoundGameType selected)
		{
			roundType = selected;
		}
	}

	[CompilerGenerated]
	private sealed class <AutoGameRoutine>d__881 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private int <roundsToPlay>5__1;

		private <>c__DisplayClass881_0 <>8__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <AutoGameRoutine>d__881(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>8__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_03fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0405: Expected O, but got Unknown
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02df: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.finalEndingTriggered = false;
				<>4__this.finalScoreboardActive = false;
				<>4__this.roundBetweenMovementLockUntil = -1f;
				<>4__this.firstRoundStartedAfterMapLoad = true;
				<>4__this.BuildRoundOrder();
				<>4__this.currentRoundIndex = 0;
				<>4__this.mainRoundPlayedCount = 0;
				<>4__this.votedPlayedRounds.Clear();
				<>4__this.ClearRoundResultPodiums();
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.SpawnRoundResultPodiumsForGameRoutine());
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<roundsToPlay>5__1 = Mathf.Clamp((<>4__this.totalMainRounds != null) ? <>4__this.totalMainRounds.Value : 7, 1, 7);
				<roundsToPlay>5__1 = 7;
				goto IL_0329;
			case 2:
				<>1__state = -1;
				if (!<>4__this.gameStart.Value)
				{
					goto IL_035a;
				}
				if (!<>4__this.votedPlayedRounds.Contains(<>8__2.roundType))
				{
					<>4__this.votedPlayedRounds.Add(<>8__2.roundType);
				}
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.RunRoundRoutine(<>8__2.roundType, testMode: false));
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForRoundEndPresentationCompleteRoutine("AfterRunRoundRoutine"));
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.mainRoundPlayedCount++;
				if (<>4__this.gameStart.Value && <>4__this.mainRoundPlayedCount < <roundsToPlay>5__1)
				{
					<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, <>4__this.roundRestartDelay.Value));
					<>1__state = 5;
					return true;
				}
				goto IL_0321;
			case 5:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForRoundEndPresentationCompleteRoutine("BeforeNextVote"));
				<>1__state = 6;
				return true;
			case 6:
				<>1__state = -1;
				goto IL_0321;
			case 7:
				<>1__state = -1;
				<>4__this.TriggerFinalWinnersByScore();
				<>4__this.FullGameEndCleanup(startProtection: true);
				<>4__this.ClearRoundResultPodiums();
				<>2__current = (object)new WaitForSeconds(0.15f);
				<>1__state = 8;
				return true;
			case 8:
				<>1__state = -1;
				goto IL_0416;
			case 9:
				{
					<>1__state = -1;
					<>4__this.gameState = GameState.Idle;
					return false;
				}
				IL_035a:
				if (<>4__this.gameStart.Value && !<>4__this.finalEndingTriggered)
				{
					<>4__this.gameState = GameState.GameEnding;
					<>4__this.SyncScoresToAll();
					<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.ShowFinalScoreboardRoutine(7f));
					<>1__state = 7;
					return true;
				}
				goto IL_0416;
				IL_0321:
				<>8__2 = null;
				goto IL_0329;
				IL_0416:
				<>4__this.mainGameRoutine = null;
				<>4__this.TurnOffAllStartTriggers();
				<>4__this.ClearArena();
				<>2__current = null;
				<>1__state = 9;
				return true;
				IL_0329:
				if (<>4__this.gameStart.Value && <>4__this.mainRoundPlayedCount < <roundsToPlay>5__1)
				{
					<>8__2 = new <>c__DisplayClass881_0();
					<>8__2.roundType = RoundGameType.CloudDynamite;
					<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.RunRoundVoteSelectionRoutine(<>4__this.mainRoundPlayedCount + 1, <roundsToPlay>5__1, delegate(RoundGameType selected)
					{
						<>8__2.roundType = selected;
					}));
					<>1__state = 2;
					return true;
				}
				goto IL_035a;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <CloudWarningTintRoutine>d__1259 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject obj;

		public float warningSeconds;

		public Plugin <>4__this;

		private Color <yellow>5__1;

		private Color <orange>5__2;

		private Color <red>5__3;

		private float <total>5__4;

		private float <step>5__5;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <CloudWarningTintRoutine>d__1259(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Expected O, but got Unknown
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Expected O, but got Unknown
			//IL_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Expected O, but got Unknown
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if ((Object)(object)obj == (Object)null)
				{
					return false;
				}
				<yellow>5__1 = new Color(1f, 0.92f, 0.02f, 1f);
				<orange>5__2 = new Color(1f, 0.48f, 0.02f, 1f);
				<red>5__3 = new Color(1f, 0.03f, 0.01f, 1f);
				if (warningSeconds < 1f)
				{
					<>4__this.ApplyCloudWarningSolidMaterialToObjectLocal(obj, <orange>5__2, 2.6f);
					<>2__current = (object)new WaitForSeconds(Mathf.Max(0.05f, warningSeconds));
					<>1__state = 1;
					return true;
				}
				<total>5__4 = Mathf.Max(0.5f, warningSeconds);
				<step>5__5 = <total>5__4 / 3f;
				<>4__this.ApplyCloudWarningSolidMaterialToObjectLocal(obj, <yellow>5__1, 1.8f);
				<>2__current = (object)new WaitForSeconds(<step>5__5);
				<>1__state = 2;
				return true;
			case 1:
				<>1__state = -1;
				if ((Object)(object)obj != (Object)null)
				{
					<>4__this.activeCloudWarningTintRoutines.Remove(obj);
				}
				return false;
			case 2:
				<>1__state = -1;
				if ((Object)(object)obj == (Object)null)
				{
					return false;
				}
				<>4__this.ApplyCloudWarningSolidMaterialToObjectLocal(obj, <orange>5__2, 2.4f);
				<>2__current = (object)new WaitForSeconds(<step>5__5);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				if ((Object)(object)obj == (Object)null)
				{
					return false;
				}
				<>4__this.ApplyCloudWarningSolidMaterialToObjectLocal(obj, <red>5__3, 3f);
				<>2__current = (object)new WaitForSeconds(<step>5__5);
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				if ((Object)(object)obj != (Object)null)
				{
					<>4__this.ApplyCloudWarningSolidMaterialToObjectLocal(obj, <red>5__3, 3.2f);
					<>4__this.activeCloudWarningTintRoutines.Remove(obj);
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DeleteMarkedTileAfterDelayRoutine>d__1246 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public ArenaTile tile;

		public float delay;

		public Plugin <>4__this;

		private Vector3 <p>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DeleteMarkedTileAfterDelayRoutine>d__1246(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if (tile != null && (Object)(object)tile.obj != (Object)null)
				{
					<>4__this.ApplyOrangeWarningTintToTileLocal(tile);
					if (PhotonNetwork.InRoom && <>4__this.IsHostOrOffline())
					{
						<p>5__1 = tile.position;
						<>4__this.RaiseSimpleEvent(112, new object[4]
						{
							<p>5__1.x,
							<p>5__1.y,
							<p>5__1.z,
							Mathf.Max(0.5f, delay)
						}, (ReceiverGroup)0);
					}
				}
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, delay));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.pendingStandingTileDeletes.Remove(tile);
				if (<>4__this.gameState != GameState.Running)
				{
					return false;
				}
				if (tile == null || (Object)(object)tile.obj == (Object)null)
				{
					return false;
				}
				if (!<>4__this.activeTiles.Contains(tile))
				{
					return false;
				}
				<>4__this.PlayCloudDisappearSound();
				if (PhotonNetwork.InRoom && <>4__this.IsHostOrOffline())
				{
					<>4__this.RaiseSimpleEvent(114, Array.Empty<object>(), (ReceiverGroup)0);
				}
				<>4__this.RemoveTile(tile);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DeleteRound1MarkedTileAfterWarningRoutine>d__1237 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public ArenaTile tile;

		public float warningSeconds;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DeleteRound1MarkedTileAfterWarningRoutine>d__1237(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, warningSeconds));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.DeleteRound1MarkedTileNow(tile);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DeleteThrownFrisbeeAfterDelayRoutine>d__1321 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Item item;

		public Plugin <>4__this;

		private Character <parentCharacter>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DeleteThrownFrisbeeAfterDelayRoutine>d__1321(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<parentCharacter>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(1f, <>4__this.thrownFrisbeeDeleteSeconds.Value));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				if ((Object)(object)item == (Object)null)
				{
					return false;
				}
				try
				{
					<parentCharacter>5__1 = ((Component)item).GetComponentInParent<Character>();
					if ((Object)(object)<parentCharacter>5__1 != (Object)null)
					{
						return false;
					}
					<parentCharacter>5__1 = null;
				}
				catch
				{
				}
				<>4__this.DestroyItemObject(((Component)item).gameObject);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DestroyObjectAfterSecondsRoutine>d__1264 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject obj;

		public float seconds;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DestroyObjectAfterSecondsRoutine>d__1264(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, seconds));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				if ((Object)(object)obj != (Object)null)
				{
					Object.Destroy((Object)(object)obj);
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DestroyPodiumTeleportTestObjectAfterSecondsRoutine>d__1267 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject obj;

		public float seconds;

		public Plugin <>4__this;

		private PhotonView <view>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DestroyPodiumTeleportTestObjectAfterSecondsRoutine>d__1267(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<view>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, seconds));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				if ((Object)(object)this.obj == (Object)null)
				{
					return false;
				}
				try
				{
					<>4__this.podiumTeleportTestObjects.Remove(this.obj);
				}
				catch
				{
				}
				try
				{
					<view>5__1 = this.obj.GetComponent<PhotonView>();
					if ((Object)(object)<view>5__1 != (Object)null && PhotonNetwork.InRoom)
					{
						if (<view>5__1.IsMine || <>4__this.IsHostOrOffline())
						{
							PhotonNetwork.Destroy(this.obj);
						}
						else
						{
							Object.Destroy((Object)(object)this.obj);
						}
					}
					else
					{
						Object.Destroy((Object)(object)this.obj);
					}
					<view>5__1 = null;
				}
				catch
				{
					try
					{
						Object.Destroy((Object)(object)this.obj);
					}
					catch
					{
					}
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DisableBeachObjectsDelayedRoutine>d__833 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DisableBeachObjectsDelayedRoutine>d__833(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(3f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <DynamiteGiveRoutine>d__1312 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private List<Character>.Enumerator <>s__1;

		private Character <character>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DynamiteGiveRoutine>d__1312(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>s__1 = default(List<Character>.Enumerator);
			<character>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<>4__this.gameState == GameState.Running)
			{
				<>s__1 = <>4__this.alivePlayers.GetEnumerator();
				try
				{
					while (<>s__1.MoveNext())
					{
						<character>5__2 = <>s__1.Current;
						if ((Object)(object)<character>5__2 == (Object)null)
						{
							continue;
						}
						if (<>4__this.HasDynamiteInInventory(<character>5__2))
						{
							<>4__this.CancelPendingDynamiteGive(<character>5__2);
							continue;
						}
						if (!<>4__this.dynamiteDelayRoutines.ContainsKey(<character>5__2))
						{
							<>4__this.dynamiteDelayRoutines[<character>5__2] = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.GiveDynamiteAfterMissingDelayRoutine(<character>5__2));
						}
						<character>5__2 = null;
					}
				}
				finally
				{
					((IDisposable)<>s__1).Dispose();
				}
				<>s__1 = default(List<Character>.Enumerator);
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0.1f, <>4__this.dynamiteCheckInterval.Value));
				<>1__state = 1;
				return true;
			}
			<>4__this.ClearPendingDynamiteRoutines();
			<>4__this.EndRhythmRoundLocal();
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <EnsureRoundResultPodiumsExistRoutine>d__1273 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private bool <missing>5__1;

		private int <i>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <EnsureRoundResultPodiumsExistRoutine>d__1273(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if (!<>4__this.IsHostOrOffline())
				{
					return false;
				}
				<missing>5__1 = <>4__this.roundResultPodiumObjects.Count < RoundResultPodiumSpawnPositions.Length;
				if (!<missing>5__1)
				{
					<i>5__2 = 0;
					while (<i>5__2 < RoundResultPodiumSpawnPositions.Length)
					{
						if (<i>5__2 >= <>4__this.roundResultPodiumObjects.Count || (Object)(object)<>4__this.roundResultPodiumObjects[<i>5__2] == (Object)null)
						{
							<missing>5__1 = true;
							break;
						}
						<i>5__2++;
					}
				}
				if (!<missing>5__1)
				{
					return false;
				}
				((BaseUnityPlugin)<>4__this).Logger.LogWarning((object)"[TeleportGuard] Result podiums missing before round-end teleport. Respawning podiums now.");
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.SpawnRoundResultPodiumsForGameRoutine());
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(0.15f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <FinishCurrentRoundRoutine>d__1046 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public string reason;

		public Plugin <>4__this;

		private string <blockReasonAfterDelay>5__1;

		private bool <allowDeadReviveThisRoundEnd>5__2;

		private float <notBefore>5__3;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <FinishCurrentRoundRoutine>d__1046(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<blockReasonAfterDelay>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_04c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cb: Expected O, but got Unknown
			//IL_052b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Expected O, but got Unknown
			//IL_0583: Unknown result type (might be due to invalid IL or missing references)
			//IL_058d: Expected O, but got Unknown
			//IL_044b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if (<>4__this.IsRoundStartFinishGuardActive())
				{
					((BaseUnityPlugin)<>4__this).Logger.LogWarning((object)("[RoundGuard] Finish coroutine delayed during round start guard. reason=" + reason + ", type=" + <>4__this.currentRoundType));
					<notBefore>5__3 = <>4__this.roundStartFinishGuardUntil;
					goto IL_00d7;
				}
				goto IL_00fa;
			case 1:
				<>1__state = -1;
				goto IL_00d7;
			case 2:
				<>1__state = -1;
				<>4__this.roundResultPanelActive = false;
				<>4__this.roundResultPanelForcedLines = null;
				<>4__this.roundResultPanelForcedTitle = "";
				<allowDeadReviveThisRoundEnd>5__2 = <>4__this.ShouldReviveDeadPlayersAtRoundEnd(<>4__this.currentRoundType);
				<>4__this.CleanupRoundEndStateForAllPlayers(<allowDeadReviveThisRoundEnd>5__2);
				<>2__current = (object)new WaitForSeconds(0.25f);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.EnsureRoundResultPodiumsExistRoutine());
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.TeleportRoundPlayersToRoundResultPodiums(<allowDeadReviveThisRoundEnd>5__2);
				<>4__this.ResetLocalMovementLockAnchor();
				<>2__current = (object)new WaitForSeconds(1f);
				<>1__state = 5;
				return true;
			case 5:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.PlayLocalRoundEndEmoteSequenceRoutine());
				<>1__state = 6;
				return true;
			case 6:
				<>1__state = -1;
				<>4__this.ShowAutoScoreboardAfterRoundEnd();
				<>2__current = (object)new WaitForSeconds(5f);
				<>1__state = 7;
				return true;
			case 7:
				{
					<>1__state = -1;
					if (<>4__this.currentRoundIsTestMode)
					{
						<>4__this.gameState = GameState.Idle;
						<>4__this.TurnOffAllStartTriggers();
						<>4__this.ClearArena();
					}
					else
					{
						<>4__this.gameState = GameState.Idle;
					}
					<>4__this.roundFinishInProgress = false;
					<>4__this.flareReadyActive = false;
					<>4__this.flareReadyLocalConfirmed = false;
					<>4__this.flareReadyThirdPersonLockUntil = -999f;
					<>4__this.flareReadyByActor.Clear();
					<>4__this.flareReadyActorOrder.Clear();
					<>4__this.flareReadyActorNames.Clear();
					if (<>4__this.flareReadyRoutine != null)
					{
						try
						{
							((MonoBehaviour)<>4__this).StopCoroutine(<>4__this.flareReadyRoutine);
						}
						catch
						{
						}
						<>4__this.flareReadyRoutine = null;
					}
					<>4__this.roundEndStartedAt = -1f;
					<>4__this.currentRoundHardTimeoutAt = -1f;
					<>4__this.roundEndPresentationComplete = true;
					<>4__this.finishRoundRoutineHandle = null;
					((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)("[RoundEnd] FinishCurrentRoundRoutine EXIT reason=" + reason + ", type=" + <>4__this.currentRoundType));
					return false;
				}
				IL_00d7:
				if (<>4__this.gameState == GameState.Running && Time.time < <notBefore>5__3)
				{
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				goto IL_00fa;
				IL_00fa:
				if (!<>4__this.CanFinishCurrentRoundNow(reason, out <blockReasonAfterDelay>5__1))
				{
					((BaseUnityPlugin)<>4__this).Logger.LogWarning((object)("[RoundGuard] Finish coroutine blocked after recheck. reason=" + reason + ", block=" + <blockReasonAfterDelay>5__1 + ", type=" + <>4__this.currentRoundType.ToString() + ", alive=" + <>4__this.alivePlayers.Count + ", players=" + <>4__this.roundPlayers.Count));
					<>4__this.finishRoundRoutineHandle = null;
					return false;
				}
				if (<>4__this.roundFinishInProgress)
				{
					return false;
				}
				if (<>4__this.gameState != GameState.Running && <>4__this.gameState != GameState.RoundEnding)
				{
					((BaseUnityPlugin)<>4__this).Logger.LogWarning((object)("[RoundEnd] FinishCurrentRoundRoutine rejected. reason=" + reason + ", state=" + <>4__this.gameState.ToString() + ", type=" + <>4__this.currentRoundType));
					<>4__this.finishRoundRoutineHandle = null;
					return false;
				}
				<>4__this.EndRoundStartFinishGuard("FinishCurrentRoundRoutine");
				<>4__this.roundFinishInProgress = true;
				<>4__this.roundEndPresentationComplete = false;
				<>4__this.gameState = GameState.RoundEnding;
				<>4__this.roundEndStartedAt = Time.time;
				<>4__this.currentRoundHardTimeoutAt = -1f;
				<>4__this.round6AnswerGaugeActive = false;
				((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)("[RoundEnd] FinishCurrentRoundRoutine ENTER reason=" + reason + ", type=" + <>4__this.currentRoundType.ToString() + ", alive=" + <>4__this.alivePlayers.Count + ", eliminated=" + <>4__this.eliminatedPlayers.Count));
				<>4__this.StopRoundRoutines();
				if (<>4__this.currentRoundType == RoundGameType.CloudDynamite)
				{
					<>4__this.BroadcastForceClearAllPlayerInventories("CloudDynamiteRoundEnd");
				}
				<>4__this.AddCurrentRoundScoresToTotal();
				<>4__this.SyncScoresToAll();
				<>4__this.RaiseSimpleEvent(106, <>4__this.BuildRoundEndEventData(reason), (ReceiverGroup)0);
				<>4__this.centerNoticeText = "";
				<>4__this.centerNoticeUntil = 0f;
				<>4__this.ShowRoundResultPanelForCurrentRound(4f);
				<>4__this.roundBetweenMovementLockUntil = Mathf.Max(<>4__this.roundBetweenMovementLockUntil, Time.time + 12.2f);
				<>2__current = (object)new WaitForSeconds(4f);
				<>1__state = 2;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <FlareReadyThenStartRoutine>d__858 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private object[] <data>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <FlareReadyThenStartRoutine>d__858(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<data>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.flareReadySequence++;
				if (<>4__this.flareReadySequence <= 0)
				{
					<>4__this.flareReadySequence = 1;
				}
				<>4__this.BuildFlareReadyActorList();
				<data>5__1 = <>4__this.BuildFlareReadyStartEventData();
				<>4__this.ApplyFlareReadyStartLocal(<data>5__1);
				<>4__this.RaiseMiniGameEvent(138, <data>5__1, (ReceiverGroup)0);
				((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)("[FlareReady] Ready phase started. seq=" + <>4__this.flareReadySequence + " players=" + <>4__this.flareReadyActorOrder.Count));
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<>4__this.flareReadyActive)
			{
				if (<>4__this.gameState != 0 || <>4__this.mainGameRoutine != null || <>4__this.singleRoundTestRunning)
				{
					((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)("[FlareReady] Ready phase cancelled by state. gameState=" + <>4__this.gameState));
					<>4__this.ApplyFlareReadyEndLocal(new object[2] { <>4__this.flareReadySequence, false });
					<>4__this.RaiseMiniGameEvent(140, new object[2] { <>4__this.flareReadySequence, false }, (ReceiverGroup)0);
					<>4__this.flareReadyRoutine = null;
					return false;
				}
				if (!<>4__this.AreAllFlareReadyActorsReady())
				{
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
			}
			((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)"[FlareReady] All players ready. Starting Party Games.");
			<>4__this.ApplyFlareReadyEndLocal(new object[2] { <>4__this.flareReadySequence, true });
			<>4__this.RaiseMiniGameEvent(140, new object[2] { <>4__this.flareReadySequence, true }, (ReceiverGroup)0);
			<>4__this.flareReadyRoutine = null;
			<>4__this.TryStartAutoGame();
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <ForceClearSkeletonForSeconds>d__927 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Character character;

		public float seconds;

		public Plugin <>4__this;

		private float <end>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <ForceClearSkeletonForSeconds>d__927(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<end>5__1 = Time.time + Mathf.Max(0.1f, seconds);
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if ((Object)(object)character != (Object)null && Time.time < <end>5__1)
			{
				try
				{
					if ((Object)(object)character.data != (Object)null)
					{
						character.data.SetSkeleton(false);
						character.data.dead = false;
						character.data.passedOut = false;
						character.data.fullyPassedOut = false;
					}
				}
				catch
				{
				}
				<>2__current = null;
				<>1__state = 1;
				return true;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <ForceShelfInstalledFinalFrameDelayed>d__1073 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject obj;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <ForceShelfInstalledFinalFrameDelayed>d__1073(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = null;
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.ForceShelfInstalledFinalFrame(obj);
				<>2__current = (object)new WaitForSeconds(0.05f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>4__this.ForceShelfInstalledFinalFrame(obj);
				<>2__current = (object)new WaitForSeconds(0.15f);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>4__this.ForceShelfInstalledFinalFrame(obj);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <FrisbeeMaintainRoutine>d__1355 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private List<Character>.Enumerator <>s__1;

		private Character <character>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <FrisbeeMaintainRoutine>d__1355(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>s__1 = default(List<Character>.Enumerator);
			<character>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<>4__this.gameState == GameState.Running)
			{
				<>s__1 = <>4__this.alivePlayers.GetEnumerator();
				try
				{
					while (<>s__1.MoveNext())
					{
						<character>5__2 = <>s__1.Current;
						if ((Object)(object)<character>5__2 != (Object)null)
						{
							<>4__this.ForceFrisbeeSlotOne(<character>5__2);
						}
						<character>5__2 = null;
					}
				}
				finally
				{
					((IDisposable)<>s__1).Dispose();
				}
				<>s__1 = default(List<Character>.Enumerator);
				<>2__current = (object)new WaitForSeconds(1f);
				<>1__state = 1;
				return true;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <GiveDynamiteAfterMissingDelayRoutine>d__1313 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Character character;

		public Plugin <>4__this;

		private float <delay>5__1;

		private float <timer>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <GiveDynamiteAfterMissingDelayRoutine>d__1313(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<delay>5__1 = Mathf.Max(0.1f, <>4__this.dynamiteMissingDelay.Value);
				if (<>4__this.IsLocalCharacter(character))
				{
					<>4__this.showDynamiteChargeBar = true;
					<>4__this.localDynamiteChargeActive = true;
					<>4__this.dynamiteChargeStartTime = Time.time;
					<>4__this.dynamiteChargeDuration = <delay>5__1;
				}
				<timer>5__2 = 0f;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<timer>5__2 < <delay>5__1)
			{
				if ((Object)(object)character == (Object)null || <>4__this.gameState != GameState.Running || !<>4__this.alivePlayers.Contains(character))
				{
					if (<>4__this.IsLocalCharacter(character))
					{
						<>4__this.showDynamiteChargeBar = false;
						<>4__this.localDynamiteChargeActive = false;
					}
					return false;
				}
				if (<>4__this.HasDynamiteInInventory(character))
				{
					if (<>4__this.IsLocalCharacter(character))
					{
						<>4__this.showDynamiteChargeBar = false;
						<>4__this.localDynamiteChargeActive = false;
					}
					<>4__this.dynamiteDelayRoutines.Remove(character);
					return false;
				}
				<timer>5__2 += Time.deltaTime;
				<>2__current = null;
				<>1__state = 1;
				return true;
			}
			if (<>4__this.IsLocalCharacter(character))
			{
				<>4__this.showDynamiteChargeBar = false;
				<>4__this.localDynamiteChargeActive = false;
			}
			if ((Object)(object)character == (Object)null || <>4__this.gameState != GameState.Running || !<>4__this.alivePlayers.Contains(character))
			{
				return false;
			}
			if (!<>4__this.HasDynamiteInInventory(character))
			{
				<>4__this.GiveLitDynamite(character);
			}
			<>4__this.dynamiteDelayRoutines.Remove(character);
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <LogTeleportPositionDelayedRoutine>d__1303 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Character character;

		public string source;

		public Vector3 target;

		public float delay;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <LogTeleportPositionDelayedRoutine>d__1303(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, delay));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.LogTeleportPositionNow(character, source + "+" + delay.ToString("0.00") + "s", target);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <LowerTileObjectRoutine>d__1231 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject obj;

		public float targetY;

		public float duration;

		public Plugin <>4__this;

		private Vector3 <start>5__1;

		private Vector3 <end>5__2;

		private float <t>5__3;

		private float <a>5__4;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <LowerTileObjectRoutine>d__1231(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if ((Object)(object)obj == (Object)null)
				{
					return false;
				}
				<start>5__1 = obj.transform.position;
				<end>5__2 = new Vector3(<start>5__1.x, targetY, <start>5__1.z);
				<t>5__3 = 0f;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if ((Object)(object)obj != (Object)null && <t>5__3 < duration)
			{
				<t>5__3 += Time.deltaTime;
				<a>5__4 = Mathf.Clamp01(<t>5__3 / duration);
				<>4__this.SetTileObjectWorldPosition(obj, Vector3.Lerp(<start>5__1, <end>5__2, <a>5__4));
				<>2__current = null;
				<>1__state = 1;
				return true;
			}
			if ((Object)(object)obj != (Object)null)
			{
				<>4__this.SetTileObjectWorldPosition(obj, <end>5__2);
				<>4__this.activeTileLowerRoutines.Remove(obj);
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <PlayClientRoundEndPresentationRoutine>d__1048 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <PlayClientRoundEndPresentationRoutine>d__1048(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Expected O, but got Unknown
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.ShowRoundResultPanelForCurrentRound(4f);
				<>4__this.roundBetweenMovementLockUntil = Mathf.Max(<>4__this.roundBetweenMovementLockUntil, Time.time + 12.2f);
				<>2__current = (object)new WaitForSeconds(4f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.roundResultPanelActive = false;
				<>4__this.roundResultPanelForcedLines = null;
				<>4__this.roundResultPanelForcedTitle = "";
				<>2__current = (object)new WaitForSeconds(0.5f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.PlayLocalRoundEndEmoteSequenceRoutine());
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>4__this.ShowAutoScoreboardAfterRoundEnd();
				<>2__current = (object)new WaitForSeconds(5f);
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.roundEndEmoteRoutine = null;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <PlayLocalRoundEndEmoteDelayed>d__1049 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <PlayLocalRoundEndEmoteDelayed>d__1049(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.PlayClientRoundEndPresentationRoutine());
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <PlayLocalRoundEndEmoteSequenceRoutine>d__1050 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private string <animName>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <PlayLocalRoundEndEmoteSequenceRoutine>d__1050(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<animName>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Expected O, but got Unknown
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<animName>5__1 = <>4__this.GetLocalRoundEndEmoteAnimationFromScores();
				if (!string.IsNullOrEmpty(<animName>5__1))
				{
					<>4__this.PlayLocalRoundEndEmote(<animName>5__1);
					<>4__this.StartRoundEndDedicatedOverlayCameraForSeconds(5f);
					<>2__current = (object)new WaitForSeconds(2f);
					<>1__state = 1;
					return true;
				}
				break;
			case 1:
				<>1__state = -1;
				<>4__this.PlayLocalRoundEndEmote(<animName>5__1);
				<>2__current = (object)new WaitForSeconds(1f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				break;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <PodiumTeleportComparisonTestRoutine>d__1266 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool useAssisted;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <PodiumTeleportComparisonTestRoutine>d__1266(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <PodiumTeleportStabilizeRoutine>d__1305 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Character character;

		public Vector3 target;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <PodiumTeleportStabilizeRoutine>d__1305(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RemoveEffectObjectsRoutine>d__1396 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject root;

		public Plugin <>4__this;

		private float <duration>5__1;

		private float <timer>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RemoveEffectObjectsRoutine>d__1396(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if ((Object)(object)root == (Object)null)
				{
					return false;
				}
				<duration>5__1 = Mathf.Clamp(<>4__this.effectCleanupDuration.Value, 0.1f, 5f);
				<timer>5__2 = 0f;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<timer>5__2 < <duration>5__1)
			{
				if ((Object)(object)root == (Object)null)
				{
					return false;
				}
				<>4__this.RemoveEffectObjectsNow(root);
				<timer>5__2 += 0.1f;
				<>2__current = (object)new WaitForSeconds(0.1f);
				<>1__state = 1;
				return true;
			}
			if ((Object)(object)root != (Object)null)
			{
				<>4__this.RemoveEffectObjectsNow(root);
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RescueHookMaintainRoutine>d__1346 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private List<Character>.Enumerator <>s__1;

		private Character <character>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RescueHookMaintainRoutine>d__1346(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>s__1 = default(List<Character>.Enumerator);
			<character>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<>4__this.gameState == GameState.Running)
			{
				<>s__1 = <>4__this.alivePlayers.GetEnumerator();
				try
				{
					while (<>s__1.MoveNext())
					{
						<character>5__2 = <>s__1.Current;
						if ((Object)(object)<character>5__2 != (Object)null)
						{
							<>4__this.ForceRescueHookToPlayer(<character>5__2);
						}
						<character>5__2 = null;
					}
				}
				finally
				{
					((IDisposable)<>s__1).Dispose();
				}
				<>s__1 = default(List<Character>.Enumerator);
				<>4__this.ConfigureAllRescueHooksForArenaMode();
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0.1f, <>4__this.rescueHookMaintainInterval.Value));
				<>1__state = 1;
				return true;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round1OuterCloudCollapseRoutine>d__1234 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		private float <startDelay>5__1;

		private float <startTime>5__2;

		private List<ArenaTile> <rowTiles>5__3;

		private float <warningSeconds>5__4;

		private int <i>5__5;

		private ArenaTile <tile>5__6;

		private Vector3 <p>5__7;

		private int <i>5__8;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round1OuterCloudCollapseRoutine>d__1234(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<rowTiles>5__3 = null;
			<tile>5__6 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Expected O, but got Unknown
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.standingTileDeleteStarted = false;
				<startDelay>5__1 = Mathf.Max(0f, (<>4__this.round1EdgeCollapseStartDelay != null) ? <>4__this.round1EdgeCollapseStartDelay.Value : 3f);
				<startTime>5__2 = Time.time + <startDelay>5__1;
				goto IL_00a2;
			case 1:
				<>1__state = -1;
				goto IL_00a2;
			case 2:
				<>1__state = -1;
				break;
			case 3:
				{
					<>1__state = -1;
					<i>5__8 = 0;
					while (<i>5__8 < <rowTiles>5__3.Count)
					{
						<>4__this.DeleteRound1MarkedTileNow(<rowTiles>5__3[<i>5__8]);
						<i>5__8++;
					}
					<rowTiles>5__3 = null;
					break;
				}
				IL_00a2:
				if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.CloudDynamite && Time.time < <startTime>5__2)
				{
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				<>4__this.standingTileDeleteStarted = true;
				break;
			}
			if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.CloudDynamite)
			{
				<>4__this.ClearDeadTiles();
				if (<>4__this.activeTiles.Count != 0)
				{
					<rowTiles>5__3 = <>4__this.PickCurrentOuterCloudTileRowForCollapse();
					if (<rowTiles>5__3 == null || <rowTiles>5__3.Count == 0)
					{
						<>2__current = null;
						<>1__state = 2;
						return true;
					}
					<warningSeconds>5__4 = <>4__this.GetRound1EdgeCollapseWarningSeconds();
					<i>5__5 = 0;
					while (<i>5__5 < <rowTiles>5__3.Count)
					{
						<tile>5__6 = <rowTiles>5__3[<i>5__5];
						if (<tile>5__6 != null && !((Object)(object)<tile>5__6.obj == (Object)null) && !<>4__this.pendingStandingTileDeletes.Contains(<tile>5__6))
						{
							<>4__this.pendingStandingTileDeletes.Add(<tile>5__6);
							<>4__this.StartCloudWarningTintToTileLocal(<tile>5__6, <warningSeconds>5__4);
							if (PhotonNetwork.InRoom && <>4__this.IsHostOrOffline())
							{
								<p>5__7 = <tile>5__6.position;
								<>4__this.RaiseSimpleEvent(112, new object[4] { <p>5__7.x, <p>5__7.y, <p>5__7.z, <warningSeconds>5__4 }, (ReceiverGroup)0);
							}
							<tile>5__6 = null;
						}
						<i>5__5++;
					}
					<>2__current = (object)new WaitForSeconds(Mathf.Max(0f, <warningSeconds>5__4));
					<>1__state = 3;
					return true;
				}
			}
			<>4__this.standingTileDeleteStarted = false;
			<>4__this.standingTileDeleteRoutine = null;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round4CoconutSpawnRoutine>d__1322 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round4CoconutSpawnRoutine>d__1322(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0.1f, <>4__this.coconutSpawnInterval.Value));
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				break;
			case 2:
				<>1__state = -1;
				break;
			}
			if (<>4__this.gameState == GameState.Running)
			{
				<>4__this.SpawnCoconutOnRandomExistingCloudTile();
				<>2__current = (object)new WaitForSeconds(Mathf.Max(0.1f, <>4__this.coconutSpawnInterval.Value));
				<>1__state = 2;
				return true;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round5FallResetRoutine>d__1327 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round5FallResetRoutine>d__1327(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round5PoppyTransferMonitorRoutine>d__1329 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round5PoppyTransferMonitorRoutine>d__1329(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round5ScoreRoutine>d__1326 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round5ScoreRoutine>d__1326(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Round9WrongThenNextTurnRoutine>d__1155 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Plugin <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Round9WrongThenNextTurnRoutine>d__1155(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.round9WrongRevealUntil = Time.time + 0.7f;
				<>2__current = (object)new WaitForSeconds(0.7f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.round9FirstPickIndex = -1;
				<>4__this.round9TempRevealIndex = -1;
				<>4__this.round9WrongRevealUntil = -1f;
				<>4__this.round9WrongRevealRoutine = null;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RoundReadyAndTeleportRoutine>d__909 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public RoundGameType roundType;

		public Plugin <>4__this;

		private float <teleportWaitStart>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RoundReadyAndTeleportRoutine>d__909(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Expected O, but got Unknown
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<teleportWaitStart>5__1 = Time.time;
				goto IL_005b;
			case 1:
				<>1__state = -1;
				goto IL_005b;
			case 2:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("Start", 0.8f, new Color(1f, 0.68f, 0.38f, 1f), thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.8f);
				<>1__state = 3;
				return true;
			case 3:
				{
					<>1__state = -1;
					return false;
				}
				IL_005b:
				if (<>4__this.activeTiles.Count == 0 && Time.time < <teleportWaitStart>5__1 + 2f)
				{
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				<>4__this.TeleportRoundPlayersToSafeArenaTiles(roundType);
				<>4__this.gameState = GameState.RoundStarting;
				<>4__this.RaiseCenterNoticeToAll("Ready", 3f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(3f);
				<>1__state = 2;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunArrowRoundRoutine>d__975 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private string <sequence>5__1;

		private float <limit>5__2;

		private float <allSubmittedAt>5__3;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunArrowRoundRoutine>d__975(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<sequence>5__1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.arrowRoundSubmissions.Clear();
				<sequence>5__1 = <>4__this.BuildRound3GridTargetSequence();
				<>4__this.BeginArrowRoundLocal(<sequence>5__1);
				<>4__this.RaiseMiniGameEvent(103, new object[1] { <sequence>5__1 }, (ReceiverGroup)0);
				<limit>5__2 = Mathf.Max(3f, <>4__this.arrowRoundTimeLimit.Value);
				<allSubmittedAt>5__3 = -1f;
				goto IL_019c;
			case 1:
				<>1__state = -1;
				goto IL_019c;
			case 2:
				{
					<>1__state = -1;
					return false;
				}
				IL_019c:
				if (<>4__this.gameState == GameState.Running && Time.time < <>4__this.arrowRoundStartLocalTime + <limit>5__2 && (!testMode || <>4__this.IsRoundToggleStillOn(<>4__this.currentRoundType)) && (testMode || <>4__this.gameStart.Value))
				{
					if (<>4__this.arrowRoundSubmissions.Count >= Mathf.Max(1, <>4__this.roundPlayers.Count))
					{
						if (<allSubmittedAt>5__3 < 0f)
						{
							<allSubmittedAt>5__3 = Time.time;
						}
						if (Time.time >= <allSubmittedAt>5__3 + 1.25f)
						{
							goto IL_01cf;
						}
					}
					else
					{
						<allSubmittedAt>5__3 = -1f;
					}
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				goto IL_01cf;
				IL_01cf:
				<>4__this.EndArrowRoundLocal();
				<>4__this.AwardArrowRoundScores();
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("GRID_STAR_FINISH"));
				<>1__state = 2;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunRhythmRoundRoutine>d__966 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private string <sequence>5__1;

		private float[] <noteOffsets>5__2;

		private float <start>5__3;

		private float <minimumLimit>5__4;

		private float <limit>5__5;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunRhythmRoundRoutine>d__966(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<sequence>5__1 = null;
			<noteOffsets>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.rhythmRoundSubmissions.Clear();
				<>4__this.rhythmRoundProgressByActor.Clear();
				<>4__this.rhythmCenterResultPanelActive = false;
				<>4__this.rhythmCenterResultPanelUntil = -1f;
				<sequence>5__1 = <>4__this.BuildRandomArrowSequence(30);
				<noteOffsets>5__2 = <>4__this.BuildRandomRhythmNoteTargetOffsets(<sequence>5__1.Length);
				<>4__this.BeginRhythmRoundLocal(<sequence>5__1, <noteOffsets>5__2);
				<>4__this.RaiseMiniGameEvent(110, new object[2] { <sequence>5__1, <noteOffsets>5__2 }, (ReceiverGroup)0);
				<>4__this.ShowCenterNotice("WASD 리듬", 1.2f, Color.white, thickRounded: true);
				<start>5__3 = Time.time;
				<minimumLimit>5__4 = Mathf.Max(4f, <>4__this.rhythmNoteTravelSeconds.Value + <>4__this.GetRhythmLastNoteTargetOffset() + 2f);
				<limit>5__5 = Mathf.Max(<minimumLimit>5__4, <>4__this.rhythmRoundTimeLimit.Value);
				goto IL_01f7;
			case 1:
				<>1__state = -1;
				goto IL_01f7;
			case 2:
				{
					<>1__state = -1;
					return false;
				}
				IL_01f7:
				if (<>4__this.gameState == GameState.Running && Time.time - <start>5__3 < <limit>5__5 && (!testMode || <>4__this.IsRoundToggleStillOn(<>4__this.currentRoundType)) && (testMode || <>4__this.gameStart.Value) && <>4__this.rhythmRoundSubmissions.Count < Mathf.Max(1, <>4__this.roundPlayers.Count))
				{
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				<>4__this.SubmitRhythmResultIfNeeded();
				<>4__this.EndRhythmRoundLocal();
				<>4__this.AwardRhythmRoundScores();
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("RHYTHM_FINISH"));
				<>1__state = 2;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunRound10HalliGalliRoutine>d__1113 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private float <waitStart>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunRound10HalliGalliRoutine>d__1113(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Expected O, but got Unknown
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Expected O, but got Unknown
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Expected O, but got Unknown
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Expected O, but got Unknown
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01da: Expected O, but got Unknown
			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.EndRound10HalliGalliLocal();
				<>4__this.round10ScoresByActor.Clear();
				<>4__this.currentRoundScores.Clear();
				<>4__this.RefreshActorNamesFromCharacters();
				<>4__this.RaiseCenterNoticeToAll("할리갈리", 1.2f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(1.2f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("3", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("2", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("1", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("시작", 0.45f, new Color(1f, 0.68f, 0.38f, 1f), thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.05f);
				<>1__state = 5;
				return true;
			case 5:
				<>1__state = -1;
				if (<>4__this.IsHostOrOffline())
				{
					<>4__this.BeginRound10HalliGalliAsHost();
				}
				<waitStart>5__1 = Time.time;
				goto IL_0229;
			case 6:
				<>1__state = -1;
				goto IL_0229;
			case 7:
				<>1__state = -1;
				goto IL_0332;
			case 8:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("HALLI_GALLI_FINISH"));
				<>1__state = 9;
				return true;
			case 9:
				{
					<>1__state = -1;
					return false;
				}
				IL_0229:
				if (!<>4__this.round10HalliActive && Time.time < <waitStart>5__1 + 3f)
				{
					<>2__current = null;
					<>1__state = 6;
					return true;
				}
				goto IL_0332;
				IL_0332:
				if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.HalliGalli && (!testMode || <>4__this.IsRoundToggleStillOn(RoundGameType.HalliGalli)) && (testMode || <>4__this.gameStart.Value))
				{
					if (<>4__this.IsHostOrOffline() && <>4__this.round10HalliActive && !<>4__this.round10BellLocked && Time.time >= <>4__this.round10NextDrawTime && <>4__this.round10SuccessCount < 10)
					{
						<>4__this.DrawNextRound10CardAsHost();
					}
					if (<>4__this.round10SuccessCount < 10)
					{
						<>2__current = null;
						<>1__state = 7;
						return true;
					}
				}
				if (<>4__this.round10SuccessCount >= 10)
				{
					<>4__this.round10Completed = true;
				}
				<>4__this.AwardRound10RankScoresFromSuccessCounts();
				<>4__this.SyncScoresToAll();
				<>4__this.EndRound10HalliGalliLocal(resetCompletedFlag: false);
				<>2__current = (object)new WaitForSeconds(0.1f);
				<>1__state = 8;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunRound11DinoRunRoutine>d__1089 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private float[] <obstacleTimes>5__1;

		private int[] <obstacleTypes>5__2;

		private int <nonce>5__3;

		private float <travel>5__4;

		private float <limit>5__5;

		private float <start>5__6;

		private float <earliestFinishTime>5__7;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunRound11DinoRunRoutine>d__1089(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<obstacleTimes>5__1 = null;
			<obstacleTypes>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.LogRound11Debug("RunRound11DinoRunRoutine ENTER testMode=" + testMode + ", " + <>4__this.GetRound11StateString());
				<>4__this.EndRound11DinoLocal();
				<>4__this.round11DinoPassedByActor.Clear();
				<>4__this.round11DinoFailedByActor.Clear();
				<>4__this.round11DinoPenaltyByActor.Clear();
				<>4__this.round11DinoScoreByActor.Clear();
				<>4__this.round11DinoFinalSubmittedActors.Clear();
				<>4__this.currentRoundScores.Clear();
				<>4__this.BuildRound11DinoObstaclePattern(out <obstacleTimes>5__1, out <obstacleTypes>5__2);
				<nonce>5__3 = Random.Range(100000, 999999);
				<>4__this.BeginRound11DinoLocal(<obstacleTimes>5__1, <obstacleTypes>5__2, <nonce>5__3);
				((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)("Round 11 DinoRun started. Obstacles: " + ((<obstacleTimes>5__1 != null) ? <obstacleTimes>5__1.Length.ToString() : "0") + ", nonce: " + <nonce>5__3));
				<>4__this.LogRound11Debug("After BeginRound11DinoLocal " + <>4__this.GetRound11StateString());
				<>4__this.RaiseMiniGameEvent(134, new object[3] { <nonce>5__3, <obstacleTimes>5__1, <obstacleTypes>5__2 }, (ReceiverGroup)0);
				<travel>5__4 = <>4__this.GetRound11ObstacleTravelSeconds();
				<limit>5__5 = 3f + ((<obstacleTimes>5__1 != null && <obstacleTimes>5__1.Length != 0) ? <obstacleTimes>5__1[<obstacleTimes>5__1.Length - 1] : 28f) + <travel>5__4 + 2f;
				<start>5__6 = Time.unscaledTime;
				<earliestFinishTime>5__7 = <start>5__6 + 3f + Mathf.Max(4f, <travel>5__4 + 2.6f);
				goto IL_037a;
			case 1:
				<>1__state = -1;
				goto IL_037a;
			case 2:
				<>1__state = -1;
				goto IL_037a;
			case 3:
				{
					<>1__state = -1;
					return false;
				}
				IL_037a:
				if (<>4__this.round11DinoActive && <>4__this.currentRoundType == RoundGameType.DinoRun && Time.unscaledTime - <start>5__6 < <limit>5__5)
				{
					if (<>4__this.gameState != GameState.Running)
					{
						<>4__this.LogRound11Debug("RunLoop corrected gameState from " + <>4__this.gameState.ToString() + " to Running. " + <>4__this.GetRound11StateString());
						<>4__this.gameState = GameState.Running;
					}
					if (testMode || <>4__this.gameStart.Value)
					{
						if (<>4__this.HaveAllRound11DinoParticipantsSubmitted())
						{
							if (<>4__this.round11DinoGlobalEndAllowedTime > 0f && Time.unscaledTime < <>4__this.round11DinoGlobalEndAllowedTime)
							{
								<>2__current = null;
								<>1__state = 1;
								return true;
							}
							if (Time.unscaledTime >= <earliestFinishTime>5__7 || <>4__this.round11DinoGlobalEndAllowedTime > 0f)
							{
								goto IL_03b6;
							}
						}
						<>2__current = null;
						<>1__state = 2;
						return true;
					}
				}
				goto IL_03b6;
				IL_03b6:
				<>4__this.LogRound11Debug("Loop EXIT before final submit. elapsed=" + (Time.unscaledTime - <start>5__6).ToString("0.00") + ", limit=" + <limit>5__5.ToString("0.00") + ", " + <>4__this.GetRound11StateString());
				if (!<>4__this.round11DinoActive || <>4__this.currentRoundType != RoundGameType.DinoRun)
				{
					((BaseUnityPlugin)<>4__this).Logger.LogWarning((object)("Round 11 DinoRun was interrupted before normal finish. State: " + <>4__this.gameState.ToString() + ", Type: " + <>4__this.currentRoundType));
					<>4__this.round11DinoAllowLocalEnd = true;
					<>4__this.EndRound11DinoLocal();
					return false;
				}
				<>4__this.SubmitRound11DinoResultIfNeeded(failed: false);
				<>4__this.AwardRound11DinoScores();
				<>4__this.round11DinoAllowLocalEnd = true;
				<>4__this.EndRound11DinoLocal();
				<>4__this.SyncScoresToAll();
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("DINO_RUN_FINISH"));
				<>1__state = 3;
				return true;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunRound6ColorSurvivalRoutine>d__1194 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private int <cycle>5__1;

		private Round6CloudColor <targetColor>5__2;

		private float <answerWindowSeconds>5__3;

		private HashSet<int> <awardedActorsThisCycle>5__4;

		private float <endTime>5__5;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunRound6ColorSurvivalRoutine>d__1194(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<awardedActorsThisCycle>5__4 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_0182: Expected O, but got Unknown
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Expected O, but got Unknown
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fa: Expected O, but got Unknown
			//IL_0222: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Expected O, but got Unknown
			//IL_036d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Expected O, but got Unknown
			//IL_0317: Unknown result type (might be due to invalid IL or missing references)
			//IL_0321: Expected O, but got Unknown
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.CaptureRound6OriginalStateForAllTiles();
				<cycle>5__1 = 0;
				goto IL_03a1;
			case 1:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("3", 0.85f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.85f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("2", 0.85f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.85f);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("1", 0.85f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.85f);
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.AssignRound6RandomCloudColorsAndSync(<targetColor>5__2);
				<>2__current = (object)new WaitForSeconds(0.1f);
				<>1__state = 5;
				return true;
			case 5:
				<>1__state = -1;
				<answerWindowSeconds>5__3 = <>4__this.GetRound6AnswerWindowSeconds();
				<>4__this.StartRound6AnswerGaugeToAll(<answerWindowSeconds>5__3, <targetColor>5__2);
				<awardedActorsThisCycle>5__4 = new HashSet<int>();
				<endTime>5__5 = Time.time + <answerWindowSeconds>5__3;
				goto IL_029d;
			case 6:
				<>1__state = -1;
				goto IL_029d;
			case 7:
				<>1__state = -1;
				if (<>4__this.gameState != GameState.Running || <>4__this.currentRoundType != RoundGameType.ColorCloudSurvival)
				{
					return false;
				}
				<>4__this.RestoreRound6AllTilesAndSync();
				<>2__current = (object)new WaitForSeconds(0.65f);
				<>1__state = 8;
				return true;
			case 8:
				<>1__state = -1;
				<awardedActorsThisCycle>5__4 = null;
				<cycle>5__1++;
				goto IL_03a1;
			case 9:
				{
					<>1__state = -1;
					break;
				}
				IL_029d:
				if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.ColorCloudSurvival && Time.time < <endTime>5__5)
				{
					<>2__current = null;
					<>1__state = 6;
					return true;
				}
				<>4__this.AwardRound6PlayersNearestTargetColorAtFinalMoment(<targetColor>5__2, <awardedActorsThisCycle>5__4);
				<>4__this.round6AnswerGaugeActive = false;
				<>4__this.SyncScoresToAll();
				<>4__this.ShowRound6PersonalResultNoticeToAll(<awardedActorsThisCycle>5__4);
				<>2__current = (object)new WaitForSeconds(0.85f);
				<>1__state = 7;
				return true;
				IL_03a1:
				if (<cycle>5__1 < 4)
				{
					if (<>4__this.gameState != GameState.Running || <>4__this.currentRoundType != RoundGameType.ColorCloudSurvival)
					{
						return false;
					}
					if (testMode)
					{
						if (!<>4__this.IsRoundToggleStillOn(RoundGameType.ColorCloudSurvival))
						{
							return false;
						}
					}
					else if (!<>4__this.gameStart.Value)
					{
						return false;
					}
					<targetColor>5__2 = <>4__this.PickRandomRound6TargetColor();
					<>4__this.RaiseCenterNoticeToAll(<>4__this.GetRound6ColorName(<targetColor>5__2), 1.2f, <>4__this.GetRound6ColorValue(<targetColor>5__2), thickRounded: true);
					<>2__current = (object)new WaitForSeconds(1.2f);
					<>1__state = 1;
					return true;
				}
				if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.ColorCloudSurvival)
				{
					<>4__this.LockRound6ScoresAtEnd();
					<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("ROUND6_ALL_CYCLES_DONE"));
					<>1__state = 9;
					return true;
				}
				break;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <RunRound7ButtonMashRoutine>d__1179 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public bool testMode;

		public Plugin <>4__this;

		private float <start>5__1;

		private float <limit>5__2;

		private float <allFinishedAt>5__3;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <RunRound7ButtonMashRoutine>d__1179(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Expected O, but got Unknown
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Expected O, but got Unknown
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Expected O, but got Unknown
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Expected O, but got Unknown
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0224: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.round7ProgressByActor.Clear();
				<>4__this.round7FinishTimes.Clear();
				<>4__this.round7RankByActor.Clear();
				<>4__this.round8PositionsByActor.Clear();
				<>4__this.round8StarsByActor.Clear();
				<>4__this.round8ParalyzedUntilByActor.Clear();
				<>4__this.ClearRound8ElectricCells();
				<>4__this.round8StarsEatenTotal = 0;
				<>4__this.EndRound7ButtonMashLocal();
				<>4__this.RefreshActorNamesFromCharacters();
				<>4__this.RaiseCenterNoticeToAll("달리기", 1.2f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(1.2f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("3", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("2", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 3;
				return true;
			case 3:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("1", 0.75f, Color.white, thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.75f);
				<>1__state = 4;
				return true;
			case 4:
				<>1__state = -1;
				<>4__this.RaiseCenterNoticeToAll("시작", 0.45f, new Color(1f, 0.68f, 0.38f, 1f), thickRounded: true);
				<>2__current = (object)new WaitForSeconds(0.05f);
				<>1__state = 5;
				return true;
			case 5:
				<>1__state = -1;
				<>4__this.BeginRound7ButtonMashLocal();
				<>4__this.RaiseMiniGameEvent(119, Array.Empty<object>(), (ReceiverGroup)0);
				<start>5__1 = Time.time;
				<limit>5__2 = Mathf.Max(5f, (<>4__this.round7TimeLimitSeconds != null) ? <>4__this.round7TimeLimitSeconds.Value : 20f);
				<allFinishedAt>5__3 = -1f;
				goto IL_0388;
			case 6:
				<>1__state = -1;
				goto IL_0388;
			case 7:
				{
					<>1__state = -1;
					return false;
				}
				IL_0388:
				if (<>4__this.gameState == GameState.Running && <>4__this.currentRoundType == RoundGameType.ButtonMashRace && (!testMode || <>4__this.IsRoundToggleStillOn(RoundGameType.ButtonMashRace)) && (testMode || <>4__this.gameStart.Value))
				{
					if (<allFinishedAt>5__3 < 0f && <>4__this.HaveAllRound7ParticipantsFinished())
					{
						<allFinishedAt>5__3 = Time.time;
					}
					if (<allFinishedAt>5__3 >= 0f)
					{
						if (!(Time.time >= <allFinishedAt>5__3 + 5f))
						{
							goto IL_0370;
						}
					}
					else if (!(Time.time - <start>5__1 >= <limit>5__2))
					{
						goto IL_0370;
					}
				}
				<>4__this.EndRound7ButtonMashLocal();
				<>4__this.AwardRound7ButtonMashScores();
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.FinishCurrentRoundRoutine("BUTTON_MASH_FINISH"));
				<>1__state = 7;
				return true;
				IL_0370:
				<>2__curre