Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions Cheats.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ public static class Cheats
public static bool superJump = false;
public static bool airJump = false;
public static List<MissionModifier> forcedModifiers = new List<MissionModifier>();
public static bool autoStartMission = true;
public static bool autoCompleteSideObjective = false;

public static void giveAllUpgrades(MM2Button b = null)
{
foreach (var gear in Global.Instance.AllGear)
Expand Down Expand Up @@ -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)
{
Expand Down
20 changes: 20 additions & 0 deletions MenuMod2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<MenuMod2Menu> missionMenus = new List<MenuMod2Menu>();
foreach (var mission in Global.Instance.Missions)
{
Expand All @@ -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)
Copy link
Copy Markdown
Author

@SpartanPlume SpartanPlume Oct 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for information, it's not possible to iterate with foreach on SideObjectives because it's a custom class which does not implement the iteration functions

{
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());
Expand Down