Beispiel #1
0
        private static Scene _GetNextScene(Overworld.StartMode startMode, HiresSnow snow)
        {
            bool transitionToModUpdater = false;

            if (CoreModule.Settings.AutoUpdateModsOnStartup)
            {
                if (!ModUpdaterHelper.IsAsyncUpdateCheckingDone())
                {
                    // update checking is not done yet.
                    // transition to mod updater screen to display the "checking for updates" message.
                    transitionToModUpdater = true;
                }
                else
                {
                    SortedDictionary <ModUpdateInfo, EverestModuleMetadata> modUpdates = ModUpdaterHelper.GetAsyncLoadedModUpdates();
                    if (modUpdates != null && modUpdates.Count != 0)
                    {
                        // update checking is done, and updates are available.
                        // transition to mod updater screen in order to install the updates
                        transitionToModUpdater = true;
                    }
                }
            }

            if (transitionToModUpdater)
            {
                return(new AutoModUpdater(snow));
            }
            else
            {
                return(new OverworldLoader(startMode, snow));
            }
        }
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (CoreModule.Settings.CurrentVersion == null && !overworld.IsCurrent <OuiOOBE>())
     {
         start = Overworld.StartMode.MainMenu;
     }
     return(orig_IsStart(overworld, start));
 }
Beispiel #3
0
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (start == (Overworld.StartMode) 55)
     {
         this.Add((Component) new Coroutine(this.Enter((Oui)null), true));
         return(true);
     }
     return(false);
 }
Beispiel #4
0
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (start != Overworld.StartMode.Titlescreen || CoreModule.Settings.CurrentVersion != null)
     {
         return(false);
     }
     Add(new Coroutine(Enter(null)));
     return(true);
 }
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (start == RandoModule.STARTMODE_RANDOMIZER)
     {
         this.Add(new Coroutine(this.Enter(null)));
         return(true);
     }
     return(false);
 }
Beispiel #6
0
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (SaveData.Instance != null && SaveData.Instance.LastArea.ID == AreaKey.None.ID)
     {
         SaveData.Instance.LastArea = AreaKey.Default;
         instantClose = true;
     }
     return(orig_IsStart(overworld, start));
 }
Beispiel #7
0
        public override bool IsStart(Overworld overworld, Overworld.StartMode start)
        {
            if (Start)
            {
                Start = false;
                Add(new Coroutine(Enter(null)));
                return(true);
            }

            return(false);
        }
Beispiel #8
0
 public override bool IsStart(Overworld overworld, Overworld.StartMode start)
 {
     if (start != Overworld.StartMode.Titlescreen)
     {
         return(false);
     }
     if (CoreModule.Settings.CurrentVersion != null)
     {
         CoreModule.Instance.SaveSettings(); // be sure CurrentVersion is updated on startup.
         return(false);
     }
     Add(new Coroutine(Enter(null)));
     return(true);
 }
Beispiel #9
0
        public override bool IsStart(Overworld overworld, Overworld.StartMode start)
        {
            if (start == Overworld.StartMode.AreaComplete || start == Overworld.StartMode.AreaQuit)
            {
                AreaData area = AreaData.Get(SaveData.Instance.LastArea.ID);
                area = AreaDataExt.Get(area?.GetMeta()?.Parent) ?? area;
                if (area != null)
                {
                    SaveData.Instance.LastArea.ID = area.ID;
                }
            }

            return(orig_IsStart(overworld, start));
        }
Beispiel #10
0
        public override bool IsStart(Overworld overworld, Overworld.StartMode start)
        {
            if (SaveData.Instance != null && SaveData.Instance.LastArea.ID == AreaKey.None.ID)
            {
                SaveData.Instance.LastArea = AreaKey.Default;
                instantClose = true;
            }

            if (start == Overworld.StartMode.AreaComplete || start == Overworld.StartMode.AreaQuit)
            {
                AreaData area = AreaData.Get(SaveData.Instance.LastArea.ID);
                area = AreaDataExt.Get(area?.GetMeta()?.Parent) ?? area;
                if (area != null)
                {
                    SaveData.Instance.LastArea.ID = area.ID;
                }
            }

            bool isStart = orig_IsStart(overworld, start);

            if (isStart && option >= options.Count && options.Count == 1)
            {
                // we are coming back from a B/C-side and we didn't unlock B-sides. Force-add it.
                AddRemixButton();
            }
            if (isStart && option >= options.Count && options.Count == 2)
            {
                // we are coming back from a C-side we did not unlock. Force-add it.
                options.Add(new Option {
                    Label = Dialog.Clean("overworld_remix2"),
                    Icon  = GFX.Gui["menu/rmx2"],
                    ID    = "C"
                });
            }

            return(isStart);
        }
