MMBN3: Logic and Bug Fixes, New Checks (#3646)

* PMDs now check to make sure you have enough unlockers for all of them before any are in logic, to avoid softlocks

* Adds Humor and BlckMnd to the pool and sets logic for Villain and Comedian. Patch not yet updated to remove starting inventory

* Adds Serenade as a check

* Fixes hide and seek completion to use proper Yoka Zoo map. Updates bsdiff patch to 1.2

* Adds option for excluding Secret Area, and item/location groups for further customization

* Update worlds/mmbn3/Locations.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Update worlds/mmbn3/Regions.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Update worlds/mmbn3/__init__.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Update worlds/mmbn3/__init__.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Update worlds/mmbn3/__init__.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Replaces can_reach generic with can_reach_region or can_reach_location, where applciable

* Unlocker is now a progression item, Excluded Locations is now a Set

* Missed a merge marker

* Excluded locations is no longer a set since you can't append to a set with +=

* Excluded locations is now a set again since you apparent can append to a set with |=

* Replaces more lists with sets. Fixes wording in option descriptions

* Update worlds/mmbn3/__init__.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
This commit is contained in:
digiholic
2025-01-17 06:41:12 -07:00
committed by GitHub
parent 3d5c277c31
commit d218dec826
8 changed files with 165 additions and 99 deletions

View File

@@ -1,5 +1,5 @@
from dataclasses import dataclass
from Options import Choice, Range, DefaultOnToggle, PerGameCommonOptions
from Options import Choice, Range, DefaultOnToggle, Toggle, PerGameCommonOptions
class ExtraRanks(Range):
@@ -17,10 +17,17 @@ class ExtraRanks(Range):
class IncludeJobs(DefaultOnToggle):
"""
Whether Jobs can be included in logic.
Whether Jobs can contain progression or useful items.
"""
display_name = "Include Jobs"
class IncludeSecretArea(Toggle):
"""
Whether the Secret Area (including Serenade) can contain progression or useful items.
"""
display_name = "Include Secret Area"
# Possible logic options:
# - Include Number Trader
# - Include Secret Area
@@ -46,5 +53,6 @@ class TradeQuestHinting(Choice):
class MMBN3Options(PerGameCommonOptions):
extra_ranks: ExtraRanks
include_jobs: IncludeJobs
include_secret: IncludeSecretArea
trade_quest_hinting: TradeQuestHinting