private void OnLoadLevel(On.Celeste.Level.orig_LoadLevel orig, Level self, Player.IntroTypes playerIntro, bool isFromLoader) { BGModeToggle.BGMode = BGModeToggle.Persist; BGModeToggle.OldBGMode = !BGModeToggle.Persist; orig(self, playerIntro, isFromLoader); if (self != null) { if (self.Tracker != null) { if (self.Tracker.GetEntity <Player>() != null) { if (self.Entities.Any(entity => (entity is BGModeToggle)) || BGModeToggle.BGMode) { self.Tracker.GetEntity <Player>().Sprite.Position = new Vector2(); if (!BGModeToggle.Persist) { self.Tracker.GetEntity <Player>().Sprite.Position += new Vector2(0, +2); } BGModeToggle.Setup(self); BGModeToggle.UpdateBG(self); } } } } }
public override void OnEnter(Player player) { Level level = base.Scene as Level; if (BGModeToggle.BGMode != mode) { BGModeToggle.BGMode = mode; if (persistant) { BGModeToggle.Persist = mode; } BGModeToggle.UpdateBG(level); Input.Rumble(RumbleStrength.Medium, RumbleLength.Medium); Celeste.Freeze(0.05f); Add(new Coroutine(BGModeToggle.FlipFlash(level))); } }