Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
        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);
            }
        }