private IEnumerator OnEnter(OshiroTrigger self) { Player player = self.SceneAs <Level>().GetPlayer(); if (player != null) { self.OnEnter(player); } yield break; }
// 修复 3C 第三面最后的传送点 Oshiro 不出现的问题 private void RestoreOshiroTrigger(On.Celeste.OshiroTrigger.orig_ctor orig, OshiroTrigger self, EntityData data, Vector2 offset) { orig(self, data, offset); Vector2 oshiro3C = new Vector2(1520, -272); Level level = Engine.Scene.GetLevel(); if (level != null && level.Session.Area.ToString() == "3HH" && level.StartPosition != null && level.Session.GetSpawnPoint((Vector2)level.StartPosition) == oshiro3C) { self.Add(new Coroutine(OnEnter(self))); } }