diff --git a/Cheats.cs b/Cheats.cs index 94e4575..29f0cad 100644 --- a/Cheats.cs +++ b/Cheats.cs @@ -19,6 +19,9 @@ public static class Cheats public static bool superJump = false; public static bool airJump = false; public static List forcedModifiers = new List(); + public static bool autoStartMission = true; + public static bool autoCompleteSideObjective = false; + public static void giveAllUpgrades(MM2Button b = null) { foreach (var gear in Global.Instance.AllGear) @@ -526,6 +529,40 @@ public static void loadMission(Mission mission, WorldRegion region, MM2Button b //public MissionData(int seed, Mission mission, WorldRegion region, string scene, MissionContainer container) MissionData missionData = new MissionData(MissionManager.MissionSeed, mission, region, region.SceneNames[0], Global.Instance.DefaultMissionContainer); // TODO fix random seed DropPod.SetMission(missionData); + if (autoStartMission) + { + DropPod.Instance.StartLaunch(); + } + } + public static MM2Button toggleAutoStartMission(MM2Button b = null) + { + autoStartMission = !autoStartMission; + if (b != null) + { + b.changeColour(autoStartMission ? Color.green : Color.red); + } + return b; + } + public static MM2Button toggleAutoCompleteSideObjective(MM2Button b = null) + { + autoCompleteSideObjective = !autoCompleteSideObjective; + if (b != null) + { + b.changeColour(autoCompleteSideObjective ? Color.green : Color.red); + } + return b; + } + public static void addSideObjective(ObjectiveBase sideObjective) + { + if (MissionManager.Instance.IsMissionActive) + { + MissionManager.Instance.SpawnSideObjective_Server(sideObjective); + if (autoCompleteSideObjective) + { + // Does not work for Meteorite side objective + sideObjective.Complete(); + } + } } public static void giveAllResoruces(MM2Button b = null) { diff --git a/MenuMod2.cs b/MenuMod2.cs index 2fc5135..a86aa98 100644 --- a/MenuMod2.cs +++ b/MenuMod2.cs @@ -145,7 +145,13 @@ public void createMainMenu() button = forceModifierMenu.addButton($"{modifier.ModifierName}", () => Cheats.toggleForceModifier(modifier, button)); } } + MenuMod2Menu loadMissionMenu = new MenuMod2Menu("Load mission", missionMenu); + { + MM2Button button = null; + button = loadMissionMenu.addButton("Toggle fast start", () => Cheats.toggleAutoStartMission(button)).changeColour(Color.green); + } + List missionMenus = new List(); foreach (var mission in Global.Instance.Missions) { @@ -161,6 +167,20 @@ public void createMainMenu() } } + MenuMod2Menu sideObjectiveMenu = new MenuMod2Menu("Side objective", missionMenu); + { + MM2Button button = null; + button = sideObjectiveMenu.addButton("Toggle complete auto", () => Cheats.toggleAutoCompleteSideObjective(button)).changeColour(Color.red); + } + var sideObjectiveNumber = Global.Instance.SideObjectives.Length; + var sideObjectiveIndex = 0; + while (sideObjectiveIndex < sideObjectiveNumber) + { + var sideObjective = Global.Instance.SideObjectives[sideObjectiveIndex]; + sideObjectiveMenu.addButton($"{sideObjective.name}", () => Cheats.addSideObjective(sideObjective)); + sideObjectiveIndex++; + } + //MenuMod2Menu debugPrintMenu = new MenuMod2Menu("Debug Print Menu", mainMenu); //debugPrintMenu.addButton("Print All Upgrade Stats", () => Cheats.printAllUpgradeStats()); //debugPrintMenu.addButton("Test message in chat", () => Cheats.SendDebugTextChatMessage());