Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of The Elevator v1.0.0
BepInEx\plugins\Empress_AI-The_Elevator\TheElevator.dll
Decompiled a day ago
The result has been truncated due to the large size, download it to view full contents!
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.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using ExitGames.Client.Photon; using HarmonyLib; using Microsoft.CodeAnalysis; using Photon.Pun; using Photon.Realtime; using REPOLib.Modules; using REPOLib.Objects.Sdk; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("")] [assembly: AssemblyCompany("Empress")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("TheElevator")] [assembly: AssemblyTitle("TheElevator")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Empress.REPO.TheElevator { internal enum EmpressElevatorEventKind { ConfettiBloom, HealingRain, LanternOrbit, PrismGarden, SpotlightParade, HeartPageant, GiftPulse, CylinderChoir, BubbleDrift, CalmAurora, TreasureDrizzle, MoonBounce, SoloErrand, TeamTrial, LaserSweep, DirectiveTrial, RollingOrbs, CeilingPress, SpikeLattice, ShockRing, SeekerOrbs, BounceBombs, SawSweep, MeteorDrop, PulseWall, FreezeTag, MarathonPanic, GravityFlip, DoNotTurnAround } internal sealed class EmpressElevatorFloorDefinition { internal int DefinitionIndex { get; } internal string Name { get; } internal EmpressElevatorEventKind Kind { get; } internal bool Hostile { get; } internal float EventDuration { get; } internal int Count { get; } internal float Speed { get; } internal float Size { get; } internal int Power { get; } internal Color PrimaryColor { get; } internal Color SecondaryColor { get; } internal EmpressElevatorFloorDefinition(int definitionIndex, string name, EmpressElevatorEventKind kind, bool hostile, float eventDuration, int count, float speed, float size, int power, Color primaryColor, Color secondaryColor) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) DefinitionIndex = definitionIndex; Name = name; Kind = kind; Hostile = hostile; EventDuration = eventDuration; Count = count; Speed = speed; Size = size; Power = power; PrimaryColor = primaryColor; SecondaryColor = secondaryColor; } } internal static class EmpressElevatorFloorCatalog { internal static IReadOnlyList<EmpressElevatorFloorDefinition> Build() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0056: 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) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_0844: 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_089e: Unknown result type (might be due to invalid IL or missing references) //IL_08cb: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_097c: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: Unknown result type (might be due to invalid IL or missing references) //IL_09d5: Unknown result type (might be due to invalid IL or missing references) //IL_0a01: 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_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a86: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Unknown result type (might be due to invalid IL or missing references) //IL_0ae0: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b67: Unknown result type (might be due to invalid IL or missing references) //IL_0b94: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Unknown result type (might be due to invalid IL or missing references) //IL_0bee: Unknown result type (might be due to invalid IL or missing references) //IL_0c1c: Unknown result type (might be due to invalid IL or missing references) //IL_0c4a: Unknown result type (might be due to invalid IL or missing references) //IL_0c77: Unknown result type (might be due to invalid IL or missing references) //IL_0ca4: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d58: Unknown result type (might be due to invalid IL or missing references) //IL_0d85: Unknown result type (might be due to invalid IL or missing references) //IL_0db2: Unknown result type (might be due to invalid IL or missing references) //IL_0ddf: Unknown result type (might be due to invalid IL or missing references) //IL_0e0c: Unknown result type (might be due to invalid IL or missing references) //IL_0e39: Unknown result type (might be due to invalid IL or missing references) //IL_0e66: Unknown result type (might be due to invalid IL or missing references) //IL_0e93: Unknown result type (might be due to invalid IL or missing references) //IL_0ec0: Unknown result type (might be due to invalid IL or missing references) //IL_0eed: Unknown result type (might be due to invalid IL or missing references) //IL_0f1a: Unknown result type (might be due to invalid IL or missing references) //IL_0f47: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0fa2: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0ffd: Unknown result type (might be due to invalid IL or missing references) //IL_102a: Unknown result type (might be due to invalid IL or missing references) //IL_1057: Unknown result type (might be due to invalid IL or missing references) //IL_1084: Unknown result type (might be due to invalid IL or missing references) //IL_10b2: Unknown result type (might be due to invalid IL or missing references) //IL_10e0: Unknown result type (might be due to invalid IL or missing references) //IL_110e: Unknown result type (might be due to invalid IL or missing references) //IL_113c: Unknown result type (might be due to invalid IL or missing references) //IL_1169: Unknown result type (might be due to invalid IL or missing references) //IL_1196: Unknown result type (might be due to invalid IL or missing references) //IL_11c3: Unknown result type (might be due to invalid IL or missing references) //IL_11f1: Unknown result type (might be due to invalid IL or missing references) //IL_121e: Unknown result type (might be due to invalid IL or missing references) //IL_124b: Unknown result type (might be due to invalid IL or missing references) //IL_1278: Unknown result type (might be due to invalid IL or missing references) List<EmpressElevatorFloorDefinition> list = new List<EmpressElevatorFloorDefinition>(100); Color[] array = (Color[])(object)new Color[5] { new Color(1f, 0.56f, 0.82f), new Color(0.55f, 0.87f, 1f), new Color(0.98f, 0.91f, 0.45f), new Color(0.66f, 1f, 0.75f), new Color(0.84f, 0.72f, 1f) }; Color[] array2 = (Color[])(object)new Color[5] { new Color(1f, 0.22f, 0.22f), new Color(1f, 0.51f, 0.14f), new Color(0.88f, 0.09f, 0.42f), new Color(0.61f, 0.16f, 1f), new Color(1f, 0.83f, 0.21f) }; Add(list, "Carnival Confetti", EmpressElevatorEventKind.ConfettiBloom, hostile: false, 6.4f, 16, 0.7f, 0.16f, 2, array[0], 0.32f); Add(list, "Velvet Surprise", EmpressElevatorEventKind.ConfettiBloom, hostile: false, 6.9f, 20, 0.82f, 0.18f, 3, array[4], 0.35f); Add(list, "Joy Burst", EmpressElevatorEventKind.ConfettiBloom, hostile: false, 7.3f, 24, 0.95f, 0.2f, 4, array[2], 0.28f); Add(list, "Glitter Rescue", EmpressElevatorEventKind.ConfettiBloom, hostile: false, 7.8f, 28, 1.02f, 0.22f, 5, array[1], 0.34f); Add(list, "Warm Rain", EmpressElevatorEventKind.HealingRain, hostile: false, 6.8f, 12, 0.8f, 0.18f, 5, array[2], 0.3f); Add(list, "Sugar Drip", EmpressElevatorEventKind.HealingRain, hostile: false, 7.1f, 14, 0.86f, 0.2f, 6, array[0], 0.34f); Add(list, "Nurse Cloud", EmpressElevatorEventKind.HealingRain, hostile: false, 7.5f, 16, 0.92f, 0.22f, 7, array[3], 0.31f); Add(list, "Gentle Wash", EmpressElevatorEventKind.HealingRain, hostile: false, 8f, 18, 0.98f, 0.24f, 8, array[1], 0.29f); Add(list, "Lantern Waltz", EmpressElevatorEventKind.LanternOrbit, hostile: false, 6.7f, 8, 0.72f, 0.36f, 2, array[2], 0.25f); Add(list, "Amber Orbit", EmpressElevatorEventKind.LanternOrbit, hostile: false, 7f, 10, 0.81f, 0.4f, 3, array[4], 0.22f); Add(list, "Candle Ring", EmpressElevatorEventKind.LanternOrbit, hostile: false, 7.4f, 12, 0.9f, 0.44f, 4, array[0], 0.28f); Add(list, "Halo Carousel", EmpressElevatorEventKind.LanternOrbit, hostile: false, 7.9f, 14, 1f, 0.48f, 5, array[1], 0.24f); Add(list, "Prism Garden", EmpressElevatorEventKind.PrismGarden, hostile: false, 6.9f, 8, 0.82f, 0.34f, 3, array[1], 0.36f); Add(list, "Rainbow Terrarium", EmpressElevatorEventKind.PrismGarden, hostile: false, 7.3f, 10, 0.9f, 0.38f, 4, array[0], 0.33f); Add(list, "Glass Meadow", EmpressElevatorEventKind.PrismGarden, hostile: false, 7.7f, 12, 0.98f, 0.42f, 5, array[3], 0.3f); Add(list, "Soft Refraction", EmpressElevatorEventKind.PrismGarden, hostile: false, 8.2f, 14, 1.08f, 0.46f, 6, array[4], 0.27f); Add(list, "Dance Floor", EmpressElevatorEventKind.SpotlightParade, hostile: false, 6.4f, 4, 0.96f, 0.2f, 2, array[0], 0.26f); Add(list, "Star Walk", EmpressElevatorEventKind.SpotlightParade, hostile: false, 6.9f, 5, 1.05f, 0.22f, 3, array[1], 0.26f); Add(list, "Idol Runway", EmpressElevatorEventKind.SpotlightParade, hostile: false, 7.4f, 6, 1.12f, 0.24f, 4, array[2], 0.26f); Add(list, "Fever Show", EmpressElevatorEventKind.SpotlightParade, hostile: false, 7.9f, 7, 1.18f, 0.26f, 5, array[4], 0.24f); Add(list, "Heart Parade", EmpressElevatorEventKind.HeartPageant, hostile: false, 6.7f, 8, 0.78f, 0.18f, 4, array[0], 0.31f); Add(list, "Sweet Riot", EmpressElevatorEventKind.HeartPageant, hostile: false, 7.1f, 10, 0.86f, 0.2f, 5, array[4], 0.29f); Add(list, "Pink Oath", EmpressElevatorEventKind.HeartPageant, hostile: false, 7.6f, 12, 0.92f, 0.22f, 6, array[2], 0.32f); Add(list, "Crush Shower", EmpressElevatorEventKind.HeartPageant, hostile: false, 8f, 14, 1.02f, 0.24f, 7, array[1], 0.28f); Add(list, "Gift Pulse", EmpressElevatorEventKind.GiftPulse, hostile: false, 6.5f, 4, 0.82f, 0.24f, 6, array[2], 0.3f); Add(list, "Prize Storm", EmpressElevatorEventKind.GiftPulse, hostile: false, 7f, 5, 0.9f, 0.26f, 7, array[3], 0.27f); Add(list, "Bonus Hug", EmpressElevatorEventKind.GiftPulse, hostile: false, 7.4f, 6, 0.98f, 0.28f, 8, array[0], 0.32f); Add(list, "Lucky Package", EmpressElevatorEventKind.GiftPulse, hostile: false, 7.8f, 7, 1.05f, 0.3f, 9, array[1], 0.31f); Add(list, "Care Crate", EmpressElevatorEventKind.GiftPulse, hostile: false, 8.2f, 8, 1.12f, 0.32f, 10, array[4], 0.28f); Add(list, "Clockwise Service", EmpressElevatorEventKind.SoloErrand, hostile: false, 16.2f, 4, 0.92f, 0.34f, 5, array[3], 0.34f); Add(list, "Kneel At The Shrine", EmpressElevatorEventKind.SoloErrand, hostile: false, 16.8f, 1, 0.98f, 0.36f, 6, array[4], 0.3f); Add(list, "Touch The Choir", EmpressElevatorEventKind.SoloErrand, hostile: false, 17.1f, 3, 1.04f, 0.38f, 7, array[1], 0.31f); Add(list, "Gate Sprint", EmpressElevatorEventKind.SoloErrand, hostile: false, 17.5f, 3, 1.1f, 0.4f, 8, array[2], 0.29f); Add(list, "Center Stage", EmpressElevatorEventKind.TeamTrial, hostile: false, 7.2f, 1, 0.72f, 0.22f, 1, array[1], 0.3f); Add(list, "Corner Toast", EmpressElevatorEventKind.TeamTrial, hostile: false, 7.6f, 4, 0.82f, 0.24f, 2, array[0], 0.34f); Add(list, "Crouch Choir", EmpressElevatorEventKind.TeamTrial, hostile: false, 8.1f, 1, 0.9f, 0.26f, 3, array[3], 0.28f); Add(list, "Jump Jubilee", EmpressElevatorEventKind.TeamTrial, hostile: false, 8.6f, 1, 0.98f, 0.28f, 4, array[4], 0.25f); Add(list, "Button Darling", EmpressElevatorEventKind.SoloErrand, hostile: false, 15.5f, 1, 0.9f, 0.34f, 1, array[4], 0.36f); Add(list, "Order Service", EmpressElevatorEventKind.SoloErrand, hostile: false, 16.5f, 3, 0.96f, 0.38f, 2, array[1], 0.32f); Add(list, "Jump Audit", EmpressElevatorEventKind.SoloErrand, hostile: false, 15.8f, 5, 1.02f, 0.42f, 3, array[3], 0.3f); Add(list, "Touch And Return", EmpressElevatorEventKind.SoloErrand, hostile: false, 16.8f, 1, 1.06f, 0.46f, 4, array[0], 0.28f); Add(list, "Lucky Rain", EmpressElevatorEventKind.TreasureDrizzle, hostile: false, 6.7f, 9, 0.92f, 0.16f, 4, array[2], 0.24f); Add(list, "Cash Shower", EmpressElevatorEventKind.TreasureDrizzle, hostile: false, 7.1f, 11, 0.98f, 0.18f, 5, array[4], 0.22f); Add(list, "Golden Drizzle", EmpressElevatorEventKind.TreasureDrizzle, hostile: false, 7.6f, 13, 1.05f, 0.2f, 6, array[2], 0.2f); Add(list, "Tip Storm", EmpressElevatorEventKind.TreasureDrizzle, hostile: false, 8f, 15, 1.1f, 0.22f, 7, array[1], 0.24f); Add(list, "Jackpot Sprinkles", EmpressElevatorEventKind.TreasureDrizzle, hostile: false, 8.4f, 17, 1.18f, 0.24f, 8, array[3], 0.22f); Add(list, "Moon Bounce", EmpressElevatorEventKind.MoonBounce, hostile: false, 6.8f, 6, 0.76f, 0.28f, 4, array[1], 0.28f); Add(list, "Soft Orbit", EmpressElevatorEventKind.MoonBounce, hostile: false, 7.2f, 7, 0.84f, 0.3f, 5, array[4], 0.26f); Add(list, "Bunny Hop", EmpressElevatorEventKind.MoonBounce, hostile: false, 7.7f, 8, 0.92f, 0.32f, 6, array[0], 0.3f); Add(list, "Low Gravity Date", EmpressElevatorEventKind.MoonBounce, hostile: false, 8.1f, 9, 1f, 0.34f, 7, array[2], 0.24f); Add(list, "Red Light Green Light", EmpressElevatorEventKind.DirectiveTrial, hostile: true, 7.6f, 1, 1.02f, 0.14f, 1, array2[0], 0.18f); Add(list, "Crouch Or Cry", EmpressElevatorEventKind.DirectiveTrial, hostile: true, 7.9f, 1, 1.1f, 0.16f, 2, array2[3], 0.2f); Add(list, "Jump Tax", EmpressElevatorEventKind.DirectiveTrial, hostile: true, 8.3f, 1, 1.18f, 0.18f, 3, array2[1], 0.22f); Add(list, "Center Is Lava", EmpressElevatorEventKind.DirectiveTrial, hostile: true, 8.8f, 1, 1.28f, 0.2f, 4, array2[4], 0.18f); Add(list, "Razor Lanes", EmpressElevatorEventKind.RollingOrbs, hostile: true, 7.2f, 4, 1.1f, 0.38f, 13, array2[0], 0.18f); Add(list, "Bowling Hate", EmpressElevatorEventKind.RollingOrbs, hostile: true, 7.6f, 5, 1.18f, 0.42f, 14, array2[1], 0.2f); Add(list, "Hallway Grinder", EmpressElevatorEventKind.RollingOrbs, hostile: true, 8f, 6, 1.26f, 0.46f, 15, array2[3], 0.22f); Add(list, "Pinball Funeral", EmpressElevatorEventKind.RollingOrbs, hostile: true, 8.4f, 7, 1.34f, 0.5f, 16, array2[2], 0.2f); Add(list, "Panic Ceiling", EmpressElevatorEventKind.CeilingPress, hostile: true, 7f, 1, 0.86f, 0.92f, 16, array2[4], 0.18f); Add(list, "Flatlined Roof", EmpressElevatorEventKind.CeilingPress, hostile: true, 7.6f, 1, 0.94f, 0.98f, 18, array2[0], 0.18f); Add(list, "Bad Compression", EmpressElevatorEventKind.CeilingPress, hostile: true, 8.2f, 1, 1.02f, 1.04f, 20, array2[3], 0.2f); Add(list, "Needle Carpet", EmpressElevatorEventKind.SpikeLattice, hostile: true, 7.1f, 7, 0.96f, 0.18f, 11, array2[0], 0.2f); Add(list, "Mean Porcupine", EmpressElevatorEventKind.SpikeLattice, hostile: true, 7.6f, 8, 1.04f, 0.2f, 12, array2[1], 0.18f); Add(list, "Floor Betrayal", EmpressElevatorEventKind.SpikeLattice, hostile: true, 8f, 9, 1.12f, 0.22f, 14, array2[2], 0.2f); Add(list, "Puncture Garden", EmpressElevatorEventKind.SpikeLattice, hostile: true, 8.5f, 10, 1.2f, 0.24f, 15, array2[4], 0.18f); Add(list, "Do Not Turn Around", EmpressElevatorEventKind.DoNotTurnAround, hostile: true, 9.4f, 4, 0.96f, 0.14f, 12, array2[3], 0.2f); Add(list, "Eyes Front", EmpressElevatorEventKind.DoNotTurnAround, hostile: true, 9.9f, 5, 1.04f, 0.16f, 13, array2[1], 0.18f); Add(list, "Face The Door", EmpressElevatorEventKind.DoNotTurnAround, hostile: true, 10.3f, 6, 1.12f, 0.18f, 14, array2[0], 0.2f); Add(list, "Wrong Way Darling", EmpressElevatorEventKind.DoNotTurnAround, hostile: true, 10.8f, 7, 1.2f, 0.2f, 16, array2[2], 0.2f); Add(list, "Eyeball Chase", EmpressElevatorEventKind.SeekerOrbs, hostile: true, 7.2f, 4, 0.94f, 0.22f, 10, array2[2], 0.22f); Add(list, "Red Followers", EmpressElevatorEventKind.SeekerOrbs, hostile: true, 7.7f, 5, 1.02f, 0.24f, 12, array2[0], 0.2f); Add(list, "Hungry Satellites", EmpressElevatorEventKind.SeekerOrbs, hostile: true, 8.1f, 6, 1.1f, 0.26f, 13, array2[3], 0.18f); Add(list, "Personal Space Denied", EmpressElevatorEventKind.SeekerOrbs, hostile: true, 8.6f, 7, 1.18f, 0.28f, 15, array2[4], 0.2f); Add(list, "Bounce House From Hell", EmpressElevatorEventKind.BounceBombs, hostile: true, 7.2f, 5, 1.08f, 0.22f, 11, array2[1], 0.2f); Add(list, "Bruise Parade", EmpressElevatorEventKind.BounceBombs, hostile: true, 7.7f, 6, 1.16f, 0.24f, 12, array2[0], 0.2f); Add(list, "Angry Marbles", EmpressElevatorEventKind.BounceBombs, hostile: true, 8.1f, 7, 1.24f, 0.26f, 14, array2[3], 0.18f); Add(list, "Pop Quiz Bombs", EmpressElevatorEventKind.BounceBombs, hostile: true, 8.6f, 8, 1.32f, 0.28f, 15, array2[2], 0.22f); Add(list, "Saw Etiquette", EmpressElevatorEventKind.SawSweep, hostile: true, 7.1f, 2, 0.98f, 0.72f, 15, array2[4], 0.18f); Add(list, "Blender Waltz", EmpressElevatorEventKind.SawSweep, hostile: true, 7.6f, 3, 1.06f, 0.78f, 16, array2[1], 0.18f); Add(list, "Spin Divorce", EmpressElevatorEventKind.SawSweep, hostile: true, 8f, 4, 1.14f, 0.84f, 17, array2[0], 0.18f); Add(list, "Razor Partner Dance", EmpressElevatorEventKind.SawSweep, hostile: true, 8.5f, 4, 1.22f, 0.9f, 18, array2[3], 0.2f); Add(list, "Meteor Rent", EmpressElevatorEventKind.MeteorDrop, hostile: true, 7.2f, 6, 1f, 0.2f, 13, array2[4], 0.2f); Add(list, "Ceiling Refund", EmpressElevatorEventKind.MeteorDrop, hostile: true, 7.7f, 8, 1.08f, 0.22f, 14, array2[1], 0.18f); Add(list, "Falling Problems", EmpressElevatorEventKind.MeteorDrop, hostile: true, 8.1f, 10, 1.16f, 0.24f, 15, array2[0], 0.22f); Add(list, "Angry Hail", EmpressElevatorEventKind.MeteorDrop, hostile: true, 8.7f, 12, 1.24f, 0.26f, 17, array2[2], 0.18f); Add(list, "Wall Tax", EmpressElevatorEventKind.PulseWall, hostile: true, 7f, 3, 0.98f, 0.3f, 12, array2[3], 0.2f); Add(list, "Closing Time", EmpressElevatorEventKind.PulseWall, hostile: true, 7.5f, 4, 1.06f, 0.32f, 13, array2[0], 0.2f); Add(list, "Hall Pass Denied", EmpressElevatorEventKind.PulseWall, hostile: true, 8f, 5, 1.14f, 0.34f, 14, array2[1], 0.18f); Add(list, "Compression Waves", EmpressElevatorEventKind.PulseWall, hostile: true, 8.5f, 6, 1.22f, 0.36f, 16, array2[4], 0.2f); Add(list, "Freeze Tag", EmpressElevatorEventKind.FreezeTag, hostile: true, 7f, 10, 0.84f, 0.16f, 9, array2[1], 0.22f); Add(list, "Statue Test", EmpressElevatorEventKind.FreezeTag, hostile: true, 7.5f, 12, 0.9f, 0.18f, 10, array2[3], 0.2f); Add(list, "Museum Punishment", EmpressElevatorEventKind.FreezeTag, hostile: true, 8f, 14, 0.98f, 0.2f, 12, array2[0], 0.22f); Add(list, "Stillness Debt", EmpressElevatorEventKind.FreezeTag, hostile: true, 8.6f, 16, 1.06f, 0.22f, 13, array2[2], 0.18f); Add(list, "Marathon Panic", EmpressElevatorEventKind.MarathonPanic, hostile: true, 7.1f, 6, 1.06f, 0.2f, 10, array2[4], 0.18f); Add(list, "Cardio Or Die", EmpressElevatorEventKind.MarathonPanic, hostile: true, 7.6f, 7, 1.14f, 0.22f, 11, array2[0], 0.2f); Add(list, "Treadmill Lawsuit", EmpressElevatorEventKind.MarathonPanic, hostile: true, 8.1f, 8, 1.22f, 0.24f, 12, array2[1], 0.18f); Add(list, "Keep Moving Darling", EmpressElevatorEventKind.MarathonPanic, hostile: true, 8.7f, 9, 1.3f, 0.26f, 14, array2[3], 0.2f); Add(list, "Gravity Flip", EmpressElevatorEventKind.GravityFlip, hostile: true, 7.2f, 6, 0.84f, 0.24f, 9, array2[3], 0.22f); Add(list, "Ceiling Date", EmpressElevatorEventKind.GravityFlip, hostile: true, 7.9f, 7, 0.92f, 0.26f, 10, array2[0], 0.2f); Add(list, "Reverse Elevator Law", EmpressElevatorEventKind.GravityFlip, hostile: true, 8.6f, 8, 1f, 0.28f, 12, array2[2], 0.18f); return list; } private static void Add(List<EmpressElevatorFloorDefinition> definitions, string name, EmpressElevatorEventKind kind, bool hostile, float duration, int count, float speed, float size, int power, Color primary, float secondaryBlend) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) Color secondaryColor = Color.Lerp(primary, hostile ? Color.white : Color.black, secondaryBlend); definitions.Add(new EmpressElevatorFloorDefinition(definitions.Count, name, kind, hostile, duration, count, speed, size, power, primary, secondaryColor)); } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("Empress.REPO.TheElevator", "Empress The Elevator", "1.0.0")] public sealed class EmpressTheElevatorPlugin : BaseUnityPlugin { internal const string PluginGuid = "Empress.REPO.TheElevator"; internal const string PluginName = "Empress The Elevator"; internal const string PluginVersion = "1.0.0"; internal const string ElevatorLevelName = "Level - The Elevator"; internal const float MoveDurationSeconds = 10f; internal const float DoorTransitionSeconds = 1.35f; internal const float DoorCueLeadSeconds = 0.56f; internal const float RollDurationSeconds = 1.6f; internal const float RewardBannerSeconds = 2.6f; private static Harmony? _harmony; private static ManualLogSource? _log; private static EmpressTheElevatorRuntime? _runtime; private static Level? _elevatorLevel; private static ConfigEntry<bool>? _forceElevatorLevel; private static Sprite? _loadingSpriteOrange; private static Sprite? _loadingSpritePink; private static Sprite? _loadingSpriteDark; private const byte SceneSyncEventCode = 180; private const byte FloorRevealEventCode = 181; private const byte FloorRewardEventCode = 182; private const byte FloorSkipEventCode = 183; private static bool _photonEventsHooked; private static readonly FieldRef<LevelContent, Level> LevelContentLevelRef = AccessTools.FieldRefAccess<LevelContent, Level>("_level"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentStartRoomsRef = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_startRooms"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesNormal1Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesNormal1"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesNormal2Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesNormal2"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesNormal3Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesNormal3"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesPassage1Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesPassage1"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesPassage2Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesPassage2"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesPassage3Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesPassage3"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesDeadEnd1Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesDeadEnd1"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesDeadEnd2Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesDeadEnd2"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesDeadEnd3Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesDeadEnd3"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesExtraction1Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesExtraction1"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesExtraction2Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesExtraction2"); private static readonly FieldRef<LevelContent, List<GameObject>> LevelContentModulesExtraction3Ref = AccessTools.FieldRefAccess<LevelContent, List<GameObject>>("_modulesExtraction3"); private static readonly FieldRef<LevelContent, GameObject?> LevelContentConnectObjectRef = AccessTools.FieldRefAccess<LevelContent, GameObject>("_connectObject"); private static readonly FieldRef<LevelContent, GameObject?> LevelContentBlockObjectRef = AccessTools.FieldRefAccess<LevelContent, GameObject>("_blockObject"); internal static ManualLogSource Log => _log; internal static Level ElevatorLevel => _elevatorLevel; internal static IReadOnlyList<EmpressElevatorFloorDefinition> FloorDefinitions { get; } = EmpressElevatorFloorCatalog.Build(); internal static string PluginFolderPath => Path.GetDirectoryName(typeof(EmpressTheElevatorPlugin).Assembly.Location) ?? Paths.PluginPath; private void Awake() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown _log = ((BaseUnityPlugin)this).Logger; _forceElevatorLevel = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ForceElevatorLevel", false, "Forces every real run level to load the Empress elevator level so you can test it without waiting for random selection."); EnsureElevatorLevelRegistered(); _harmony = new Harmony("Empress.REPO.TheElevator"); _harmony.PatchAll(typeof(EmpressTheElevatorPlugin).Assembly); EnsureRuntime(); } private void OnDestroy() { RemovePhotonEventHook(); } internal static bool IsElevatorLevel(Level? level) { return (Object)(object)level != (Object)null && ((Object)level).name == "Level - The Elevator"; } internal static bool ShouldForceElevatorLevel() { return _forceElevatorLevel?.Value ?? false; } internal static EmpressTheElevatorRuntime EnsureRuntime() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)_runtime)) { return _runtime; } GameObject val = new GameObject("Empress The Elevator Runtime"); Object.DontDestroyOnLoad((Object)(object)val); _runtime = val.AddComponent<EmpressTheElevatorRuntime>(); return _runtime; } internal static bool TryGetCabinRecoveryPose(out Vector3 position, out Quaternion rotation) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_runtime != (Object)null && _runtime.TryGetCabinRecoveryPose(out position, out rotation)) { return true; } position = default(Vector3); rotation = Quaternion.identity; return false; } private static void EnsureElevatorLevelRegistered() { //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)_elevatorLevel)) { Level val = ScriptableObject.CreateInstance<Level>(); ((Object)val).name = "Level - The Elevator"; val.ResourcePath = "Empress/TheElevator"; val.NarrativeName = "The Elevator"; val.ModuleAmount = 0; val.PassageMaxAmount = 0; val.HasEnemies = false; LevelValuables val2 = ScriptableObject.CreateInstance<LevelValuables>(); ((Object)val2).name = "Valuables - Empress Elevator"; val2.tiny = new List<PrefabRef>(); val2.small = new List<PrefabRef>(); val2.medium = new List<PrefabRef>(); val2.big = new List<PrefabRef>(); val2.wide = new List<PrefabRef>(); val2.tall = new List<PrefabRef>(); val2.veryTall = new List<PrefabRef>(); val.ValuablePresets = new List<LevelValuables> { val2 }; val.AmbiencePresets = new List<LevelAmbience>(); val.LoadingGraphic01 = GetOrCreateLoadingSpriteOrange(); val.LoadingGraphic02 = GetOrCreateLoadingSpritePink(); val.LoadingGraphic03 = GetOrCreateLoadingSpriteDark(); val.FogColor = new Color(0.03f, 0.03f, 0.05f); val.FogStartDistance = 0f; val.FogEndDistance = 40f; val.AmbientColor = new Color(0.23f, 0.22f, 0.28f); val.AmbientColorAdaptation = new Color(0.12f, 0.11f, 0.16f); val.ColorTemperature = -10f; val.ColorFilter = new Color(1f, 0.94f, 0.88f, 1f); val.BloomIntensity = 5.5f; val.BloomThreshold = 0.82f; val.VignetteColor = new Color(0.05f, 0.02f, 0.02f, 1f); val.VignetteIntensity = 0.28f; val.VignetteSmoothness = 0.76f; val.DiscordIcon = "level"; LevelContent val3 = ScriptableObject.CreateInstance<LevelContent>(); ((Object)val3).name = "Empress Elevator Level Content"; LevelContentLevelRef.Invoke(val3) = val; LevelContentStartRoomsRef.Invoke(val3) = new List<GameObject>(); LevelContentModulesNormal1Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesNormal2Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesNormal3Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesPassage1Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesPassage2Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesPassage3Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesDeadEnd1Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesDeadEnd2Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesDeadEnd3Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesExtraction1Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesExtraction2Ref.Invoke(val3) = new List<GameObject>(); LevelContentModulesExtraction3Ref.Invoke(val3) = new List<GameObject>(); LevelContentConnectObjectRef.Invoke(val3) = null; LevelContentBlockObjectRef.Invoke(val3) = null; Levels.RegisterLevel(val3); _elevatorLevel = val; } } internal static void EnsurePhotonEventHooked() { if (!_photonEventsHooked) { LoadBalancingClient networkingClient = PhotonNetwork.NetworkingClient; if (networkingClient != null) { networkingClient.EventReceived -= OnPhotonEvent; networkingClient.EventReceived += OnPhotonEvent; _photonEventsHooked = true; } } } internal static void RemovePhotonEventHook() { if (_photonEventsHooked) { LoadBalancingClient networkingClient = PhotonNetwork.NetworkingClient; if (networkingClient != null) { networkingClient.EventReceived -= OnPhotonEvent; } _photonEventsHooked = false; } } private static void OnPhotonEvent(EventData photonEvent) { switch (photonEvent.Code) { case 180: OnSceneSyncEvent(photonEvent); break; case 181: OnFloorRevealEvent(photonEvent); break; case 182: OnFloorRewardEvent(photonEvent); break; case 183: OnFloorSkipEvent(photonEvent); break; } } private static void OnSceneSyncEvent(EventData photonEvent) { if (!(photonEvent.CustomData is object[] array) || array.Length < 2) { return; } object obj = array[0]; if (obj is int) { int runToken = (int)obj; obj = array[1]; int runSeed = default(int); int num; if (obj is int) { runSeed = (int)obj; num = 1; } else { num = 0; } if (num != 0) { EnsureRuntime().ReceiveSceneSync(runToken, runSeed); } } } private static void OnFloorRevealEvent(EventData photonEvent) { if (!(photonEvent.CustomData is object[] array) || array.Length < 3) { return; } object obj = array[0]; if (!(obj is int)) { return; } int runToken = (int)obj; obj = array[1]; if (obj is int) { int floorNumber = (int)obj; obj = array[2]; int definitionIndex = default(int); int num; if (obj is int) { definitionIndex = (int)obj; num = 1; } else { num = 0; } if (num != 0) { EnsureRuntime().ReceiveFloorReveal(runToken, floorNumber, definitionIndex); } } } private static void OnFloorRewardEvent(EventData photonEvent) { if (!(photonEvent.CustomData is object[] array) || array.Length < 2) { return; } object obj = array[0]; if (obj is int) { int runToken = (int)obj; if (array[1] is string rewardText) { EnsureRuntime().ReceiveFloorReward(runToken, rewardText); } } } private static void OnFloorSkipEvent(EventData photonEvent) { if (!(photonEvent.CustomData is object[] array) || array.Length < 2) { return; } object obj = array[0]; if (!(obj is int)) { return; } int runToken = (int)obj; obj = array[1]; bool flag = default(bool); int num; if (obj is bool) { flag = (bool)obj; num = 1; } else { num = 0; } if (num != 0) { if (flag) { EnsureRuntime().ReceiveEmergencySkip(runToken); } else if (SemiFunc.IsMasterClientOrSingleplayer()) { BroadcastEmergencySkip(runToken); } } } internal static void RaiseSceneSync(int runToken, int runSeed) { EnsureRuntime().ReceiveSceneSync(runToken, runSeed); if (SemiFunc.IsMultiplayer() && PhotonNetwork.InRoom) { RaisePhotonEvent(180, new object[2] { runToken, runSeed }, (ReceiverGroup)0); } } internal static void RaiseFloorReveal(int runToken, int floorNumber, int definitionIndex) { EnsureRuntime().ReceiveFloorReveal(runToken, floorNumber, definitionIndex); if (SemiFunc.IsMultiplayer() && PhotonNetwork.InRoom) { RaisePhotonEvent(181, new object[3] { runToken, floorNumber, definitionIndex }, (ReceiverGroup)0); } } internal static void RaiseFloorReward(int runToken, string rewardText) { EnsureRuntime().ReceiveFloorReward(runToken, rewardText); if (SemiFunc.IsMultiplayer() && PhotonNetwork.InRoom) { RaisePhotonEvent(182, new object[2] { runToken, rewardText }, (ReceiverGroup)0); } } internal static void RequestEmergencySkip(int runToken) { if (SemiFunc.IsMasterClientOrSingleplayer()) { BroadcastEmergencySkip(runToken); } else if (SemiFunc.IsMultiplayer() && PhotonNetwork.InRoom) { RaisePhotonEvent(183, new object[2] { runToken, false }, (ReceiverGroup)2); } } private static void BroadcastEmergencySkip(int runToken) { EnsureRuntime().ReceiveEmergencySkip(runToken); if (SemiFunc.IsMultiplayer() && PhotonNetwork.InRoom) { RaisePhotonEvent(183, new object[2] { runToken, true }, (ReceiverGroup)0); } } private static void RaisePhotonEvent(byte eventCode, object[] payload, ReceiverGroup receivers) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) EnsurePhotonEventHooked(); RaiseEventOptions val = new RaiseEventOptions { Receivers = receivers }; PhotonNetwork.RaiseEvent(eventCode, (object)payload, val, SendOptions.SendReliable); } private static Sprite GetOrCreateLoadingSpriteOrange() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) return _loadingSpriteOrange ?? (_loadingSpriteOrange = CreateLoadingSprite(new Color(0.93f, 0.47f, 0.18f), new Color(0.18f, 0.07f, 0.03f))); } private static Sprite GetOrCreateLoadingSpritePink() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) return _loadingSpritePink ?? (_loadingSpritePink = CreateLoadingSprite(new Color(1f, 0.5f, 0.73f), new Color(0.14f, 0.05f, 0.08f))); } private static Sprite GetOrCreateLoadingSpriteDark() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) return _loadingSpriteDark ?? (_loadingSpriteDark = CreateLoadingSprite(new Color(0.22f, 0.24f, 0.32f), new Color(0.04f, 0.05f, 0.08f))); } private static Sprite CreateLoadingSprite(Color topColor, Color bottomColor) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_009d: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) Texture2D val = new Texture2D(32, 32, (TextureFormat)4, false); ((Texture)val).wrapMode = (TextureWrapMode)1; for (int i = 0; i < ((Texture)val).height; i++) { float num = (float)i / (float)(((Texture)val).height - 1); Color val2 = Color.Lerp(bottomColor, topColor, num); for (int j = 0; j < ((Texture)val).width; j++) { val.SetPixel(j, i, val2); } } val.Apply(false, false); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 32f); } } [HarmonyPatch(typeof(LevelGenerator), "Generate")] internal static class EmpressTheElevatorPatchLevelGeneratorGenerate { private static bool Prefix(LevelGenerator __instance, ref IEnumerator __result) { if (!EmpressTheElevatorPlugin.IsElevatorLevel(RunManager.instance?.levelCurrent)) { return true; } __result = EmpressTheElevatorPlugin.EnsureRuntime().GenerateElevatorLevel(__instance); return false; } } [HarmonyPatch(typeof(RunManager), "SetRunLevel")] internal static class EmpressTheElevatorPatchRunManagerSetRunLevel { private static void Postfix(RunManager __instance) { if (EmpressTheElevatorPlugin.ShouldForceElevatorLevel()) { __instance.levelCurrent = EmpressTheElevatorPlugin.ElevatorLevel; } } } [HarmonyPatch(typeof(LevelPoint), "NavMeshCheck")] internal static class EmpressTheElevatorPatchLevelPointNavMeshCheck { private static bool Prefix(ref IEnumerator __result) { if (!EmpressTheElevatorPlugin.IsElevatorLevel(RunManager.instance?.levelCurrent)) { return true; } __result = EmpressTheElevatorRuntime.EmptyCoroutine(); return false; } } [HarmonyPatch(typeof(EnvironmentDirector), "Setup")] internal static class EmpressTheElevatorPatchEnvironmentDirectorSetup { private static bool Prefix(EnvironmentDirector __instance) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) if (!EmpressTheElevatorPlugin.IsElevatorLevel(Object.op_Implicit((Object)(object)LevelGenerator.Instance) ? LevelGenerator.Instance.Level : null)) { return true; } RenderSettings.fogColor = LevelGenerator.Instance.Level.FogColor; RenderSettings.fogStartDistance = LevelGenerator.Instance.Level.FogStartDistance; RenderSettings.fogEndDistance = LevelGenerator.Instance.Level.FogEndDistance; if (!Object.op_Implicit((Object)(object)__instance.MainCamera)) { __instance.MainCamera = Camera.main; } if (Object.op_Implicit((Object)(object)__instance.MainCamera)) { __instance.MainCamera.backgroundColor = RenderSettings.fogColor; __instance.MainCamera.farClipPlane = RenderSettings.fogEndDistance + 1f; } __instance.DarkAdaptationLerp = 0.1f; __instance.SetupDone = true; return false; } } [HarmonyPatch(typeof(LoadingUI), "LevelAnimationStart")] internal static class EmpressTheElevatorPatchLoadingUiLevelAnimationStart { private static void Postfix(LoadingUI __instance) { if (EmpressTheElevatorPlugin.IsElevatorLevel(Object.op_Implicit((Object)(object)LevelGenerator.Instance) ? LevelGenerator.Instance.Level : null) && (Object)(object)__instance.levelNameText != (Object)null) { ((TMP_Text)__instance.levelNameText).text = "THE ELEVATOR"; } } } [HarmonyPatch(typeof(ItemManager), "TurnOffIconLights")] internal static class EmpressTheElevatorPatchItemManagerTurnOffIconLights { private static bool Prefix(ItemManager __instance, ref IEnumerator __result) { if (!EmpressTheElevatorPlugin.IsElevatorLevel(RunManager.instance?.levelCurrent)) { return true; } __result = SafeTurnOffIconLights(__instance); return false; } private static IEnumerator SafeTurnOffIconLights(ItemManager itemManager) { if ((Object)(object)itemManager.itemIconLights == (Object)null) { yield break; } if (SemiFunc.RunIsShop() || SemiFunc.MenuLevel()) { itemManager.itemIconLights.SetActive(false); yield break; } while ((Object)(object)LevelGenerator.Instance == (Object)null || !LevelGenerator.Instance.Generated) { yield return (object)new WaitForSeconds(0.2f); } if (SemiFunc.RunIsArena()) { itemManager.itemIconLights.SetActive(false); yield break; } while (true) { itemManager.spawnedItems.RemoveAll((ItemAttributes item) => (Object)(object)item == (Object)null); bool waitingOnIcons = false; foreach (ItemAttributes item2 in itemManager.spawnedItems) { if ((Object)(object)item2 != (Object)null && !item2.hasIcon) { waitingOnIcons = true; break; } } if (!waitingOnIcons) { break; } yield return (object)new WaitForSeconds(0.2f); } itemManager.itemIconLights.SetActive(false); } } [HarmonyPatch(typeof(PlayerDeathHead), "Update")] internal static class EmpressTheElevatorPatchPlayerDeathHeadUpdate { private static bool Prefix(PlayerDeathHead __instance) { //IL_00a7: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) if (!EmpressTheElevatorPlugin.IsElevatorLevel(RunManager.instance?.levelCurrent)) { return true; } if (!__instance.triggered) { return true; } if ((Object)(object)__instance.physGrabObject == (Object)null || (Object)(object)__instance.playerAvatar == (Object)null) { return false; } if (!SemiFunc.IsMasterClientOrSingleplayer()) { return true; } if ((Object)(object)__instance.roomVolumeCheck == (Object)null) { if (EmpressTheElevatorPlugin.TryGetCabinRecoveryPose(out var position, out var rotation)) { __instance.physGrabObject.Teleport(position, rotation); } return false; } if (__instance.roomVolumeCheck.CurrentRooms.Count > 0) { return true; } if (EmpressTheElevatorPlugin.TryGetCabinRecoveryPose(out var position2, out var rotation2)) { __instance.outsideLevelTimer = 0f; __instance.physGrabObject.Teleport(position2, rotation2); } return true; } } internal sealed class EmpressTheElevatorRuntime : MonoBehaviour { private const float CabinWidth = 10f; private const float CabinDepth = 8f; private const float CabinHeight = 5f; private const float CabinHazardMinX = -4.35f; private const float CabinHazardMaxX = 4.35f; private const float CabinHazardMinZ = -3.45f; private const float CabinHazardMaxZ = 3.45f; private const float ChamberDepth = 13f; private const float ChamberWidth = 12f; private const float ChamberHeight = 6f; private const float BarrierZ = 4.2f; private const float FrontDoorZ = 3.92f; private const float FloorThickness = 1f; private const float DamageTickInterval = 0.16f; private const float HealTickInterval = 1.25f; private const float EmergencySkipHoldSeconds = 10f; private const float RuleGraceSeconds = 4.5f; private const byte AudioXorKey = 90; private AudioSource? _movementLoopSource; private AudioSource? _oneShotSource; private AudioClip? _movementLoopClip; private AudioClip? _doorOpenClip; private bool _audioLoadRequested; private int _sceneHandle = -1; private EmpressElevatorSceneState? _scene; private bool _hasPendingSceneSync; private int _pendingRunToken; private int _pendingRunSeed; private readonly Dictionary<string, float> _effectCooldowns = new Dictionary<string, float>(StringComparer.Ordinal); private readonly Dictionary<string, Vector3> _ruleAnchors = new Dictionary<string, Vector3>(StringComparer.Ordinal); private readonly Dictionary<string, float> _ruleStillTimers = new Dictionary<string, float>(StringComparer.Ordinal); private float _skipHoldElapsed; private Font? _uiFont; private void Awake() { EnsureAudioSources(); RequestAudioLoad(); } private void Update() { //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Invalid comparison between Unknown and I4 if (!EmpressTheElevatorPlugin.IsElevatorLevel(RunManager.instance?.levelCurrent)) { EmpressTheElevatorPlugin.RemovePhotonEventHook(); } HandleSceneTransition(); UpdateAudioState(); if (_scene == null) { _skipHoldElapsed = 0f; ResetLocalPlayerEventEffects(); return; } UpdateDoorsAndHud(); UpdateEmergencyButtonPrompt(); UpdateActiveEvent(); if (!_scene.HostLoopStarted && Object.op_Implicit((Object)(object)_scene.Generator) && _scene.Generator.Generated && (Object)(object)GameDirector.instance != (Object)null && (int)GameDirector.instance.currentState == 2 && SemiFunc.IsMasterClientOrSingleplayer()) { _scene.HostLoopStarted = true; ((MonoBehaviour)this).StartCoroutine(HostFloorLoop()); } } private void OnDisable() { StopAudio(); ClearSceneState(); } private void EnsureAudioSources() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Expected O, but got Unknown if ((Object)(object)_movementLoopSource == (Object)null) { GameObject val = new GameObject("Empress Elevator Move Audio"); val.transform.SetParent(((Component)this).transform, false); _movementLoopSource = val.AddComponent<AudioSource>(); _movementLoopSource.loop = true; _movementLoopSource.playOnAwake = false; _movementLoopSource.spatialBlend = 0f; _movementLoopSource.volume = 0.45f; } if ((Object)(object)_oneShotSource == (Object)null) { GameObject val2 = new GameObject("Empress Elevator Cue Audio"); val2.transform.SetParent(((Component)this).transform, false); _oneShotSource = val2.AddComponent<AudioSource>(); _oneShotSource.loop = false; _oneShotSource.playOnAwake = false; _oneShotSource.spatialBlend = 0f; _oneShotSource.volume = 0.75f; } } private void RequestAudioLoad() { if (!_audioLoadRequested) { _audioLoadRequested = true; ((MonoBehaviour)this).StartCoroutine(LoadAudioClipCoroutine("move", delegate(AudioClip clip) { _movementLoopClip = clip; })); ((MonoBehaviour)this).StartCoroutine(LoadAudioClipCoroutine("Open", delegate(AudioClip clip) { _doorOpenClip = clip; })); } } private static string? ResolveAudioAssetPath(string fileName) { string text = Path.Combine(EmpressTheElevatorPlugin.PluginFolderPath, "Audio", fileName); if (File.Exists(text)) { return text; } string text2 = Path.Combine(EmpressTheElevatorPlugin.PluginFolderPath, fileName); if (File.Exists(text2)) { return text2; } return null; } private IEnumerator LoadAudioClipCoroutine(string assetStem, Action<AudioClip> onLoaded) { string resolvedPath = null; string xorPath = ResolveAudioAssetPath(assetStem + ".xorbin"); if (xorPath != null) { string cacheDirectory = Path.Combine(Paths.CachePath, "EmpressTheElevator"); Directory.CreateDirectory(cacheDirectory); string decodedPath = Path.Combine(cacheDirectory, assetStem + ".mp3"); try { byte[] encoded = File.ReadAllBytes(xorPath); for (int i = 0; i < encoded.Length; i++) { encoded[i] ^= 90; } File.WriteAllBytes(decodedPath, encoded); resolvedPath = decodedPath; } catch { resolvedPath = null; } } if (resolvedPath == null) { resolvedPath = ResolveAudioAssetPath(assetStem + ".mp3"); } if (string.IsNullOrEmpty(resolvedPath)) { yield break; } UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip("file:///" + resolvedPath.Replace("\\", "/"), (AudioType)13); try { yield return request.SendWebRequest(); if ((int)request.result == 1) { AudioClip clip = DownloadHandlerAudioClip.GetContent(request); if ((Object)(object)clip != (Object)null) { ((Object)clip).name = assetStem; onLoaded(clip); } } } finally { ((IDisposable)request)?.Dispose(); } } private void UpdateAudioState() { if (_scene == null || (Object)(object)_scene.Generator == (Object)null || !_scene.Generator.Generated) { StopAudio(); } else if (_scene.Phase == EmpressElevatorPhase.Moving && (Object)(object)_movementLoopClip != (Object)null && (Object)(object)_movementLoopSource != (Object)null) { if ((Object)(object)_movementLoopSource.clip != (Object)(object)_movementLoopClip) { _movementLoopSource.clip = _movementLoopClip; } if (!_movementLoopSource.isPlaying) { _movementLoopSource.Play(); } } else if ((Object)(object)_movementLoopSource != (Object)null && _movementLoopSource.isPlaying) { _movementLoopSource.Stop(); } } private void StopAudio() { if ((Object)(object)_movementLoopSource != (Object)null && _movementLoopSource.isPlaying) { _movementLoopSource.Stop(); } } private void PlayDoorOpenCue() { if (!((Object)(object)_doorOpenClip == (Object)null) && !((Object)(object)_oneShotSource == (Object)null)) { _oneShotSource.PlayOneShot(_doorOpenClip, 0.8f); } } internal bool TryGetCabinRecoveryPose(out Vector3 position, out Quaternion rotation) { //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) if (_scene != null && (Object)(object)_scene.CabinRoot != (Object)null) { position = _scene.CabinRoot.TransformPoint(new Vector3(0f, 0.9f, -1f)); rotation = Quaternion.LookRotation(_scene.CabinRoot.forward, Vector3.up); return true; } position = default(Vector3); rotation = Quaternion.identity; return false; } internal void ScheduleDeathHeadRecovery(string steamId, float delaySeconds) { if (!string.IsNullOrWhiteSpace(steamId)) { ((MonoBehaviour)this).StartCoroutine(RecoverDeathHeadToCabin(steamId, delaySeconds)); } } private IEnumerator RecoverDeathHeadToCabin(string steamId, float delaySeconds) { if (delaySeconds > 0f) { yield return (object)new WaitForSeconds(delaySeconds); } PlayerAvatar player = FindPlayerBySteamId(steamId); PlayerDeathHead deathHead = (((Object)(object)player != (Object)null) ? player.playerDeathHead : null); if (!((Object)(object)deathHead == (Object)null) && !((Object)(object)deathHead.physGrabObject == (Object)null) && TryGetCabinRecoveryPose(out var position, out var rotation)) { deathHead.physGrabObject.Teleport(position, rotation); deathHead.triggeredPosition = position; deathHead.triggeredRotation = rotation; deathHead.outsideLevelTimer = 0f; } } internal static IEnumerator EmptyCoroutine() { yield break; } internal IEnumerator GenerateElevatorLevel(LevelGenerator generator) { EmpressTheElevatorPlugin.EnsurePhotonEventHooked(); yield return (object)new WaitForSeconds(0.2f); if (!SemiFunc.IsMultiplayer()) { generator.AllPlayersReady = true; } while (!generator.AllPlayersReady) { generator.State = (LevelState)1; yield return (object)new WaitForSeconds(0.1f); } yield return (object)new WaitForSeconds(0.2f); generator.Level = RunManager.instance.levelCurrent; RunManager.instance.levelPrevious = generator.Level; generator.Generated = false; generator.EnemyReady = true; generator.ModulesSpawned = 0; generator.playerSpawned = 0; generator.LevelPathPoints = new List<LevelPoint>(); generator.LevelPathTruck = null; if (Object.op_Implicit((Object)(object)ValuableDirector.instance)) { ValuableDirector.instance.setupComplete = true; ValuableDirector.instance.valuablesSpawned = true; } if (Object.op_Implicit((Object)(object)RoundDirector.instance)) { RoundDirector.instance.extractionPoints = 0; RoundDirector.instance.extractionPointsCompleted = 0; RoundDirector.instance.extractionPointList.Clear(); } generator.State = (LevelState)3; _scene = BuildElevatorScene(generator); EmpressTheElevatorRuntime empressTheElevatorRuntime = this; Scene activeScene = SceneManager.GetActiveScene(); empressTheElevatorRuntime._sceneHandle = ((Scene)(ref activeScene)).handle; if (SemiFunc.IsMasterClientOrSingleplayer()) { EmpressTheElevatorPlugin.RaiseSceneSync(_scene.RunToken, _scene.RunSeed); } yield return (object)new WaitForSeconds(0.2f); if (Object.op_Implicit((Object)(object)EnvironmentDirector.Instance)) { EnvironmentDirector.Instance.Setup(); } if (Object.op_Implicit((Object)(object)PostProcessing.Instance)) { PostProcessing.Instance.Setup(); } if (Object.op_Implicit((Object)(object)LevelMusic.instance)) { LevelMusic.instance.Setup(); } if (Object.op_Implicit((Object)(object)ConstantMusic.instance)) { ConstantMusic.instance.Setup(); } if (SemiFunc.IsMasterClientOrSingleplayer()) { generator.NavMeshSetup(); yield return null; while ((Object)(object)GameDirector.instance == (Object)null || GameDirector.instance.PlayerList.Count == 0) { generator.State = (LevelState)12; yield return (object)new WaitForSeconds(0.1f); } generator.PlayerSpawn(); yield return null; while (generator.playerSpawned < GameDirector.instance.PlayerList.Count) { generator.State = (LevelState)13; yield return (object)new WaitForSeconds(0.1f); } if (SemiFunc.IsMultiplayer()) { generator.PhotonView.RPC("GenerateDone", (RpcTarget)3, Array.Empty<object>()); } else { generator.GenerateDone(default(PhotonMessageInfo)); } } else { while (!generator.Generated) { yield return (object)new WaitForSeconds(0.1f); } } _scene.Phase = EmpressElevatorPhase.Moving; _scene.PhaseStartedAt = Time.time; _scene.PendingFloorNumber = 1; _scene.CurrentFloorNumber = 1; _scene.StatusText.text = "Ascending"; _scene.FloorText.text = "FLOOR 001"; _scene.EventNameText.text = "WAITING"; } internal void ReceiveSceneSync(int runToken, int runSeed) { _hasPendingSceneSync = true; _pendingRunToken = runToken; _pendingRunSeed = runSeed; if (_scene != null) { _scene.RunToken = runToken; _scene.RunSeed = runSeed; } } internal void ReceiveFloorReveal(int runToken, int floorNumber, int definitionIndex) { if (_scene != null && _scene.RunToken == runToken && definitionIndex >= 0 && definitionIndex < EmpressTheElevatorPlugin.FloorDefinitions.Count) { BeginFloorReveal(floorNumber, EmpressTheElevatorPlugin.FloorDefinitions[definitionIndex]); } } internal void ReceiveFloorReward(int runToken, string rewardText) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) if (_scene != null && _scene.RunToken == runToken) { _scene.RewardText.text = rewardText; ((Graphic)_scene.RewardText).color = new Color(1f, 0.93f, 0.54f); _scene.RewardTextUntil = Time.time + 2.6f; } } internal void ReceiveEmergencySkip(int runToken) { //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) if (_scene != null && _scene.RunToken == runToken && _scene.Phase != 0 && !_scene.LevelExitRequested) { _scene.LevelExitRequested = true; _scene.SkipRewardForFloor = true; _skipHoldElapsed = 0f; _scene.StatusText.text = "Emergency Exit"; ((Graphic)_scene.StatusText).color = new Color(1f, 0.38f, 0.32f); _scene.EventNameText.text = "Cashing out and heading to the next stop"; _scene.RewardText.text = "Emergency button hit. Taking your winnings to the truck."; ((Graphic)_scene.RewardText).color = new Color(1f, 0.88f, 0.58f); _scene.RewardTextUntil = Time.time + 2.6f; ClearActiveEventRoot(); _scene.ActiveDefinition = null; _scene.EventVisualsBuilt = false; _scene.Phase = EmpressElevatorPhase.Moving; _scene.PhaseStartedAt = Time.time; if (SemiFunc.IsMasterClientOrSingleplayer()) { ((MonoBehaviour)this).StartCoroutine(ExitElevatorLevelEarly(runToken)); } } } private void HandleSceneTransition() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).handle != _sceneHandle) { _sceneHandle = ((Scene)(ref activeScene)).handle; ClearSceneState(); } } private void ClearSceneState() { _effectCooldowns.Clear(); _ruleAnchors.Clear(); _ruleStillTimers.Clear(); _skipHoldElapsed = 0f; StopAudio(); ResetLocalPlayerEventEffects(); EmpressElevatorSceneState scene = _scene; if (scene != null) { Canvas hudCanvas = scene.HudCanvas; if (Object.op_Implicit((Object)(object)hudCanvas)) { Object.Destroy((Object)(object)((Component)hudCanvas).gameObject); } Transform activeEventRoot = scene.ActiveEventRoot; if (Object.op_Implicit((Object)(object)activeEventRoot)) { Object.Destroy((Object)(object)((Component)activeEventRoot).gameObject); } Transform activeCabinEventRoot = scene.ActiveCabinEventRoot; if (Object.op_Implicit((Object)(object)activeCabinEventRoot)) { Object.Destroy((Object)(object)((Component)activeCabinEventRoot).gameObject); } } _scene = null; } private IEnumerator HostFloorLoop() { while (_scene != null && (!Object.op_Implicit((Object)(object)_scene.Generator) || !_scene.Generator.Generated || (Object)(object)GameDirector.instance == (Object)null || (int)GameDirector.instance.currentState != 2)) { yield return (object)new WaitForSeconds(0.2f); } while (_scene != null && Object.op_Implicit((Object)(object)_scene.Generator) && _scene.Generator.Generated && !_scene.LevelExitRequested) { float moveStartedAt = Time.time; _scene.Phase = EmpressElevatorPhase.Moving; _scene.PhaseStartedAt = moveStartedAt; while (_scene != null && !_scene.LevelExitRequested && _scene.Phase == EmpressElevatorPhase.Moving && Time.time - moveStartedAt < 10f) { yield return null; } if (_scene == null || _scene.LevelExitRequested) { break; } bool hostile = Random.value >= 0.5f; EmpressTheElevatorPlugin.RaiseFloorReveal(definitionIndex: TakeNextDefinitionIndex(hostile), floorNumber: _scene.PendingFloorNumber, runToken: _scene.RunToken); while (_scene != null && _scene.Phase != 0) { yield return null; } } } private int TakeNextDefinitionIndex(bool hostile) { if (_scene == null) { return 0; } List<int> list = (hostile ? _scene.ShuffledBadDefinitions : _scene.ShuffledGoodDefinitions); if (list.Count == 0) { list = new List<int>(); for (int i = 0; i < EmpressTheElevatorPlugin.FloorDefinitions.Count; i++) { if (EmpressTheElevatorPlugin.FloorDefinitions[i].Hostile == hostile) { list.Add(i); } } Random random = new Random(_scene.RunSeed); for (int num = list.Count - 1; num > 0; num--) { int num2 = random.Next(num + 1); List<int> list2 = list; int index = num; List<int> list3 = list; int index2 = num2; int value = list[num2]; int value2 = list[num]; list2[index] = value; list3[index2] = value2; } _scene.RunSeed = _scene.RunSeed * 1664525 + 1013904223; if (hostile) { _scene.ShuffledBadDefinitions = list; } else { _scene.ShuffledGoodDefinitions = list; } } int result = list[0]; list.RemoveAt(0); return result; } private IEnumerator ExitElevatorLevelEarly(int runToken) { yield return (object)new WaitForSeconds(1.15f); if (_scene != null && _scene.RunToken == runToken && !((Object)(object)RunManager.instance == (Object)null)) { RunManager.instance.ChangeLevel(true, false, (ChangeLevelType)0); } } private EmpressElevatorSceneState BuildElevatorScene(LevelGenerator generator) { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_00fb: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Expected O, but got Unknown //IL_01d2: 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_0206: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Expected O, but got Unknown //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Expected O, but got Unknown //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_030d: 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_0347: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0644: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_06ab: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_070d: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_0747: Unknown result type (might be due to invalid IL or missing references) //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0795: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_08bc: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_097d: Unknown result type (might be due to invalid IL or missing references) //IL_092d: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_09d2: Unknown result type (might be due to invalid IL or missing references) //IL_09dc: Unknown result type (might be due to invalid IL or missing references) //IL_0a65: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b35: Unknown result type (might be due to invalid IL or missing references) //IL_0b3a: Unknown result type (might be due to invalid IL or missing references) //IL_0b50: Unknown result type (might be due to invalid IL or missing references) //IL_0b55: Unknown result type (might be due to invalid IL or missing references) //IL_0b6b: Unknown result type (might be due to invalid IL or missing references) //IL_0b70: Unknown result type (might be due to invalid IL or missing references) //IL_0b86: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba1: Unknown result type (might be due to invalid IL or missing references) //IL_0ba6: Unknown result type (might be due to invalid IL or missing references) //IL_0bbc: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd6: Unknown result type (might be due to invalid IL or missing references) //IL_0bdb: Unknown result type (might be due to invalid IL or missing references) //IL_0be3: Unknown result type (might be due to invalid IL or missing references) //IL_0bea: Expected O, but got Unknown //IL_0c06: Unknown result type (might be due to invalid IL or missing references) //IL_0c15: Unknown result type (might be due to invalid IL or missing references) //IL_0c1a: Unknown result type (might be due to invalid IL or missing references) //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) //IL_0c59: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0cad: Unknown result type (might be due to invalid IL or missing references) //IL_0cd7: Unknown result type (might be due to invalid IL or missing references) //IL_0d01: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)generator.LevelParent)) { for (int num = generator.LevelParent.transform.childCount - 1; num >= 0; num--) { Object.Destroy((Object)(object)((Component)generator.LevelParent.transform.GetChild(num)).gameObject); } } EmpressElevatorSceneState empressElevatorSceneState = new EmpressElevatorSceneState(); int num2 = (int)DateTime.UtcNow.Ticks; Scene activeScene = SceneManager.GetActiveScene(); empressElevatorSceneState.RunToken = num2 ^ ((Scene)(ref activeScene)).handle ^ Random.Range(1024, int.MaxValue); empressElevatorSceneState.RunSeed = (int)DateTime.UtcNow.Ticks ^ 0x5EED123; empressElevatorSceneState.Generator = generator; EmpressElevatorSceneState empressElevatorSceneState2 = empressElevatorSceneState; if (SemiFunc.IsMultiplayer() && !SemiFunc.IsMasterClientOrSingleplayer() && _hasPendingSceneSync) { empressElevatorSceneState2.RunToken = _pendingRunToken; empressElevatorSceneState2.RunSeed = _pendingRunSeed; } GameObject val = new GameObject("Empress Elevator Root"); val.transform.SetParent(generator.LevelParent.transform, false); empressElevatorSceneState2.LevelRoot = val.transform; GameObject val2 = new GameObject("Empress Elevator Module"); val2.transform.SetParent(val.transform, false); PhotonView val3 = val2.AddComponent<PhotonView>(); val3.ObservedComponents = new List<Component>(); Module val4 = val2.AddComponent<Module>(); val4.SetAllChecklist(); val4.SetupDone = true; val4.StartRoom = true; val4.GridX = 0; val4.GridY = 0; val2.AddComponent<StartRoom>(); GameObject val5 = new GameObject("Elevator Room Volume"); val5.transform.SetParent(val2.transform, false); RoomVolume val6 = val5.AddComponent<RoomVolume>(); BoxCollider val7 = val5.AddComponent<BoxCollider>(); ((Collider)val7).isTrigger = true; val7.size = new Vector3(16f, 8f, 25f); val7.center = new Vector3(0f, 2.6999998f, 4.5499997f); empressElevatorSceneState2.RoomVolume = val6; GameObject val8 = new GameObject("Elevator Cabin"); val8.transform.SetParent(val2.transform, false); empressElevatorSceneState2.CabinRoot = val8.transform; GameObject val9 = new GameObject("Event Chamber"); val9.transform.SetParent(val2.transform, false); val9.transform.localPosition = new Vector3(0f, 0f, 11.5f); empressElevatorSceneState2.ChamberRoot = val9.transform; CreateBox(val8.transform, "Cabin Floor", new Vector3(0f, -0.5f, 0f), new Vector3(10f, 1f, 8f), new Color(0.12f, 0.12f, 0.13f)); CreateBox(val8.transform, "Cabin Ceiling", new Vector3(0f, 5.5f, 0f), new Vector3(10f, 1f, 8f), new Color(0.18f, 0.15f, 0.12f)); CreateBox(val8.transform, "Cabin Left Wall", new Vector3(-5.2f, 2.5f, 0f), new Vector3(0.4f, 5f, 8f), new Color(0.33f, 0.24f, 0.19f)); CreateBox(val8.transform, "Cabin Right Wall", new Vector3(5.2f, 2.5f, 0f), new Vector3(0.4f, 5f, 8f), new Color(0.33f, 0.24f, 0.19f)); CreateBox(val8.transform, "Cabin Back Wall", new Vector3(0f, 2.5f, -4.2f), new Vector3(10f, 5f, 0.4f), new Color(0.28f, 0.19f, 0.16f)); CreateBox(val8.transform, "Cabin Door Header", new Vector3(0f, 4.5f, 3.92f), new Vector3(10f, 1f, 0.45f), new Color(0.36f, 0.18f, 0.08f)); CreateBox(val8.transform, "Cabin Door Frame Left", new Vector3(-4.45f, 2.3f, 3.92f), new Vector3(1.1f, 4f, 0.45f), new Color(0.36f, 0.18f, 0.08f)); CreateBox(val8.transform, "Cabin Door Frame Right", new Vector3(4.45f, 2.3f, 3.92f), new Vector3(1.1f, 4f, 0.45f), new Color(0.36f, 0.18f, 0.08f)); float num3 = 4.58f; float num4 = num3 * 0.5f - 0.03f; empressElevatorSceneState2.DoorLeft = CreateBox(val8.transform, "Door Left", new Vector3(-1.95f, num4, 3.94f), new Vector3(3.9f, num3, 0.18f), new Color(0.9f, 0.47f, 0.19f)).transform; empressElevatorSceneState2.DoorRight = CreateBox(val8.transform, "Door Right", new Vector3(1.95f, num4, 3.94f), new Vector3(3.9f, num3, 0.18f), new Color(0.9f, 0.47f, 0.19f)).transform; empressElevatorSceneState2.DoorLeftClosedLocal = empressElevatorSceneState2.DoorLeft.localPosition; empressElevatorSceneState2.DoorRightClosedLocal = empressElevatorSceneState2.DoorRight.localPosition; empressElevatorSceneState2.DoorLeftOpenLocal = new Vector3(-5.85f, empressElevatorSceneState2.DoorLeftClosedLocal.y, empressElevatorSceneState2.DoorLeftClosedLocal.z); empressElevatorSceneState2.DoorRightOpenLocal = new Vector3(5.85f, empressElevatorSceneState2.DoorRightClosedLocal.y, empressElevatorSceneState2.DoorRightClosedLocal.z); GameObject val10 = CreateBox(val8.transform, "Empress Barrier", new Vector3(0f, 2.5f, 4.2f), new Vector3(8.8f, 4.4f, 0.12f), Color.clear); empressElevatorSceneState2.BarrierCollider = val10.GetComponent<BoxCollider>(); MeshRenderer val11 = default(MeshRenderer); if (val10.TryGetComponent<MeshRenderer>(ref val11)) { ((Renderer)val11).enabled = false; } CreateBox(val9.transform, "Chamber Floor", new Vector3(0f, -0.5f, 0f), new Vector3(12f, 1f, 13f), new Color(0.09f, 0.09f, 0.12f)); CreateBox(val9.transform, "Chamber Ceiling", new Vector3(0f, 6.5f, 0f), new Vector3(12f, 1f, 13f), new Color(0.09f, 0.06f, 0.09f)); CreateBox(val9.transform, "Chamber Left Wall", new Vector3(-6.2f, 3f, 0f), new Vector3(0.4f, 6f, 13f), new Color(0.11f, 0.08f, 0.15f)); CreateBox(val9.transform, "Chamber Right Wall", new Vector3(6.2f, 3f, 0f), new Vector3(0.4f, 6f, 13f), new Color(0.11f, 0.08f, 0.15f)); CreateBox(val9.transform, "Chamber Back Wall", new Vector3(0f, 3f, 6.7f), new Vector3(12f, 6f, 0.4f), new Color(0.11f, 0.08f, 0.15f)); CreateBox(val9.transform, "Chamber Accent Rail", new Vector3(0f, 0.12f, -3.25f), new Vector3(10f, 0.1f, 0.3f), new Color(0.88f, 0.46f, 0.19f)); empressElevatorSceneState2.EventAnchor = new GameObject("Empress Event Anchor").transform; empressElevatorSceneState2.EventAnchor.SetParent(val9.transform, false); empressElevatorSceneState2.EventAnchor.localPosition = new Vector3(0f, 0f, 0.5f); BuildDecisionBoard(empressElevatorSceneState2); GameObject val12 = CreateBox(val8.transform, "Emergency Plate", new Vector3(4.84f, 1.6f, -0.9f), new Vector3(0.08f, 0.65f, 0.9f), new Color(0.14f, 0.04f, 0.04f)); MeshRenderer val13 = default(MeshRenderer); if (val12.TryGetComponent<MeshRenderer>(ref val13)) { ((Renderer)val13).material.EnableKeyword("_EMISSION"); ((Renderer)val13).material.SetColor("_EmissionColor", new Color(0.25f, 0.03f, 0.03f)); } empressElevatorSceneState2.SkipButton = CreateBox(val8.transform, "Emergency Skip Button", new Vector3(4.7f, 1.6f, -0.9f), new Vector3(0.22f, 0.22f, 0.36f), new Color(0.95f, 0.12f, 0.1f)).transform; MeshRenderer val14 = default(MeshRenderer); if (((Component)empressElevatorSceneState2.SkipButton).TryGetComponent<MeshRenderer>(ref val14)) { ((Renderer)val14).material.EnableKeyword("_EMISSION"); ((Renderer)val14).material.SetColor("_EmissionColor", new Color(1f, 0.1f, 0.08f) * 1.6f); } GameObject val15 = CreateBox(val8.transform, "Emergency Skip Trigger", new Vector3(4.2799997f, 1.6f, -0.9f), new Vector3(1.25f, 0.92f, 1.28f), Color.clear); Collider val16 = default(Collider); if (val15.TryGetComponent<Collider>(ref val16)) { val16.isTrigger = true; } empressElevatorSceneState2.SkipButtonTrigger = val15.transform; CreateLight(val8.transform, new Vector3(-2.4f, 4.3f, -1.5f), new Color(1f, 0.67f, 0.36f), 2.1f, 12f, empressElevatorSceneState2.CabinLights); CreateLight(val8.transform, new Vector3(2.4f, 4.3f, -1.5f), new Color(1f, 0.67f, 0.36f), 2.1f, 12f, empressElevatorSceneState2.CabinLights); CreateLight(val9.transform, new Vector3(0f, 5.4f, 0f), new Color(0.95f, 0.4f, 0.65f), 1.4f, 18f, empressElevatorSceneState2.CabinLights); Vector3[] array = (Vector3[])(object)new Vector3[6] { new Vector3(-2.4f, 0.2f, -2.2f), new Vector3(0f, 0.2f, -2.2f), new Vector3(2.4f, 0.2f, -2.2f), new Vector3(-2.4f, 0.2f, 0.4f), new Vector3(0f, 0.2f, 0.4f), new Vector3(2.4f, 0.2f, 0.4f) }; Vector3[] array2 = array; foreach (Vector3 localPosition in array2) { GameObject val17 = new GameObject("Elevator Spawn"); val17.transform.SetParent(val8.transform, false); val17.transform.localPosition = localPosition; val17.transform.localRotation = Quaternion.LookRotation(Vector3.forward, Vector3.up); val17.AddComponent<SpawnPoint>(); } CreateLevelPoint(val2.transform, val6, generator, new Vector3(0f, 0.15f, -2.6f), truck: true, empressElevatorSceneState2.LevelPoints); CreateLevelPoint(val2.transform, val6, generator, new Vector3(0f, 0.15f, -0.5f), truck: false, empressElevatorSceneState2.LevelPoints); CreateLevelPoint(val2.transform, val6, generator, new Vector3(0f, 0.15f, 2.6f), truck: false, empressElevatorSceneState2.LevelPoints); CreateLevelPoint(val2.transform, val6, generator, new Vector3(0f, 0.15f, 7.5f), truck: false, empressElevatorSceneState2.LevelPoints); CreateLevelPoint(val2.transform, val6, generator, new Vector3(0f, 0.15f, 11.8f), truck: false, empressElevatorSceneState2.LevelPoints); for (int j = 0; j < empressElevatorSceneState2.LevelPoints.Count; j++) { empressElevatorSceneState2.LevelPoints[j].ConnectedPoints = new List<LevelPoint>(); if (j > 0) { empressElevatorSceneState2.LevelPoints[j].ConnectedPoints.Add(empressElevatorSceneState2.LevelPoints[j - 1]); } if (j + 1 < empressElevatorSceneState2.LevelPoints.Count) { empressElevatorSceneState2.LevelPoints[j].ConnectedPoints.Add(empressElevatorSceneState2.LevelPoints[j + 1]); } empressElevatorSceneState2.LevelPoints[j].Room = val6; empressElevatorSceneState2.LevelPoints[j].ModuleConnect = true; } empressElevatorSceneState2.HudCanvas = BuildHudCanvas(empressElevatorSceneState2); return empressElevatorSceneState2; } private static LevelPoint CreateLevelPoint(Transform parent, RoomVolume roomVolume, LevelGenerator generator, Vector3 localPosition, bool truck, List<LevelPoint> sink) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0031: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Empress Level Point"); val.layer = LayerMask.NameToLayer("Other"); val.transform.SetParent(parent, false); val.transform.localPosition = localPosition; SphereCollider val2 = val.AddComponent<SphereCollider>(); ((Collider)val2).isTrigger = true; val2.radius = 0.35f; LevelPoint val3 = val.AddComponent<LevelPoint>(); val3.ConnectedPoints = new List<LevelPoint>(); val3.Room = roomVolume; val3.Truck = truck; val3.ModuleConnect = true; val3.inStartRoom = true; if (generator.LevelPathPoints == null) { generator.LevelPathPoints = new List<LevelPoint>(); } sink.Add(val3); return val3; } private Canvas BuildHudCanvas(EmpressElevatorSceneState scene) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Expected O, but got Unknown //IL_02f9: 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_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) Font font = _uiFont ?? (_uiFont = Resources.GetBuiltinResource<Font>("Arial.ttf")); GameObject val = new GameObject("Empress Elevator HUD"); val.transform.SetParent(((Component)this).transform, false); Canvas val2 = val.AddComponent<Canvas>(); val2.renderMode = (RenderMode)0; val2.sortingOrder = 700; val.AddComponent<CanvasScaler>(); val.AddComponent<GraphicRaycaster>(); GameObject val3 = new GameObject("Header"); val3.transform.SetParent(val.transform, false); Image val4 = val3.AddComponent<Image>(); ((Graphic)val4).color = new Color(0.04f, 0.04f, 0.06f, 0.78f); RectTransform component = val3.GetComponent<RectTransform>(); component.anchorMin = new Vector2(0.5f, 1f); component.anchorMax = new Vector2(0.5f, 1f); component.pivot = new Vector2(0.5f, 1f); component.sizeDelta = new Vector2(560f, 92f); component.anchoredPosition = new Vector2(0f, -24f); scene.FloorText = CreateHudText(val3.transform, font, 34, (FontStyle)1, (TextAnchor)1, new Color(1f, 0.82f, 0.58f), new Vector2(520f, 36f), new Vector2(0f, -8f)); scene.StatusText = CreateHudText(val3.transform, font, 18, (FontStyle)1, (TextAnchor)4, new Color(1f, 0.62f, 0.34f), new Vector2(520f, 24f), new Vector2(0f, -40f)); scene.EventNameText = CreateHudText(val3.transform, font, 16, (FontStyle)0, (TextAnchor)4, new Color(0.92f, 0.92f, 0.92f), new Vector2(520f, 24f), new Vector2(0f, -64f)); scene.RewardText = CreateHudText(val.transform, font, 20, (FontStyle)1, (TextAnchor)4, new Color(1f, 0.93f, 0.54f), new Vector2(700f, 28f), new Vector2(0f, -132f)); RectTransform rectTransform = ((Graphic)scene.RewardText).rectTransform; rectTransform.anchorMin = new Vector2(0.5f, 1f); rectTransform.anchorMax = new Vector2(0.5f, 1f); rectTransform.pivot = new Vector2(0.5f, 1f); scene.RewardText.text = string.Empty; ((Behaviour)scene.RewardText).enabled = false; GameObject val5 = new GameObject("Emergency Prompt"); val5.transform.SetParent(val.transform, false); Image val6 = val5.AddComponent<Image>(); ((Graphic)val6).color = new Color(0.05f, 0.05f, 0.06f, 0.78f); RectTransform component2 = val5.GetComponent<RectTransform>(); component2.anchorMin = new Vector2(0.5f, 0f); component2.anchorMax = new Vector2(0.5f, 0f); component2.pivot = new Vector2(0.5f, 0f); component2.sizeDelta = new Vector2(420f, 34f); component2.anchoredPosition = new Vector2(0f, 24f); scene.PromptText = CreateHudText(val5.transform, font, 16, (FontStyle)1, (TextAnchor)4, new Color(1f, 0.74f, 0.68f), new Vector2(388f, 28f), new Vector2(0f, -3f)); scene.PromptText.text = string.Empty; ((Behaviour)val6).enabled = false; scene.PromptBackground = val6; return val2; } private static Text CreateHudText(Transform parent, Font font, int fontSize, FontStyle fontStyle, TextAnchor anchor, Color color, Vector2 size, Vector2 position) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_0095: 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) GameObject val = new GameObject("Text"); val.transform.SetParent(parent, false); Text val2 = val.AddComponent<Text>(); val2.font = font; val2.fontSize = fontSize; val2.fontStyle = fontStyle; val2.alignment = anchor; ((Graphic)val2).color = color; RectTransform component = val.GetComponent<RectTransform>(); component.anchorMin = new Vector2(0.5f, 1f); component.anchorMax = new Vector2(0.5f, 1f); component.pivot = new Vector2(0.5f, 1f); component.sizeDelta = size; component.anchoredPosition = position; return val2; } private static GameObject CreateBox(Transform parent, string name, Vector3 localPosition, Vector3 localScale, Color color) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.CreatePrimitive((PrimitiveType)3); ((Object)val).name = name; val.transform.SetParent(parent, false); val.transform.localPosition = localPosition; val.transform.localRotation = Quaternion.identity; val.transform.localScale = localScale; MeshRenderer val2 = default(MeshRenderer); if (val.TryGetComponent<MeshRenderer>(ref val2)) { Material material = ((Renderer)val2).material; material.color = color; if (color.a <= 0f) { ((Renderer)val2).enabled = false; } } return val; } private static void CreateLight(Transform parent, Vector3 localPosition, Color color, float intensity, float range, List<Light> sink) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Empress Light"); val