private IEnumerator EnterWithPostcardRoutine(string message, string soundId) { yield return(1f); if (string.IsNullOrEmpty(soundId)) { soundId = "csides"; } string prefix = "event:/ui/main/postcard_"; if (int.TryParse(soundId, out int areaId)) { prefix += "ch"; } prefix += soundId; Add(postcard = new Postcard(message, prefix + "_in", prefix + "_out")); yield return(postcard.DisplayRoutine()); IEnumerator inner = orig_Routine(); while (inner.MoveNext()) { yield return(inner.Current); } }
private IEnumerator ErrorRoutine(string message) { yield return(1f); Add(postcard = new Postcard(message)); yield return(postcard.DisplayRoutine()); SaveData.Instance.CurrentSession = new Session(AreaKey.Default); SaveData.Instance.LastArea = AreaKey.None; Engine.Scene = new OverworldLoader(Overworld.StartMode.AreaComplete); }
private IEnumerator ErrorRoutine(string message) { yield return(1f); Add(postcard = new Postcard(message, "event:/ui/main/postcard_csides_in", "event:/ui/main/postcard_csides_out")); yield return(postcard.DisplayRoutine()); SaveData.Instance.CurrentSession = session; SaveData.Instance.LastArea = session.Area; Engine.Scene = new OverworldLoader(Overworld.StartMode.AreaQuit); }
private IEnumerator LevelGoneRoutine() { yield return(1f); string message = Dialog.Get("postcard_levelgone"); message = message.Replace("((player))", SaveData.Instance.Name); message = message.Replace("((sid))", session.Area.GetSID()); Add(postcard = new Postcard(message)); yield return(postcard.DisplayRoutine()); SaveData.Instance.CurrentSession = new Session(AreaKey.Default); SaveData.Instance.LastArea = AreaKey.None; Engine.Scene = new OverworldLoader(Overworld.StartMode.AreaComplete); }
private IEnumerator ErrorRoutine(string message) { yield return(1f); Add(postcard = new Postcard(message, "event:/ui/main/postcard_csides_in", "event:/ui/main/postcard_csides_out")); yield return(postcard.DisplayRoutine()); SaveData.Instance.CurrentSession = session; SaveData.Instance.LastArea = session.Area; if (AreaData.Get(session.Area) == null) { // the area we are returning to doesn't exist anymore. return to Prologue instead. SaveData.Instance.LastArea = AreaKey.Default; } Engine.Scene = new OverworldLoader(Overworld.StartMode.AreaQuit); }
private IEnumerator addForceEnabledVariantsPostcard(On.Celeste.LevelEnter.orig_Routine orig, LevelEnter self) { if (showForcedVariantsPostcard) { showForcedVariantsPostcard = false; // let's show a postcard to let the player know Extended Variants have been enabled. self.Add(forceEnabledVariantsPostcard = new Postcard(Dialog.Get("POSTCARD_EXTENDEDVARIANTS_FORCEENABLED"), "event:/ui/main/postcard_csides_in", "event:/ui/main/postcard_csides_out")); yield return(forceEnabledVariantsPostcard.DisplayRoutine()); forceEnabledVariantsPostcard = null; } // just go on with vanilla behavior (other postcards, B-side intro, etc) yield return(new SwapImmediately(orig(self))); }
private IEnumerator EnterWithPostcardRoutine(string message, string soundId) { yield return(1f); if (string.IsNullOrEmpty(soundId)) { soundId = "csides"; } string prefix; if (soundId.StartsWith("event:/")) { // sound ID is a FMOD event, take it as is. prefix = soundId; } else if (soundId == "variants") { // sound ID is "variants", this is a special case since it is in the new_content bank. prefix = "event:/new_content/ui/postcard_variants"; } else { // if a number, use event:/ui/main/postcard_ch{number} // if not, use event:/ui/main/postcard_{text} prefix = "event:/ui/main/postcard_"; if (int.TryParse(soundId, out _)) { prefix += "ch"; } prefix += soundId; } Add(postcard = new Postcard(message, prefix + "_in", prefix + "_out")); yield return(postcard.DisplayRoutine()); IEnumerator inner = orig_Routine(); while (inner.MoveNext()) { yield return(inner.Current); } }