diff options
| author | Caladius <Caladius@users.noreply.github.com> | 2026-01-06 09:28:56 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-06 09:28:56 -0500 |
| commit | de61cd8a9116f77096a481e3a354494aaa8e6790 (patch) | |
| tree | d888e10d391a6959b726fbeec37136af9f018821 /mm/2s2h/Rando/Menu.cpp | |
| parent | b2fb5b230563488f030664989fa7b0b0160705c7 (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.cpp | 12 |
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. " |