Beispiel #11
0
        private bool ReturnToAltSide(On.Celeste.OuiChapterSelect.orig_IsStart orig, OuiChapterSelect self, Overworld overworld, Overworld.StartMode start)
        {
            if (start == Overworld.StartMode.AreaComplete || start == Overworld.StartMode.AreaQuit)
            {
                AreaData area = AreaData.Get(SaveData.Instance.LastArea.ID);
                var      meta = GetMetaForAreaData(area);
                if (meta?.AltSideData.IsAltSide ?? false)
                {
                    area = AreaData.Get(meta.AltSideData.For) ?? area;
                    if (area != null)
                    {
                        SaveData.Instance.LastArea.ID = area.ID;
                    }
                }
            }

            return(orig(self, overworld, start));
        }
Beispiel #12
0
 public extern bool orig_IsStart(Overworld overworld, Overworld.StartMode start);
Beispiel #13
0
 public patch_OverworldLoader(Overworld.StartMode startMode, HiresSnow snow = null)
     : base(startMode, snow)
 {
     // no-op. MonoMod ignores this - we only need this to make the compiler shut up.
 }
Beispiel #14
0
        private static void onOverworldLoad(On.Celeste.OverworldLoader.orig_ctor orig, OverworldLoader self, Overworld.StartMode startMode, HiresSnow snow)
        {
            orig(self, startMode, snow);

            if (startMode != (Overworld.StartMode)(-1))    // -1 = in-game overworld from the collab utils
            {
                deactivateHooks();
                deactivateHooksNoJungleHelper();
            }
        }
Beispiel #15
0
        private bool FixReturnFromAltSide(On.Celeste.OuiChapterPanel.orig_IsStart orig, OuiChapterPanel self, Overworld overworld, Overworld.StartMode start)
        {
            AreaData newArea = null;
            AreaData old;

            if (start == Overworld.StartMode.AreaComplete || start == Overworld.StartMode.AreaQuit)
            {
                AreaData area = AreaData.Get(SaveData.Instance.LastArea.ID);
                old = area;
                var meta = GetMetaForAreaData(area);
                if (meta?.AltSideData.IsAltSide ?? false)
                {
                    area = AreaData.Get(meta.AltSideData.For) ?? area;
                    if (area != null)
                    {
                        newArea = area;
                        SaveData.Instance.LastArea.ID = area.ID;
                        int returningSide = 0;                         //last unlocked mode
                        if (!area.Interlude_Safe && area.HasMode(AreaMode.BSide) && (SaveData.Instance.Areas_Safe[area.ID].Cassette || SaveData.Instance.DebugMode || SaveData.Instance.CheatMode))
                        {
                            returningSide++;
                        }
                        if (!area.Interlude_Safe && area.HasMode(AreaMode.CSide) && SaveData.Instance.UnlockedModes >= 3)
                        {
                            returningSide++;
                        }

                        var asideAltSideMeta = GetMetaForAreaData(area);
                        foreach (var mode in asideAltSideMeta.Sides)
                        {
                            if (!mode.OverrideVanillaSideData)
                            {
                                returningSide++;
                                if (mode.Map.Equals(old.GetSID()))
                                {
                                    break;
                                }
                            }
                        }

                        returningAltSide = returningSide;
                        SaveData.Instance.LastArea_Safe.ID = old.ID;
                    }
                }
            }
            var ret = orig(self, overworld, start);

            if (newArea != null)
            {
                //self.Data = newArea;
                SaveData.Instance.LastArea_Safe.ID = newArea.ID;
                shouldResetStats = false;
                resetMethod.Invoke(self, new object[] { });
                shouldResetStats = true;
            }
            returningAltSide = -1;

            return(ret);
        }
 private void EnterToRandoMenu(On.Celeste.OverworldLoader.orig_ctor orig, OverworldLoader self, Overworld.StartMode startMode, HiresSnow snow)
 {
     if ((startMode == Overworld.StartMode.MainMenu || startMode == Overworld.StartMode.AreaComplete) && this.InRandomizer)
     {
         startMode = RandoModule.STARTMODE_RANDOMIZER;
     }
     orig(self, startMode, snow);
 }
Beispiel #17
0
 public void EnterToRandoMenu(On.Celeste.OverworldLoader.orig_ctor orig, OverworldLoader self, Overworld.StartMode startMode, HiresSnow snow)
 {
     if ((startMode == Overworld.StartMode.MainMenu || startMode == Overworld.StartMode.AreaComplete) && this.InRandomizer)
     {
         startMode = (Overworld.StartMode) 55;
     }
     orig(self, startMode, snow);
 }