Decompiled source of TheIncident v1.0.0

TheIncident.dll

Decompiled 11 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using FishNet.Connection;
using FishNet.Object;
using MelonLoader;
using ScheduleOne.AvatarFramework.Equipping;
using ScheduleOne.DevUtilities;
using ScheduleOne.GameTime;
using ScheduleOne.NPCs;
using ScheduleOne.NPCs.Behaviour;
using ScheduleOne.PlayerScripts;
using ScheduleOne.Police;
using TheIncident;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(global::TheIncident.TheIncident), "TheIncident", "1.0", "XOWithSauce", null)]
[assembly: MelonColor]
[assembly: MelonOptionalDependencies(new string[] { "FishNet.Runtime" })]
[assembly: MelonGame(null, null)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyCompany("TheIncident")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("TheIncident")]
[assembly: AssemblyTitle("TheIncident")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace TheIncident;

public static class BuildInfo
{
	public const string Name = "TheIncident";

	public const string Description = "A deadly disease hits the Hyland Point";

	public const string Author = "XOWithSauce";

	public const string Company = null;

	public const string Version = "1.0";

	public const string DownloadLink = null;
}
public class TheIncident : MelonMod
{
	[CompilerGenerated]
	private sealed class <IncidentBegin>d__11 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public TheIncident <>4__this;

		private int <startTime>5__1;

		private EDay <currentDay>5__2;

		private int <currentTime>5__3;

		private Player[] <players>5__4;

		private PoliceOfficer[] <offcs>5__5;

		private List<NPC> <nearbyNPCs>5__6;

		private PoliceOfficer[] <>s__7;

		private int <>s__8;

		private PoliceOfficer <offc>5__9;

		private Player <randomPlayer>5__10;

		private NPC[] <>s__11;

		private int <>s__12;

		private NPC <npc>5__13;

		private float <distanceToP>5__14;

		private PoliceOfficer <offc>5__15;

		private List<NPC>.Enumerator <>s__16;

		private NPC <npc>5__17;

		private Vector3 <pos>5__18;

		private Vector3 <pos>5__19;

		private int <roll>5__20;

		private int <i>5__21;

		private NPC[] <>s__22;

		private int <>s__23;

		private NPC <npc>5__24;

		private float <xInitOffset>5__25;

		private float <zInitOffset>5__26;

		private Vector3 <targetWarpPosition>5__27;

		private Vector3 <warpInit>5__28;

		private NPC[] <>s__29;

		private int <>s__30;

		private NPC <npc>5__31;

		private PoliceOfficer[] <>s__32;

		private int <>s__33;

		private PoliceOfficer <offc>5__34;

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

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

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

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			int num = <>1__state;
			if (num == -3 || (uint)(num - 7) <= 4u)
			{
				try
				{
				}
				finally
				{
					<>m__Finally1();
				}
			}
			<players>5__4 = null;
			<offcs>5__5 = null;
			<nearbyNPCs>5__6 = null;
			<>s__7 = null;
			<offc>5__9 = null;
			<randomPlayer>5__10 = null;
			<>s__11 = null;
			<npc>5__13 = null;
			<offc>5__15 = null;
			<>s__16 = default(List<NPC>.Enumerator);
			<npc>5__17 = null;
			<>s__22 = null;
			<npc>5__24 = null;
			<>s__29 = null;
			<npc>5__31 = null;
			<>s__32 = null;
			<offc>5__34 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_019e: Expected O, but got Unknown
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0403: Unknown result type (might be due to invalid IL or missing references)
			//IL_0615: Unknown result type (might be due to invalid IL or missing references)
			//IL_061f: Expected O, but got Unknown
			//IL_0691: Unknown result type (might be due to invalid IL or missing references)
			//IL_069b: Expected O, but got Unknown
			//IL_090e: Unknown result type (might be due to invalid IL or missing references)
			//IL_091e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d59: Expected O, but got Unknown
			//IL_0731: Unknown result type (might be due to invalid IL or missing references)
			//IL_073b: Expected O, but got Unknown
			//IL_0702: Unknown result type (might be due to invalid IL or missing references)
			//IL_071f: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d6: Expected O, but got Unknown
			//IL_079d: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Expected O, but got Unknown
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Expected O, but got Unknown
			//IL_03c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: Expected O, but got Unknown
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a0: Expected O, but got Unknown
			//IL_0c2f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c39: Expected O, but got Unknown
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Expected O, but got Unknown
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_033a: Expected O, but got Unknown
			//IL_08e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ed: Expected O, but got Unknown
			//IL_0aec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af6: Expected O, but got Unknown
			//IL_09df: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1d: Expected O, but got Unknown
			try
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<startTime>5__1 = 1855;
					goto IL_00c4;
				case 1:
					<>1__state = -1;
					<currentDay>5__2 = NetworkSingleton<TimeManager>.Instance.CurrentDay;
					<currentTime>5__3 = NetworkSingleton<TimeManager>.Instance.CurrentTime;
					if (((object)(EDay)(ref <currentDay>5__2)).ToString().Contains("Sunday") && <startTime>5__1 < <currentTime>5__3)
					{
						MelonCoroutines.Start(<>4__this.LightsRed());
						<players>5__4 = Object.FindObjectsOfType<Player>(true);
						<>2__current = (object)new WaitForSeconds(0.5f);
						<>1__state = 2;
						return true;
					}
					goto IL_00c4;
				case 2:
					<>1__state = -1;
					<offcs>5__5 = Object.FindObjectsOfType<PoliceOfficer>(true);
					<>2__current = (object)new WaitForSeconds(0.5f);
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<>s__7 = <offcs>5__5;
					<>s__8 = 0;
					goto IL_02f3;
				case 4:
					<>1__state = -1;
					if ((Object)(object)<>4__this.gunPref == (Object)null && (Object)(object)<offc>5__9.GunPrefab != (Object)null)
					{
						<>4__this.gunPref = <offc>5__9.GunPrefab;
					}
					if ((Object)(object)<>4__this.taser == (Object)null && (Object)(object)<offc>5__9.TaserPrefab != (Object)null)
					{
						<>4__this.taser = <offc>5__9.TaserPrefab;
					}
					<offc>5__9.GunPrefab = null;
					<offc>5__9.TaserPrefab = null;
					((NPC)<offc>5__9).Health.MaxHealth = 300f;
					((NPC)<offc>5__9).Health.Revive();
					<offc>5__9.ProxCircle.SetRadius(0.01f);
					<offc>5__9 = null;
					<>s__8++;
					goto IL_02f3;
				case 5:
					<>1__state = -1;
					<currentDay>5__2 = NetworkSingleton<TimeManager>.Instance.CurrentDay;
					<currentTime>5__3 = NetworkSingleton<TimeManager>.Instance.CurrentTime;
					<randomPlayer>5__10 = <players>5__4[Random.Range(0, <players>5__4.Length)];
					<>s__11 = <>4__this.npcs;
					<>s__12 = 0;
					goto IL_051d;
				case 6:
				{
					<>1__state = -1;
					<distanceToP>5__14 = Vector3.Distance(((Component)<npc>5__13).transform.position, ((Component)<randomPlayer>5__10).transform.position);
					if (<distanceToP>5__14 < 30f)
					{
						<nearbyNPCs>5__6.Add(<npc>5__13);
						<npc>5__13.Avatar.Effects.SetZombified(true, true);
					}
					if (<npc>5__13.Health.IsDead)
					{
						<npc>5__13.Health.Revive();
					}
					if (<npc>5__13.Health.IsKnockedOut)
					{
						((Behaviour)<npc>5__13.behaviour.UnconsciousBehaviour).SendEnd();
					}
					ref PoliceOfficer reference = ref <offc>5__15;
					NPC obj = <npc>5__13;
					reference = (PoliceOfficer)(object)((obj is PoliceOfficer) ? obj : null);
					if (<offc>5__15 != null)
					{
						((NPC)<offc>5__15).behaviour.CombatBehaviour.SetTarget((NetworkConnection)null, ((NetworkBehaviour)<randomPlayer>5__10).NetworkObject);
					}
					if (<nearbyNPCs>5__6.Count >= 12)
					{
						goto IL_0530;
					}
					<offc>5__15 = null;
					<npc>5__13 = null;
					<>s__12++;
					goto IL_051d;
				}
				case 7:
					<>1__state = -3;
					<npc>5__17.OverrideAggression(1f);
					<npc>5__17.Movement.RunSpeed = Random.Range(2f, 12f);
					<npc>5__17.behaviour.CombatBehaviour.VirtualPunchWeapon.Damage = Random.Range(0.01f, 0.08f);
					<>2__current = (object)new WaitForSeconds(0.02f);
					<>1__state = 8;
					return true;
				case 8:
					<>1__state = -3;
					<npc>5__17.Avatar.LoadNaked();
					<npc>5__17.Avatar.Effects.SetZombified(true, true);
					<npc>5__17.Avatar.Effects.GurgleSound.Play();
					<npc>5__17.Movement.Disoriented = true;
					<>2__current = (object)new WaitForSeconds(0.02f);
					<>1__state = 9;
					return true;
				case 9:
					<>1__state = -3;
					if (<npc>5__17.isInBuilding)
					{
						<npc>5__17.ExitBuilding("");
						((Behaviour)<npc>5__17.behaviour.CombatBehaviour).Enable_Networked((NetworkConnection)null);
						<npc>5__17.Movement.GetClosestReachablePoint(((Component)<randomPlayer>5__10).transform.position, ref <pos>5__18);
						<npc>5__17.Movement.SetDestination(<pos>5__18);
					}
					<>2__current = (object)new WaitForSeconds(0.02f);
					<>1__state = 10;
					return true;
				case 10:
					<>1__state = -3;
					if (<npc>5__17.IsInVehicle)
					{
						<npc>5__17.ExitVehicle();
						((Behaviour)<npc>5__17.behaviour.CombatBehaviour).Enable_Networked((NetworkConnection)null);
						<npc>5__17.Movement.GetClosestReachablePoint(((Component)<randomPlayer>5__10).transform.position, ref <pos>5__19);
						<npc>5__17.Movement.SetDestination(<pos>5__19);
					}
					<>2__current = (object)new WaitForSeconds(0.02f);
					<>1__state = 11;
					return true;
				case 11:
					<>1__state = -3;
					<npc>5__17.behaviour.CombatBehaviour.SetTarget((NetworkConnection)null, ((NetworkBehaviour)<randomPlayer>5__10).NetworkObject);
					((Behaviour)<npc>5__17.behaviour.CombatBehaviour).Enable_Networked((NetworkConnection)null);
					<npc>5__17 = null;
					goto IL_082e;
				case 12:
					<>1__state = -1;
					if (Vector3.Distance(((Component)<npc>5__24).transform.position, ((Component)<randomPlayer>5__10).transform.position) < 100f)
					{
						<i>5__21++;
						<xInitOffset>5__25 = Random.Range(15f, 30f);
						<zInitOffset>5__26 = Random.Range(15f, 30f);
						<xInitOffset>5__25 *= ((Random.Range(0f, 1f) > 0.5f) ? 1f : (-1f));
						<zInitOffset>5__26 *= ((Random.Range(0f, 1f) > 0.5f) ? 1f : (-1f));
						<targetWarpPosition>5__27 = ((Component)<randomPlayer>5__10).transform.position + new Vector3(<xInitOffset>5__25, 0f, <zInitOffset>5__26);
						<npc>5__24.Movement.GetClosestReachablePoint(<targetWarpPosition>5__27, ref <warpInit>5__28);
						<npc>5__24.Movement.Warp(<warpInit>5__28);
						<npc>5__24.Movement.WarpToNavMesh();
					}
					<npc>5__24 = null;
					<>s__23++;
					goto IL_0a60;
				case 13:
					<>1__state = -1;
					<npc>5__31.ResetAggression();
					<npc>5__31.Movement.RunSpeed = 7f;
					<npc>5__31.behaviour.CombatBehaviour.VirtualPunchWeapon.Damage = 0.25f;
					((Behaviour)<npc>5__31.behaviour.CombatBehaviour).SendEnd();
					<npc>5__31.Movement.Disoriented = false;
					if (<npc>5__31.Health.IsDead)
					{
						((Behaviour)<npc>5__31.behaviour.DeadBehaviour).SendEnd();
					}
					if (<npc>5__31.Health.IsKnockedOut)
					{
						((Behaviour)<npc>5__31.behaviour.UnconsciousBehaviour).SendEnd();
					}
					<npc>5__31 = null;
					<>s__30++;
					goto IL_0be2;
				case 14:
					<>1__state = -1;
					<offc>5__34.GunPrefab = <>4__this.gunPref;
					<offc>5__34.TaserPrefab = <>4__this.taser;
					if ((Object)(object)<>4__this.gunPref != (Object)null && (Object)(object)<offc>5__34.GunPrefab == (Object)null)
					{
						<offc>5__34.GunPrefab = <>4__this.gunPref;
					}
					((NPC)<offc>5__34).ResetAggression();
					if ((Object)(object)<>4__this.taser != (Object)null && (Object)(object)<offc>5__34.TaserPrefab == (Object)null)
					{
						<offc>5__34.TaserPrefab = <>4__this.taser;
					}
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 15;
					return true;
				case 15:
					<>1__state = -1;
					<offc>5__34.ProxCircle.SetRadius(2f);
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 16;
					return true;
				case 16:
					{
						<>1__state = -1;
						((Behaviour)<offc>5__34.PursuitBehaviour).SendEnd();
						((Behaviour)((NPC)<offc>5__34).behaviour.CombatBehaviour).SendEnd();
						<offc>5__34 = null;
						<>s__33++;
						goto IL_0dac;
					}
					IL_0a60:
					if (<>s__23 < <>s__22.Length)
					{
						<npc>5__24 = <>s__22[<>s__23];
						if (<i>5__21 <= 3)
						{
							<>2__current = (object)new WaitForSeconds(<>4__this.sleepTime);
							<>1__state = 12;
							return true;
						}
					}
					<>s__22 = null;
					goto IL_0a7c;
					IL_02f3:
					if (<>s__8 < <>s__7.Length)
					{
						<offc>5__9 = <>s__7[<>s__8];
						<>2__current = (object)new WaitForSeconds(0.1f);
						<>1__state = 4;
						return true;
					}
					<>s__7 = null;
					<nearbyNPCs>5__6 = new List<NPC>();
					goto IL_0a90;
					IL_0a7c:
					<nearbyNPCs>5__6.Clear();
					<randomPlayer>5__10 = null;
					goto IL_0a90;
					IL_00c4:
					<>2__current = (object)new WaitForSeconds(30f);
					<>1__state = 1;
					return true;
					IL_0be2:
					if (<>s__30 < <>s__29.Length)
					{
						<npc>5__31 = <>s__29[<>s__30];
						<>2__current = (object)new WaitForSeconds(0.1f);
						<>1__state = 13;
						return true;
					}
					<>s__29 = null;
					<>s__32 = <offcs>5__5;
					<>s__33 = 0;
					goto IL_0dac;
					IL_0530:
					<>s__11 = null;
					if (<nearbyNPCs>5__6.Count > 0)
					{
						<>4__this.sleepTime = 0.05f;
						<>s__16 = <nearbyNPCs>5__6.GetEnumerator();
						<>1__state = -3;
						goto IL_082e;
					}
					<>4__this.sleepTime = 0.5f;
					<roll>5__20 = Random.Range(1, 100);
					<i>5__21 = 0;
					if (<roll>5__20 > 95)
					{
						<>s__22 = <>4__this.npcs;
						<>s__23 = 0;
						goto IL_0a60;
					}
					goto IL_0a7c;
					IL_051d:
					if (<>s__12 < <>s__11.Length)
					{
						<npc>5__13 = <>s__11[<>s__12];
						<>2__current = (object)new WaitForSeconds(<>4__this.sleepTime);
						<>1__state = 6;
						return true;
					}
					goto IL_0530;
					IL_0a90:
					if (((object)(EDay)(ref <currentDay>5__2)).ToString().Contains("Sunday"))
					{
						<>2__current = (object)new WaitForSeconds(<>4__this.sleepTime * 10f);
						<>1__state = 5;
						return true;
					}
					<>s__29 = <>4__this.npcs;
					<>s__30 = 0;
					goto IL_0be2;
					IL_0dac:
					if (<>s__33 < <>s__32.Length)
					{
						<offc>5__34 = <>s__32[<>s__33];
						<>2__current = (object)new WaitForSeconds(0.1f);
						<>1__state = 14;
						return true;
					}
					<>s__32 = null;
					MelonCoroutines.Start(<>4__this.LightsClear());
					<players>5__4 = null;
					<offcs>5__5 = null;
					<nearbyNPCs>5__6 = null;
					goto IL_00c4;
					IL_082e:
					if (<>s__16.MoveNext())
					{
						<npc>5__17 = <>s__16.Current;
						<>2__current = (object)new WaitForSeconds(0.02f);
						<>1__state = 7;
						return true;
					}
					<>m__Finally1();
					<>s__16 = default(List<NPC>.Enumerator);
					goto IL_0a7c;
				}
			}
			catch
			{
				//try-fault
				((IDisposable)this).Dispose();
				throw;
			}
		}

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

		private void <>m__Finally1()
		{
			<>1__state = -1;
			((IDisposable)<>s__16).Dispose();
		}

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

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

		private object <>2__current;

		public TheIncident <>4__this;

		private int <i>5__1;

		private Exception <ex>5__2;

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

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

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

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

		private bool MoveNext()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<i>5__1 = 0;
				break;
			case 1:
				<>1__state = -1;
				try
				{
					<>4__this.lights[<i>5__1].color = <>4__this.lColors[<i>5__1];
				}
				catch (Exception ex)
				{
					<ex>5__2 = ex;
				}
				<i>5__1++;
				break;
			}
			if (<i>5__1 < <>4__this.lights.Length)
			{
				<>2__current = (object)new WaitForSeconds(0.01f);
				<>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 <LightsRed>d__9 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public TheIncident <>4__this;

		private Light[] <>s__1;

		private int <>s__2;

		private Light <l>5__3;

		private Exception <ex>5__4;

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

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

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

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

		private bool MoveNext()
		{
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			int num = <>1__state;
			if (num != 0)
			{
				if (num != 1)
				{
					return false;
				}
				<>1__state = -1;
				try
				{
					<>4__this.lColors.Add(<l>5__3.color);
					<l>5__3.color = Color.red;
				}
				catch (Exception ex)
				{
					<ex>5__4 = ex;
				}
				<l>5__3 = null;
				<>s__2++;
			}
			else
			{
				<>1__state = -1;
				if (<>4__this.lights.Length == 0)
				{
					goto IL_00f7;
				}
				<>s__1 = <>4__this.lights;
				<>s__2 = 0;
			}
			if (<>s__2 < <>s__1.Length)
			{
				<l>5__3 = <>s__1[<>s__2];
				<>2__current = (object)new WaitForSeconds(0.02f);
				<>1__state = 1;
				return true;
			}
			<>s__1 = null;
			goto IL_00f7;
			IL_00f7:
			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();
		}
	}

	private NPC[] npcs;

	private Light[] lights;

	private List<object> coros = new List<object>();

	private AvatarEquippable taser;

	private AvatarEquippable gunPref;

	private List<Color> lColors = new List<Color>();

	private float sleepTime = 0.05f;

	public override void OnApplicationStart()
	{
	}

	public override void OnSceneWasInitialized(int buildIndex, string sceneName)
	{
		if (buildIndex == 1)
		{
			npcs = Object.FindObjectsOfType<NPC>(true);
			lights = Object.FindObjectsOfType<Light>(true);
			coros.Add(MelonCoroutines.Start(IncidentBegin()));
			return;
		}
		foreach (object coro in coros)
		{
			MelonCoroutines.Stop(coro);
		}
		coros.Clear();
	}

	[IteratorStateMachine(typeof(<LightsRed>d__9))]
	private IEnumerator LightsRed()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <LightsRed>d__9(0)
		{
			<>4__this = this
		};
	}

	[IteratorStateMachine(typeof(<LightsClear>d__10))]
	private IEnumerator LightsClear()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <LightsClear>d__10(0)
		{
			<>4__this = this
		};
	}

	[IteratorStateMachine(typeof(<IncidentBegin>d__11))]
	private IEnumerator IncidentBegin()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <IncidentBegin>d__11(0)
		{
			<>4__this = this
		};
	}
}