summaryrefslogtreecommitdiff
path: root/mm/2s2h/Rando/Menu.cpp
diff options
context:
space:
mode:
authorCaladius <Caladius@users.noreply.github.com>2026-01-06 09:28:56 -0500
committerGitHub <noreply@github.com>2026-01-06 09:28:56 -0500
commitde61cd8a9116f77096a481e3a354494aaa8e6790 (patch)
treed888e10d391a6959b726fbeec37136af9f018821 /mm/2s2h/Rando/Menu.cpp
parentb2fb5b230563488f030664989fa7b0b0160705c7 (diff)
[Rando] Enemy Soul Shuffle (#1284)
* Add Aliens and initial code moved from old build. * Update Enemy Souls to latest Develop and fix issues. * Change Stalchild Animation to Idle * Fix Stalchild Eyes * Adds Hiploop to keep in line with Enemy Drops * correction * Update Matrix Calls * Remove comment * Remove Garo for now * Add Octorok Soul req for Upper Canyon Access * Add soul requirement for Red Switch * Grant Soul INF when the option is off * Adds Nejiron Soul * Add Flying Pot Soul * ew (#14) * cleanup * Add Bubble Soul * Adds Freezard * Change Soul behaivor to Invincible * header cleanup and arg consolidation * Fixes OnFileCreate to actually shuffle Enemy Souls. took this op. to fix up Boss Souls shuffling as it was needed to cleanly shuffle Enemy Souls. * Naming Updates * Name Updates pt2 * Add Tracker Icons and adds a Default to avoid erroring * Fix Iron Knuckle Helmet * revert item icon default and add soul flame to tatl target for enemies that are invincible. * Move VBs to GameInteractor_VanillaBehavior.h * Use VB_PERFORM_AC_COLLISION for enemy souls * Add enemy souls for closer parity with drops Stub out enemy draw funcs Use macros to streamline existing skeleton inits Logically account for enemy souls in CanKillEnemy Fix logical quirk with Ikana ice arrows * Draw everything * Remove unused INIT arg from SETUP_FLEX_SKEL * Add Igos, Keeta, Gomess Make soul RIs contiguous, separate boss and enemy Ignore target color for EnInvadepoh Remove Real Bombchus and Flying Pots for now Require Gekko and Snapper souls for beating both * Add Enemy Souls to item tracker * clang format --------- Co-authored-by: mckinlee <mckinlee@ymail.com> Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
Diffstat (limited to 'mm/2s2h/Rando/Menu.cpp')
-rw-r--r--mm/2s2h/Rando/Menu.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/mm/2s2h/Rando/Menu.cpp b/mm/2s2h/Rando/Menu.cpp
index f141b1443..7e14418a9 100644
--- a/mm/2s2h/Rando/Menu.cpp
+++ b/mm/2s2h/Rando/Menu.cpp
@@ -36,12 +36,15 @@ std::unordered_map<int32_t, const char*> accessTrialsOptions = {
{ RO_ACCESS_TRIALS_OPEN, "Open" },
};
+// clang-format off
std::vector<int32_t> incompatibleWithVanilla = {
RO_SHUFFLE_BOSS_SOULS,
RO_SHUFFLE_SWIM,
+ RO_SHUFFLE_ENEMY_SOULS,
RO_PLENTIFUL_ITEMS,
RO_CLOCK_SHUFFLE,
};
+// clang-format on
std::vector<RandoCheckId> checkExclusionList;
bool isExcludedInitialized = false;
@@ -205,6 +208,7 @@ static RegisterShipInitFunc refreshMetricsInit(RefreshMetrics, {
"gRando.Options.RO_SHUFFLE_COWS",
"gRando.Options.RO_SHUFFLE_CRATE_DROPS",
"gRando.Options.RO_SHUFFLE_ENEMY_DROPS",
+ "gRando.Options.RO_SHUFFLE_ENEMY_SOULS",
"gRando.Options.RO_SHUFFLE_FREESTANDING_ITEMS",
"gRando.Options.RO_SHUFFLE_FROGS",
"gRando.Options.RO_SHUFFLE_GOLD_SKULLTULAS",
@@ -440,8 +444,12 @@ static void DrawItemsTab() {
.disabledTooltip = "Incompatible with current Logic Setting" } }));
CVarCheckbox("Enemy Drops", Rando::StaticData::Options[RO_SHUFFLE_ENEMY_DROPS].cvar,
CheckboxOptions({ { .tooltip = "Shuffles the first drop from a non Boss Enemy." } }));
- CVarCheckbox("Enemy Souls", "gPlaceholderBool",
- CheckboxOptions({ { .disabled = true, .disabledTooltip = "Coming Soon" } }));
+ CVarCheckbox(
+ "Enemy Souls", Rando::StaticData::Options[RO_SHUFFLE_ENEMY_SOULS].cvar,
+ CheckboxOptions({ { .tooltip = "Adds the \"souls\" of regular enemies to the item pool. Enemy Souls are items "
+ "that must be found in order for their corresponding enemy to spawn.",
+ .disabled = IncompatibleWithLogicSetting(RO_SHUFFLE_ENEMY_SOULS),
+ .disabledTooltip = "Incompatible with current Logic Setting" } }));
CVarCheckbox("Shuffle Time", Rando::StaticData::Options[RO_CLOCK_SHUFFLE].cvar,
CheckboxOptions({ { .tooltip = "Breaks the 3-day cycle into 6 separate half-days (Day 1 Day/Night, "
"Day 2 Day/Night, Day 3 Day/Night) that must be unlocked as items. "