Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 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();
     }
 }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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();
        }