private static Celeste.PlayerDeadBody PlayerDie(On.Celeste.Player.orig_Die orig, Celeste.Player self, Vector2 direction, bool evenIfInvincible, bool registerDeathInStats) { Celeste.Session session = (self.Scene as Celeste.Level).Session; Celeste.PlayerDeadBody playerDeadBody = orig(self, direction, evenIfInvincible, registerDeathInStats); if (playerDeadBody != null) { Celeste.Strawberry goldenStrawb = null; foreach (Celeste.Follower follower in self.Leader.Followers) { if (follower.Entity is Celeste.Strawberry && (follower.Entity as Celeste.Strawberry).Golden && !(follower.Entity as Celeste.Strawberry).Winged) { goldenStrawb = (follower.Entity as Celeste.Strawberry); } } Vector2?specialBoxLevel = (FactoryHelperModule.Instance._Session as FactoryHelperSession).SpecialBoxPosition; if (goldenStrawb == null && specialBoxLevel != null) { playerDeadBody.DeathAction = delegate { Engine.Scene = new Celeste.LevelExit(Celeste.LevelExit.Mode.Restart, session); }; } } return(playerDeadBody); }
private static void LevelEnterGo(On.Celeste.LevelEnter.orig_Go orig, Celeste.Session session, bool fromSaveData) { if (!fromSaveData && session.StartedFromBeginning && session.Area.Mode == AreaMode.Normal && session.Area.ChapterIndex == 1 && session.Area.GetLevelSet() == "KaydenFox/FactoryMod") { Engine.Scene = new FactoryIntroVignette(session); } else { orig(session, fromSaveData); } }
private void OnLevelLoader_ctor(On.Celeste.LevelLoader.orig_ctor orig, Celeste.LevelLoader self, Celeste.Session session, Vector2?startPosition) { orig(self, session, startPosition); Celeste.PlayerSprite.CreateFramesMetadata("player_KaydenFox"); Celeste.PlayerSprite.CreateFramesMetadata("player_no_backpack_KaydenFox"); }