using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using Photon.Pun; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; using Zorro.Core; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("EndingSkip")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("EndingSkip")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("a12289a6-21bc-4caa-86b1-86c7fe588193")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [BepInPlugin("sapphire009.endingskip", "EndingSkip", "0.0.1")] public sealed class EndingSkip : BaseUnityPlugin { public const string PluginGuid = "sapphire009.endingskip"; public const string PluginName = "EndingSkip"; public const string PluginVersion = "0.0.1"; public const string Developer = "Sapphire009"; private bool cinematicActive; private bool airportLoadRequested; private bool previousSpaceDown; private bool previousEscapeDown; private void Awake() { ReadInput(out previousSpaceDown, out previousEscapeDown); } private void Update() { ReadInput(out var spaceDown, out var escapeDown); if (!PhotonNetwork.InRoom || !PhotonNetwork.IsMasterClient) { ResetState(spaceDown, escapeDown); return; } PeakHandler instance = Singleton.Instance; if ((Object)(object)instance == (Object)null || !instance.isPlayingCinematic) { ResetState(spaceDown, escapeDown); return; } if (!cinematicActive) { cinematicActive = true; airportLoadRequested = false; previousSpaceDown = spaceDown; previousEscapeDown = escapeDown; return; } bool flag = spaceDown && !previousSpaceDown; bool flag2 = escapeDown && !previousEscapeDown; previousSpaceDown = spaceDown; previousEscapeDown = escapeDown; if (!airportLoadRequested && (flag || flag2)) { GameOverHandler instance2 = Singleton.Instance; if (!((Object)(object)instance2 == (Object)null)) { airportLoadRequested = true; instance2.LoadAirport(); } } } private static void ReadInput(out bool spaceDown, out bool escapeDown) { Keyboard current = Keyboard.current; if (current == null) { spaceDown = false; escapeDown = false; } else { spaceDown = ((ButtonControl)current.spaceKey).isPressed; escapeDown = ((ButtonControl)current.escapeKey).isPressed; } } private void ResetState(bool spaceDown, bool escapeDown) { cinematicActive = false; airportLoadRequested = false; previousSpaceDown = spaceDown; previousEscapeDown = escapeDown; } }