Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of Insanity v1.1.0
Insanity.dll
Decompiled 10 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using FishNet.Object; using Insanity; using MelonLoader; using ScheduleOne.Audio; using ScheduleOne.Building.Doors; using ScheduleOne.DevUtilities; using ScheduleOne.FX; using ScheduleOne.GameTime; using ScheduleOne.NPCs; using ScheduleOne.Persistence; using ScheduleOne.PlayerScripts; using ScheduleOne.Property; using ScheduleOne.VoiceOver; using UnityEngine; using UnityEngine.AI; using UnityEngine.Events; [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::Insanity.Insanity), "Insanity", "1.1", "XOWithSauce", null)] [assembly: MelonColor] [assembly: MelonOptionalDependencies(new string[] { "FishNet.Runtime" })] [assembly: MelonGame("TVGS", "Schedule I")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyCompany("Insanity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Insanity")] [assembly: AssemblyTitle("Insanity")] [assembly: AssemblyVersion("1.0.0.0")] namespace Insanity; public static class BuildInfo { public const string Name = "Insanity"; public const string Description = "Nothing is real"; public const string Author = "XOWithSauce"; public const string Company = null; public const string Version = "1.1"; public const string DownloadLink = null; } public class Insanity : MelonMod { [CompilerGenerated] private sealed class <EventCoro>d__13 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public NPC npc; public KeyValuePair<string, Vector3> kvPair; public Property property; public Insanity <>4__this; private int <ranEvents>5__1; private GameObject <knocking>5__2; private AudioSource <audioSource>5__3; private Exception <ex>5__4; private int <roll>5__5; private Vector3 <direction>5__6; private Exception <ex>5__7; private Light[] <propertyLights>5__8; private List<Color> <colors>5__9; private List<float> <intensiti>5__10; private Light[] <propertyLights2>5__11; private List<float> <intensities>5__12; private Vector3 <backward>5__13; private int <stepCount>5__14; private GameObject <footsteps>5__15; private AudioSource <audioSource>5__16; private float <volMax>5__17; private float <volMin>5__18; private int <>s__19; private Exception <ex>5__20; private Exception <ex>5__21; private Exception <ex>5__22; private Light[] <>s__23; private int <>s__24; private Light <l>5__25; private int <i>5__26; private Light[] <>s__27; private int <>s__28; private Light <l>5__29; private int <i>5__30; private Exception <ex>5__31; private int <i>5__32; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <EventCoro>d__13(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <knocking>5__2 = null; <audioSource>5__3 = null; <ex>5__4 = null; <ex>5__7 = null; <propertyLights>5__8 = null; <colors>5__9 = null; <intensiti>5__10 = null; <propertyLights2>5__11 = null; <intensities>5__12 = null; <footsteps>5__15 = null; <audioSource>5__16 = null; <ex>5__20 = null; <ex>5__21 = null; <ex>5__22 = null; <>s__23 = null; <l>5__25 = null; <>s__27 = null; <l>5__29 = null; <ex>5__31 = null; <>1__state = -2; } private bool MoveNext() { //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Expected O, but got Unknown //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Expected O, but got Unknown //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_08e9: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_08f7: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Expected O, but got Unknown //IL_0980: Unknown result type (might be due to invalid IL or missing references) //IL_0986: Unknown result type (might be due to invalid IL or missing references) //IL_0990: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_086c: Unknown result type (might be due to invalid IL or missing references) //IL_0871: Unknown result type (might be due to invalid IL or missing references) //IL_0876: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Expected O, but got Unknown //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Expected O, but got Unknown //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Expected O, but got Unknown //IL_06a3: Unknown result type (might be due to invalid IL or missing references) //IL_06ad: Expected O, but got Unknown //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_0725: Expected O, but got Unknown //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Expected O, but got Unknown //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Expected O, but got Unknown //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a53: Unknown result type (might be due to invalid IL or missing references) //IL_0a5d: Unknown result type (might be due to invalid IL or missing references) //IL_0a62: Unknown result type (might be due to invalid IL or missing references) //IL_0a7d: Unknown result type (might be due to invalid IL or missing references) //IL_0a87: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_0329: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) Vector3 forward; switch (<>1__state) { default: return false; case 0: <>1__state = -1; if (kvPair.Key.Contains("Door")) { if (Random.Range(0, 100) > 50) { npc.CanOpenDoors = true; } <knocking>5__2 = new GameObject("knockingSound"); <audioSource>5__3 = <knocking>5__2.AddComponent<AudioSource>(); <audioSource>5__3.clip = <>4__this.doorKnock.clip; <audioSource>5__3.spatialBlend = 1f; <audioSource>5__3.rolloffMode = (AudioRolloffMode)1; try { <knocking>5__2.transform.position = ((Component)npc).transform.position; } catch (Exception ex) { <ex>5__4 = ex; MelonLogger.Error((object)<ex>5__4); } <audioSource>5__3.Play(); <>2__current = (object)new WaitForSeconds(0.77f); <>1__state = 1; return true; } goto IL_022a; case 1: <>1__state = -1; <audioSource>5__3.pitch = Random.Range(0.7f, 1f); <audioSource>5__3.Play(); <>2__current = (object)new WaitForSeconds(Random.Range(0.9f, 1.6f)); <>1__state = 2; return true; case 2: <>1__state = -1; <audioSource>5__3.pitch = Random.Range(0.6f, 0.8f); <audioSource>5__3.volume = 0.8f; <audioSource>5__3.Play(); Object.Destroy((Object)(object)<knocking>5__2, <audioSource>5__3.clip.length); <knocking>5__2 = null; <audioSource>5__3 = null; goto IL_022a; case 3: <>1__state = -1; if (!<>4__this.registered) { return false; } if (<ranEvents>5__1 < 2) { <ranEvents>5__1++; if (!(Random.Range(0f, 1f) > 0.8f)) { try { if (((Component)npc).transform.position != kvPair.Value) { ((Component)npc).transform.position = kvPair.Value; } <direction>5__6 = ((Component)<>4__this.playerMain).transform.position - ((Component)npc).transform.position; <direction>5__6.y = 0f; ((Component)npc).transform.rotation = Quaternion.LookRotation(<direction>5__6); } catch (Exception ex) { <ex>5__7 = ex; MelonLogger.Error((object)<ex>5__7); } <roll>5__5 = Random.Range(0, 8); int num = <roll>5__5; <>s__19 = num; switch (<>s__19) { case 0: break; case 1: goto IL_0401; case 2: goto IL_0431; case 3: goto IL_0460; case 4: goto IL_0651; case 5: goto IL_07c8; case 6: goto IL_0840; case 7: goto IL_08d8; default: goto IL_0ad0; } try { npc.PlayVO((EVOLineType)16); } catch (Exception ex) { <ex>5__20 = ex; MelonLogger.Error((object)<ex>5__20); } } goto IL_0236; } Singleton<MusicPlayer>.Instance.SetMusicDistorted(false, 5f); Singleton<MusicPlayer>.Instance.SetTrackEnabled("Schizo music", false); Singleton<AudioManager>.Instance.SetDistorted(false, 5f); Singleton<PostProcessingManager>.Instance.SaturationController.RemoveOverride("Schizophrenic"); NPCManager.NPCRegistry.Remove(npc); Object.Destroy((Object)(object)((Component)npc).gameObject); return false; case 4: <>1__state = -1; <colors>5__9.Add(<l>5__25.color); <intensiti>5__10.Add(<l>5__25.intensity); if (Random.Range(0f, 1f) > 0.5f) { <l>5__25.color = Color.red; } else { <l>5__25.intensity = 0.1f; } <l>5__25 = null; <>s__24++; goto IL_055e; case 5: <>1__state = -1; if (!<>4__this.registered) { return false; } <i>5__26 = 0; goto IL_0633; case 6: <>1__state = -1; <propertyLights>5__8[<i>5__26].color = <colors>5__9[<i>5__26]; <propertyLights>5__8[<i>5__26].intensity = <intensiti>5__10[<i>5__26]; <i>5__26++; goto IL_0633; case 7: <>1__state = -1; <intensities>5__12.Add(<l>5__29.intensity); <l>5__29.intensity = 0.1f; <l>5__29 = null; <>s__28++; goto IL_06fb; case 8: <>1__state = -1; if (!<>4__this.registered) { return false; } <i>5__30 = 0; goto IL_07ad; case 9: <>1__state = -1; <propertyLights2>5__11[<i>5__30].intensity = <intensities>5__12[<i>5__30]; <i>5__30++; goto IL_07ad; case 10: { <>1__state = -1; <i>5__32++; goto IL_0aab; } IL_0aab: if (<i>5__32 < <stepCount>5__14) { if (!<>4__this.registered) { return false; } <audioSource>5__16.pitch = Random.Range(0.8f, 1f); <audioSource>5__16.volume = Random.Range(<volMin>5__18, <volMax>5__17); <volMax>5__17 -= 0.07f; <volMin>5__18 -= 0.07f; <audioSource>5__16.Play(); Transform transform = <footsteps>5__15.transform; transform.position += <backward>5__13 * 2f; <>2__current = (object)new WaitForSeconds(Random.Range(0.7f, 0.9f)); <>1__state = 10; return true; } Object.Destroy((Object)(object)<footsteps>5__15); goto IL_0236; IL_0401: try { npc.PlayVO((EVOLineType)15); } catch (Exception ex) { <ex>5__21 = ex; MelonLogger.Error((object)<ex>5__21); } goto IL_0236; IL_07ad: if (<i>5__30 < <propertyLights2>5__11.Length) { <>2__current = (object)new WaitForSeconds(0.005f); <>1__state = 9; return true; } goto IL_0236; IL_0236: <>2__current = (object)new WaitForSeconds(Random.Range(3f, 6f)); <>1__state = 3; return true; IL_0633: if (<i>5__26 < <propertyLights>5__8.Length) { <>2__current = (object)new WaitForSeconds(0.005f); <>1__state = 6; return true; } goto IL_0236; IL_0840: try { ((Component)npc).transform.rotation = Quaternion.LookRotation(((Component)<>4__this.playerMain).transform.position - ((Component)npc).transform.position); npc.Avatar.SetEmission(Color.red); npc.Avatar.Effects.SetEyeLightEmission(1f, Color.red, true); } catch (Exception ex) { <ex>5__31 = ex; MelonLogger.Error((object)<ex>5__31); } goto IL_0236; IL_022a: <ranEvents>5__1 = 0; goto IL_0236; IL_0431: try { npc.PlayVO((EVOLineType)12); } catch (Exception ex) { <ex>5__22 = ex; MelonLogger.Error((object)<ex>5__22); } goto IL_0236; IL_07c8: if (Random.Range(0, 100) <= 10 && !Singleton<MusicPlayer>.Instance.IsPlaying) { Singleton<MusicPlayer>.Instance.SetMusicDistorted(true, 5f); Singleton<MusicPlayer>.Instance.SetTrackEnabled("Schizo music", true); Singleton<AudioManager>.Instance.SetDistorted(true, 5f); Singleton<PostProcessingManager>.Instance.SaturationController.AddOverride(110f, 7, "Schizophrenic"); } goto IL_0236; IL_0651: <propertyLights2>5__11 = ((Component)((Component)property).transform).GetComponentsInChildren<Light>(true); <intensities>5__12 = new List<float>(); <>s__27 = <propertyLights2>5__11; <>s__28 = 0; goto IL_06fb; IL_06fb: if (<>s__28 < <>s__27.Length) { <l>5__29 = <>s__27[<>s__28]; <>2__current = (object)new WaitForSeconds(0.005f); <>1__state = 7; return true; } <>s__27 = null; <>2__current = (object)new WaitForSeconds(3f); <>1__state = 8; return true; IL_0460: <propertyLights>5__8 = ((Component)((Component)property).transform).GetComponentsInChildren<Light>(true); <colors>5__9 = new List<Color>(); <intensiti>5__10 = new List<float>(); <>s__23 = <propertyLights>5__8; <>s__24 = 0; goto IL_055e; IL_055e: if (<>s__24 < <>s__23.Length) { <l>5__25 = <>s__23[<>s__24]; <>2__current = (object)new WaitForSeconds(0.005f); <>1__state = 4; return true; } <>s__23 = null; <>2__current = (object)new WaitForSeconds(3f); <>1__state = 5; return true; IL_0ad0: <propertyLights>5__8 = null; <colors>5__9 = null; <intensiti>5__10 = null; <propertyLights2>5__11 = null; <intensities>5__12 = null; <footsteps>5__15 = null; <audioSource>5__16 = null; goto IL_0236; IL_08d8: forward = ((Component)<>4__this.playerMain).transform.forward; <backward>5__13 = -((Vector3)(ref forward)).normalized; <stepCount>5__14 = Random.Range(5, 9); <footsteps>5__15 = new GameObject("stepSounds"); <audioSource>5__16 = <footsteps>5__15.AddComponent<AudioSource>(); <audioSource>5__16.clip = <>4__this.footSteps; <audioSource>5__16.spatialBlend = 1f; <audioSource>5__16.rolloffMode = (AudioRolloffMode)1; <footsteps>5__15.transform.position = ((Component)<>4__this.playerMain).transform.position + <backward>5__13 * 2f; <volMax>5__17 = 0.8f; <volMin>5__18 = 0.7f; <i>5__32 = 0; goto IL_0aab; } } 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 <MoveAlongPath>d__14 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public NPC npc; public List<Vector3> path; public float durationPerSegment; public Insanity <>4__this; private int <i>5__1; private Vector3 <start>5__2; private Vector3 <end>5__3; private float <elapsed>5__4; private float <t>5__5; private Vector3 <direction>5__6; private Exception <ex>5__7; private Vector3 <direction>5__8; private Exception <ex>5__9; private Exception <ex>5__10; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <MoveAlongPath>d__14(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <ex>5__7 = null; <ex>5__9 = null; <ex>5__10 = null; <>1__state = -2; } private bool MoveNext() { //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Expected O, but got Unknown //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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; if (path == null || path.Count < 2) { return false; } <i>5__1 = 0; goto IL_02b5; case 1: <>1__state = -1; if (!<>4__this.registered) { return false; } <elapsed>5__4 += Time.deltaTime; <t>5__5 = Mathf.Clamp01(<elapsed>5__4 / durationPerSegment); try { ((Component)npc).transform.position = Vector3.Lerp(<start>5__2, <end>5__3, <t>5__5); <direction>5__6 = ((Component)<>4__this.playerMain).transform.position - ((Component)npc).transform.position; <direction>5__6.y = 0f; ((Component)npc).transform.rotation = Quaternion.LookRotation(<direction>5__6); } catch (Exception ex) { <ex>5__7 = ex; MelonLogger.Error((object)<ex>5__7); } goto IL_019d; case 2: { <>1__state = -1; try { NPCManager.NPCRegistry.Remove(npc); Object.Destroy((Object)(object)((Component)npc).gameObject); } catch (Exception ex) { <ex>5__10 = ex; MelonLogger.Error((object)<ex>5__10); } <i>5__1++; goto IL_02b5; } IL_019d: if (<elapsed>5__4 < durationPerSegment) { <>2__current = (object)new WaitForSeconds(0.02f); <>1__state = 1; return true; } try { ((Component)npc).transform.position = <end>5__3; <direction>5__8 = ((Component)<>4__this.playerMain).transform.position - ((Component)npc).transform.position; <direction>5__8.y = 0f; ((Component)npc).transform.rotation = Quaternion.LookRotation(<direction>5__8); } catch (Exception ex) { <ex>5__9 = ex; MelonLogger.Error((object)<ex>5__9); } <>2__current = (object)new WaitForSeconds(1f); <>1__state = 2; return true; IL_02b5: if (<i>5__1 < path.Count - 1) { <start>5__2 = path[<i>5__1]; <end>5__3 = path[<i>5__1 + 1]; <elapsed>5__4 = 0f; goto IL_019d; } 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 <RunInsanity>d__12 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Insanity <>4__this; private int <currTime>5__1; private EDay <currentDay>5__2; private EDay <updatedDay>5__3; private int <updatedTime>5__4; private string <characterId>5__5; private Dictionary<string, Vector3> <positions>5__6; private int <roll>5__7; private KeyValuePair<string, Vector3> <kvpair>5__8; private NPC <spawnedNpc>5__9; private string <characterId>5__10; private Dictionary<string, List<Vector3>> <positions>5__11; private KeyValuePair<string, List<Vector3>> <kvpair>5__12; private KeyValuePair<string, Vector3> <kvStart>5__13; private NPC <spawnedNpc>5__14; private Dictionary<string, Vector3> <positions>5__15; private int <roll>5__16; private KeyValuePair<string, Vector3> <kvpair>5__17; private NPC <spawnedNpc>5__18; private Property <property>5__19; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RunInsanity>d__12(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <characterId>5__5 = null; <positions>5__6 = null; <kvpair>5__8 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__9 = null; <characterId>5__10 = null; <positions>5__11 = null; <kvpair>5__12 = default(KeyValuePair<string, List<Vector3>>); <kvStart>5__13 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__14 = null; <positions>5__15 = null; <kvpair>5__17 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__18 = null; <property>5__19 = null; <>1__state = -2; } private bool MoveNext() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_0393: 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(10f); <>1__state = 1; return true; case 1: <>1__state = -1; goto IL_0059; case 2: <>1__state = -1; if (!<>4__this.registered) { return false; } <currTime>5__1 = NetworkSingleton<TimeManager>.Instance.CurrentTime; <currentDay>5__2 = NetworkSingleton<TimeManager>.Instance.CurrentDay; if (<currTime>5__1 > 2000) { goto IL_00c8; } goto IL_0059; case 3: { <>1__state = -1; if (!<>4__this.registered) { return false; } <updatedDay>5__3 = NetworkSingleton<TimeManager>.Instance.CurrentDay; <updatedTime>5__4 = NetworkSingleton<TimeManager>.Instance.CurrentTime; if (<currentDay>5__2 != <updatedDay>5__3 && <updatedTime>5__4 > 500) { goto IL_0059; } if ((Object)(object)<>4__this.playerMain.CurrentProperty != (Object)null && <>4__this.CharacterLocations.ContainsKey(<>4__this.playerMain.CurrentProperty.PropertyName)) { <characterId>5__5 = <>4__this.npcIds[Random.Range(0, <>4__this.npcIds.Count)]; <>4__this.CharacterLocations.TryGetValue(<>4__this.playerMain.CurrentProperty.PropertyName, out <positions>5__6); <roll>5__7 = Random.Range(0, <positions>5__6.Count); <kvpair>5__8 = <positions>5__6.ElementAt(<roll>5__7); <spawnedNpc>5__9 = <>4__this.SpawnAndInitializeNPC(<characterId>5__5, <kvpair>5__8); if ((Object)(object)<spawnedNpc>5__9 != (Object)null) { MelonCoroutines.Start(<>4__this.EventCoro(<spawnedNpc>5__9, <kvpair>5__8, <>4__this.playerMain.CurrentProperty)); } <characterId>5__5 = null; <positions>5__6 = null; <kvpair>5__8 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__9 = null; } if ((Object)(object)<>4__this.playerMain.CurrentBusiness != (Object)null) { <characterId>5__10 = <>4__this.npcIds[Random.Range(0, <>4__this.npcIds.Count)]; if (<>4__this.CharacterSpecials.ContainsKey(((Property)<>4__this.playerMain.CurrentBusiness).PropertyName) && Random.Range(0f, 1f) > 0.8f) { <>4__this.CharacterSpecials.TryGetValue(((Property)<>4__this.playerMain.CurrentBusiness).PropertyName, out <positions>5__11); <kvpair>5__12 = <positions>5__11.ElementAt(0); <kvStart>5__13 = new KeyValuePair<string, Vector3>(<kvpair>5__12.Key, <kvpair>5__12.Value[0]); <spawnedNpc>5__14 = <>4__this.SpawnAndInitializeNPC(<characterId>5__10, <kvStart>5__13); if ((Object)(object)<spawnedNpc>5__14 != (Object)null) { MelonCoroutines.Start(<>4__this.MoveAlongPath(<spawnedNpc>5__14, <kvpair>5__12.Value, 5f)); } <positions>5__11 = null; <kvpair>5__12 = default(KeyValuePair<string, List<Vector3>>); <kvStart>5__13 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__14 = null; } else if (<>4__this.CharacterLocations.ContainsKey(((Property)<>4__this.playerMain.CurrentBusiness).PropertyName)) { <>4__this.CharacterLocations.TryGetValue(((Property)<>4__this.playerMain.CurrentBusiness).PropertyName, out <positions>5__15); <roll>5__16 = Random.Range(0, <positions>5__15.Count); <kvpair>5__17 = <positions>5__15.ElementAt(<roll>5__16); <spawnedNpc>5__18 = <>4__this.SpawnAndInitializeNPC(<characterId>5__10, <kvpair>5__17); if ((Object)(object)<spawnedNpc>5__18 != (Object)null) { <property>5__19 = (Property)(object)<>4__this.playerMain.CurrentBusiness; MelonCoroutines.Start(<>4__this.EventCoro(<spawnedNpc>5__18, <kvpair>5__17, <property>5__19)); <property>5__19 = null; } <positions>5__15 = null; <kvpair>5__17 = default(KeyValuePair<string, Vector3>); <spawnedNpc>5__18 = null; } <characterId>5__10 = null; } goto IL_00c8; } IL_00c8: <>2__current = (object)new WaitForSeconds(Random.Range(25f, 45f)); <>1__state = 3; return true; IL_0059: <>2__current = (object)new WaitForSeconds(30f); <>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 <Setup>d__10 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Insanity <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <Setup>d__10(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(5f); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.playerMain = Object.FindObjectOfType<Player>(true); <>2__current = (object)new WaitForSeconds(1f); <>1__state = 2; return true; case 2: <>1__state = -1; <>4__this.doorKnock = Object.FindObjectOfType<DoorKnocker>(true).KnockingSound; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 3; return true; case 3: <>1__state = -1; <>4__this.footSteps = Object.FindObjectOfType<FootstepSounds>(true).soundGroups[0].clips[0]; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 4; return true; case 4: <>1__state = -1; coros.Add(MelonCoroutines.Start(<>4__this.RunInsanity())); 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(); } } public static List<object> coros = new List<object>(); private bool registered = false; private Player playerMain; private AudioSource doorKnock; private AudioClip footSteps; public List<string> npcIds = new List<string> { "ming", "jessi_waters" }; public Dictionary<string, Dictionary<string, Vector3>> CharacterLocations = new Dictionary<string, Dictionary<string, Vector3>> { { "Motel Room", new Dictionary<string, Vector3> { { "MotelWindow", new Vector3(-67.4f, 1.3f, 86f) }, { "MotelDoor", new Vector3(-67.04f, 1.3f, 82.6f) } } }, { "Sweatshop", new Dictionary<string, Vector3> { { "SweatWindowMain", new Vector3(-55.16f, 0.3f, 140.1f) }, { "SweatDoor", new Vector3(-64.29f, -0.4f, 141.84f) }, { "SweatStreet1", new Vector3(-57.23f, -3.4f, 123.22f) }, { "SweatHighCorner", new Vector3(-56.18f, 0.3f, 115.25f) } } }, { "Bungalow", new Dictionary<string, Vector3> { { "BungalowDoorMain", new Vector3(-169.18f, -3.7f, 113.82f) }, { "BungalowDoorBack", new Vector3(-176.87f, -3.7f, 110.26f) }, { "BungalowWindowKitchen1", new Vector3(-176.77f, -3.6f, 118.66f) } } }, { "Barn", new Dictionary<string, Vector3> { { "BarnUnderStairs", new Vector3(200.8111f, 0.1f, -10.9124f) }, { "BarnFloating", new Vector3(187.9814f, 3.8f, -13.52317f) }, { "BarnWoods", new Vector3(174.0903f, -0.1f, 3.852638f) }, { "BarnRoad", new Vector3(159.279f, -0.2f, -12.15506f) } } }, { "Docks Warehouse", new Dictionary<string, Vector3> { { "DocksOutCorner", new Vector3(-83.82198f, -2.1f, -35.59542f) }, { "DocksOnPillar", new Vector3(-88.41868f, 0.5f, -61.17904f) }, { "DocksOnRoof", new Vector3(-47.33374f, 4.1f, -68.83347f) } } }, { "Taco Ticklers", new Dictionary<string, Vector3> { { "TacoCan", new Vector3(-27.67904f, 0.23f, 75.21258f) }, { "TacoBackDoor", new Vector3(-31.239f, 0.23f, 84.10281f) }, { "TacoFrontWindow", new Vector3(-26.84878f, 0.23f, 63.86666f) }, { "TacoRunToStaff", new Vector3(-34.48309f, 0.23f, 76.22535f) } } }, { "Laundromat", new Dictionary<string, Vector3> { { "LaundromatDoor", new Vector3(-23.53883f, 0.3f, 24.97166f) }, { "LaundromatCreep", new Vector3(-24.18913f, 0.6f, 23.33677f) }, { "LaundromatBoxes", new Vector3(-10.6364f, 0.8f, 27.53411f) } } }, { "Car Wash", new Dictionary<string, Vector3> { { "CarWashBusStop", new Vector3(-23.94017f, 0.2f, -24.21171f) }, { "CarWashBackDoor", new Vector3(-3.334698f, 0.35f, -22.07097f) }, { "CarWashRunToWindow", new Vector3(-6.237535f, 0.35f, -15.59119f) } } }, { "Post Office", new Dictionary<string, Vector3> { { "PostOfficeWindow1", new Vector3(52.59536f, 0.3f, -1.74566f) }, { "PostOfficeWindow2", new Vector3(42.58666f, 0.3f, -1.472795f) }, { "PostOfficeBack", new Vector3(45.09676f, 0.2f, -8.674371f) }, { "PostOfficeStreet", new Vector3(41.80392f, 0.2f, 8.459332f) } } } }; public Dictionary<string, Dictionary<string, List<Vector3>>> CharacterSpecials = new Dictionary<string, Dictionary<string, List<Vector3>>> { { "Taco Ticklers", new Dictionary<string, List<Vector3>> { { "TacoRunToStaff", new List<Vector3> { new Vector3(-34.48309f, 0.23f, 76.22535f), new Vector3(-34.48309f, 0.23f, 79.53841f) } } } }, { "Car Wash", new Dictionary<string, List<Vector3>> { { "CarWashRunToWindow", new List<Vector3> { new Vector3(-9.058268f, 0.35f, -10.47236f), new Vector3(-6.237535f, 0.35f, -15.59119f) } } } } }; private void OnLoadCompleteCb() { if (!registered) { coros.Add(MelonCoroutines.Start(Setup())); registered = true; } } public override void OnSceneWasInitialized(int buildIndex, string sceneName) { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown if (buildIndex == 1) { if ((Object)(object)Singleton<LoadManager>.Instance != (Object)null && !registered) { Singleton<LoadManager>.Instance.onLoadComplete.AddListener(new UnityAction(OnLoadCompleteCb)); } return; } if ((Object)(object)Singleton<LoadManager>.Instance != (Object)null && registered) { Singleton<LoadManager>.Instance.onLoadComplete.RemoveListener(new UnityAction(OnLoadCompleteCb)); } registered = false; foreach (object coro in coros) { MelonCoroutines.Stop(coro); } coros.Clear(); } [IteratorStateMachine(typeof(<Setup>d__10))] public IEnumerator Setup() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <Setup>d__10(0) { <>4__this = this }; } private NPC SpawnAndInitializeNPC(string characterId, KeyValuePair<string, Vector3> kvp) { //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) NPC nPC = NPCManager.GetNPC(characterId); GameObject val = Object.Instantiate<GameObject>(((Component)nPC).gameObject, NetworkSingleton<NPCManager>.Instance.NPCContainer); if ((Object)(object)val == (Object)null) { return null; } NPC component = val.GetComponent<NPC>(); string iD = "test_" + characterId + "_" + Guid.NewGuid().ToString().Substring(0, 8); component.ID = iD; component.FirstName = ""; component.LastName = ""; NavMeshAgent component2 = ((Component)component).GetComponent<NavMeshAgent>(); if ((Object)(object)component2 != (Object)null) { Object.Destroy((Object)(object)component2); } Rigidbody component3 = ((Component)component).GetComponent<Rigidbody>(); if ((Object)(object)component3 != (Object)null) { Object.Destroy((Object)(object)component3); } NetworkObject component4 = ((Component)component).GetComponent<NetworkObject>(); if ((Object)(object)component4 != (Object)null) { ((Behaviour)component4).enabled = false; } ((Behaviour)component.behaviour).enabled = false; component.CanOpenDoors = false; ((Behaviour)component.Movement).enabled = false; component.PlayerConversant = ((NetworkBehaviour)playerMain).NetworkObject; val.SetActive(true); component.SetVisible(true); component.Avatar.Effects.SetSicklySkinColor(true); component.Avatar.Effects.SetZombified(true, true); component.Avatar.EmotionManager.AddEmotionOverride("Zombie", "deal_rejected", 30f, 0); NPCManager.NPCRegistry.Add(component); val.transform.position = kvp.Value; Vector3 val2 = ((Component)playerMain).transform.position - ((Component)component).transform.position; val2.y = 0f; val.transform.rotation = Quaternion.LookRotation(val2); return component; } [IteratorStateMachine(typeof(<RunInsanity>d__12))] public IEnumerator RunInsanity() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RunInsanity>d__12(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<EventCoro>d__13))] private IEnumerator EventCoro(NPC npc, KeyValuePair<string, Vector3> kvPair, Property property) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <EventCoro>d__13(0) { <>4__this = this, npc = npc, kvPair = kvPair, property = property }; } [IteratorStateMachine(typeof(<MoveAlongPath>d__14))] private IEnumerator MoveAlongPath(NPC npc, List<Vector3> path, float durationPerSegment) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <MoveAlongPath>d__14(0) { <>4__this = this, npc = npc, path = path, durationPerSegment = durationPerSegment }; } }