internal static void LevelExit(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { if (EmoteModMain.anim_by_game == 1) { cancelEmote(); } orig(self, mode, session, snow); }
private void LevelExitOnCtor(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { orig(self, mode, session, snow); previousRoom = null; if (mode == LevelExit.Mode.Restart && !StateManager.Instance.IsSaved) { SpeedrunToolModule.Settings.RoomTimer = SpeedrunToolSettings.RoomTimerStrings.First(); } }
private static void LevelExitOnCtor(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { orig(self, mode, session, snow); if (mode != LevelExit.Mode.GoldenBerryRestart) { Reset(); } }
private void EndlessCantRestart(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { var settings = this.InRandomizerSettings; if (settings != null && settings.Algorithm == LogicType.Endless && (mode == LevelExit.Mode.Restart || mode == LevelExit.Mode.GoldenBerryRestart)) { mode = LevelExit.Mode.SaveAndQuit; } orig(self, mode, session, snow); }
private void checkForTriggerUnhooking(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { orig(self, mode, session, snow); // SaveAndQuit => leaving // GiveUp => leaving // Restart => restarting // GoldenBerryRestart => restarting // Completed => leaving // CompletedInterlude => leaving // we want to unhook the trigger if and only if we are actually leaving the level. if (triggerIsHooked && mode != LevelExit.Mode.Restart && mode != LevelExit.Mode.GoldenBerryRestart) { // we want to get rid of the trigger now. unhookTrigger(); } }
private static void onLevelExitConstructor(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { orig(self, mode, session, snow); if (mode == LevelExit.Mode.Restart || mode == LevelExit.Mode.GoldenBerryRestart) { // be sure to keep the lobby info in the session, even if we are resetting it. temporaryLobbySIDHolder = CollabModule.Instance.Session.LobbySID; temporaryRoomHolder = CollabModule.Instance.Session.LobbyRoom; temporarySpawnPointHolder = new Vector2(CollabModule.Instance.Session.LobbySpawnPointX, CollabModule.Instance.Session.LobbySpawnPointY); temporarySaveAllowedHolder = CollabModule.Instance.Session.SaveAndReturnToLobbyAllowed; } if ((mode == LevelExit.Mode.GiveUp || mode == LevelExit.Mode.Completed) && CollabModule.Instance.Session.LobbySID != null) { // be sure that Return to Map and such from a collab entry returns to the lobby, not to the collab entry. SaveData.Instance.LastArea_Safe = AreaData.Get(CollabModule.Instance.Session.LobbySID).ToKey(); } }
private void LevelExitOnCtor(On.Celeste.LevelExit.orig_ctor orig, LevelExit self, LevelExit.Mode mode, Session session, HiresSnow snow) { orig(self, mode, session, snow); Clear(); }