From aa775b56be77f21f37d13a2ebc620782595e7ccd Mon Sep 17 00:00:00 2001 From: EternalCode Date: Fri, 20 Feb 2026 08:57:07 -0500 Subject: [PATCH] TMC: add combined kinstones & multipliers - Added gold combined kinstones setting - Added multipliers for gold kinstones and all dungeon keys --- worlds/tmc/__init__.py | 11 +++ worlds/tmc/data/basepatch.bsdiff | Bin 51290 -> 51298 bytes worlds/tmc/items.py | 73 +++++++++------ worlds/tmc/options.py | 153 +++++++++++++++++++++++++++++-- worlds/tmc/rom.py | 43 +++++++++ worlds/tmc/rules.py | 26 +++++- 6 files changed, 266 insertions(+), 40 deletions(-) diff --git a/worlds/tmc/__init__.py b/worlds/tmc/__init__.py index f3257ef3cbb7..d671d7b9a281 100644 --- a/worlds/tmc/__init__.py +++ b/worlds/tmc/__init__.py @@ -41,6 +41,7 @@ MinishCapOptions, NonElementDungeons, PedReward, + FusionAccess, ShuffleElements, get_option_data, ) @@ -133,6 +134,16 @@ def generate_early(self) -> None: 10, 10 - options.cucco_rounds.value, -1)]) enabled_pools.update([f"goron:{round_num}" for round_num in range(1, options.goron_sets.value + 1)]) + # Option correction for fusions: + if options.gold_fusion_access.value in {FusionAccess.option_open, FusionAccess.option_closed}: + options.clouds_kinstone_multiplier.value = 0 + options.swamp_kinstone_multiplier.value = 0 + options.falls_kinstone_multiplier.value = 0 + elif options.gold_fusion_access == FusionAccess.option_combined: + options.swamp_kinstone_multiplier.value = 0 + options.falls_kinstone_multiplier.value = 0 + + # Default dhc_access to closed when it's been set to ped with goal vaati disabled. # There's too many flags to manage to allow DHC to open after ped completes and vaati is slain. if options.goal.value == Goal.option_pedestal and options.dhc_access.value == DHCAccess.option_pedestal: diff --git a/worlds/tmc/data/basepatch.bsdiff b/worlds/tmc/data/basepatch.bsdiff index 2f7412ccbe6b9d2f31fdfff41ca723bbc8b02334..0ef8b97c7fe078fa99365b9aae175e94a63eff3c 100644 GIT binary patch literal 51298 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 KI8cyTOzN3Nc1_^` literal 51290 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�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 Eo0$R8eE list[str]: return [TMCItem.EMPTY_BOTTLE] * 4 -def pool_baseitems() -> list[str]: +def pool_baseitems(world: "MinishCapWorld") -> list[str]: return [ *[TMCItem.BOMB_BAG] * 4, TMCItem.REMOTE_BOMB, @@ -103,7 +104,7 @@ def pool_baseitems() -> list[str]: TMCItem.GREEN_BOOK, TMCItem.BLUE_BOOK, - *(pool_kinstone_gold()), + *(pool_kinstone_gold(world)), ] @@ -193,33 +194,49 @@ def pool_smallkeys(world: "MinishCapWorld") -> list[str]: return keys -def pool_kinstone_gold() -> list[str]: - return [*[TMCItem.KINSTONE_GOLD_CLOUD] * 5, *[TMCItem.KINSTONE_GOLD_SWAMP] * 3, TMCItem.KINSTONE_GOLD_FALLS] +def pool_kinstone_gold(world: "MinishCapWorld") -> list[str]: + options = world.options + kinstones = [] + if options.gold_fusion_access.value == FusionAccess.option_combined: + return [TMCItem.KINSTONE_GOLD_CLOUD] * math.ceil(9 / options.clouds_kinstone_multiplier) + # assuming FusionAccess.option_vanilla + kinstones.extend([TMCItem.KINSTONE_GOLD_CLOUD] * math.ceil(5 / options.clouds_kinstone_multiplier)) + kinstones.extend([TMCItem.KINSTONE_GOLD_SWAMP] * math.ceil(3 / options.swamp_kinstone_multiplier)) + kinstones.append(TMCItem.KINSTONE_GOLD_FALLS) + return kinstones -def pool_kinstone_red() -> list[str]: +def pool_kinstone_red(options: MinishCapOptions) -> list[str]: return [*[TMCItem.KINSTONE_RED_W] * 9, *[TMCItem.KINSTONE_RED_ANGLE] * 7, *[TMCItem.KINSTONE_RED_E] * 8] -def pool_kinstone_blue() -> list[str]: +def pool_kinstone_blue(options: MinishCapOptions) -> list[str]: return [*[TMCItem.KINSTONE_BLUE_L] * 9, *[TMCItem.KINSTONE_BLUE_6] * 9] -def pool_kinstone_green() -> list[str]: +def pool_kinstone_green(options: MinishCapOptions) -> list[str]: return [*[TMCItem.KINSTONE_GREEN_ANGLE] * 17, *[TMCItem.KINSTONE_GREEN_SQUARE] * 16, *[TMCItem.KINSTONE_GREEN_P] * 16] def get_item_pool(world: "MinishCapWorld") -> list[MinishCapItem]: player = world.player multiworld = world.multiworld - item_pool = pool_baseitems() - - if world.options.early_weapon.value: - weapon_pool = [TMCItem.PROGRESSIVE_SWORD, TMCItem.SMITHS_SWORD] - if world.options.weapon_bomb.value in {1, 2}: - weapon_pool.extend([TMCItem.BOMB_BAG]) - if world.options.weapon_bow.value: - weapon_pool.extend([TMCItem.PROGRESSIVE_BOW, TMCItem.BOW]) + options = world.options + item_pool = pool_baseitems(world) + + if options.early_weapon.value: + weapon_pool = [] + if options.progressive_sword.value: + weapon_pool.append(TMCItem.PROGRESSIVE_SWORD) + else: + weapon_pool.append(TMCItem.SMITHS_SWORD) + if options.weapon_bomb.value in {1, 2}: + weapon_pool.append(TMCItem.BOMB_BAG) + if options.weapon_bow.value: + if options.progressive_bow.value: + weapon_pool.append(TMCItem.PROGRESSIVE_BOW) + else: + weapon_pool.append(TMCItem.BOW) weapon_choice = world.random.choice(weapon_pool) multiworld.local_early_items[player][weapon_choice] = 1 @@ -230,31 +247,31 @@ def get_item_pool(world: "MinishCapWorld") -> list[MinishCapItem]: item_pool.extend(pool_scroll(world)) item_pool.extend(pool_health(world)) - if world.options.dungeon_big_keys.value == DungeonItem.option_anywhere: + if options.dungeon_big_keys.value == DungeonItem.option_anywhere: item_pool.extend(pool_bigkeys(world)) item_pool.append(TMCItem.BIG_KEY_TOD) - if world.options.dungeon_small_keys.value == DungeonItem.option_anywhere: + if options.dungeon_small_keys.value == DungeonItem.option_anywhere: item_pool.extend(pool_smallkeys(world)) - if world.options.dungeon_compasses.value == DungeonItem.option_anywhere: + if options.dungeon_compasses.value == DungeonItem.option_anywhere: item_pool.extend(pool_compass(world)) - if world.options.dungeon_maps.value == DungeonItem.option_anywhere: + if options.dungeon_maps.value == DungeonItem.option_anywhere: item_pool.extend(pool_dungeonmaps(world)) - if world.options.figurine_amount > 0: - item_pool.extend([TMCItem.FIGURINE] * world.options.figurine_amount.value) + if options.figurine_amount > 0: + item_pool.extend([TMCItem.FIGURINE] * options.figurine_amount.value) - if world.options.ped_reward == PedReward.option_dhc_big_key: + if options.ped_reward == PedReward.option_dhc_big_key: world.get_location(TMCLocation.PEDESTAL_REQUIREMENT_REWARD).place_locked_item(world.create_item(TMCItem.BIG_KEY_DHC)) # ToD is stupid, need to place the big key manually - if world.options.dungeon_big_keys.value == DungeonItem.option_own_dungeon and \ - TMCItem.BIG_KEY_TOD not in world.options.start_inventory_from_pool.value.keys() and \ - world.options.dungeon_warp_tod.value == DungeonWarp.option_none: + if options.dungeon_big_keys.value == DungeonItem.option_own_dungeon and \ + TMCItem.BIG_KEY_TOD not in options.start_inventory_from_pool.value.keys() and \ + options.dungeon_warp_tod.value == DungeonWarp.option_none: location = world.random.choice([TMCLocation.DROPLETS_ENTRANCE_B2_EAST_ICEBLOCK, TMCLocation.DROPLETS_ENTRANCE_B2_WEST_ICEBLOCK]) world.get_location(location).place_locked_item(world.create_item(TMCItem.BIG_KEY_TOD)) - if not world.options.random_bottle_contents.value: + if not options.random_bottle_contents.value: item_pool.extend(pool_bottles()) else: selected_bottles = [] @@ -265,7 +282,7 @@ def get_item_pool(world: "MinishCapWorld") -> list[MinishCapItem]: item_pool.extend(selected_bottles) - if world.options.shuffle_elements.value is ShuffleElements.option_anywhere: + if options.shuffle_elements.value is ShuffleElements.option_anywhere: item_pool.extend(pool_elements()) return [world.create_item(item) for item in item_pool] diff --git a/worlds/tmc/options.py b/worlds/tmc/options.py index 03b2a3b02245..255133336615 100644 --- a/worlds/tmc/options.py +++ b/worlds/tmc/options.py @@ -110,18 +110,19 @@ class GreenFusionAccess(Choice): class GoldFusionAccess(Choice): """How/when are the Gold Kinstone Fusions accessible? - - Closed: Gold Kinstones aren't in the item pool and none of their fusions are accessible - Vanilla: Gold Kinstones are added to the item pool and their fusions must be completed as normal - Combined: Same as Vanilla except all Gold Fusions are changed to request only 'Kinstone Cloud Tops' - - Open: Gold Kinstones aren't in the item pool and all of their fusions are accessible """ + # - Closed: Gold Kinstones aren't in the item pool and none of their fusions are accessible + # - Open: Gold Kinstones aren't in the item pool and all of their fusions are accessible - visibility = Visibility.none + display_name = "Gold Fusion Access" rich_text_doc = True + value: int # option_closed = 0 option_vanilla = 1 - # option_combined = 2 + option_combined = 2 # option_open = 3 default = option_vanilla @@ -847,6 +848,106 @@ class RemoteItems(Toggle): rich_text_doc = True +class CloudKinstoneMultiplier(Range): + """How many Cloud Kinstones should be added to your bag each time you get 1? + If gold combined kinstones are enabled, this setting will be used for the all gold kinstones. + This also reduces the number of kinstones in the pool to match the amount required rounded up. + Ex, When set to 2 without combined kinstones, there will be 3 Clouds Kinstones in the pool that each give you 2 Clouds Kinstones.""" + display_name = "Cloud Kinstone Multiplier" + rich_text_doc = True + + default = 1 + range_start = 1 + range_end = 9 + + +class SwampKinstoneMultiplier(Range): + """How many Swamp Kinstones should be added to your bag each time you get 1? + This setting is ignored if using combined gold kinstones""" + display_name = "Swamp Kinstone Multiplier" + rich_text_doc = True + + default = 1 + range_start = 1 + range_end = 3 + + +class FallsKinstoneMultiplier(Range): + """How many Falls Kinstones should be added to your bag each time you get 1? + This setting is ignored if using combined gold kinstones""" + # This is only here for easy access when writing overriding for open/closed fusions and writing to the rom + visibility = Visibility.none + display_name = "Falls Kinstone Multiplier" + rich_text_doc = True + + default = 1 + range_start = 1 + range_end = 1 + + +class DWSKeyMultiplier(Range): + """How many Small Keys (DWS) should be added to your inventory each time you get 1?""" + display_name = "DWS Key Multiplier" + + default = 1 + range_start = 1 + range_end = 4 + + +class CoFKeyMultiplier(Range): + """How many Small Keys (CoF) should be added to your inventory each time you get 1?""" + display_name = "CoF Key Multiplier" + + default = 1 + range_start = 1 + range_end = 2 + + +class FoWKeyMultiplier(Range): + """How many Small Keys (FoW) should be added to your inventory each time you get 1?""" + display_name = "FoW Key Multiplier" + + default = 1 + range_start = 1 + range_end = 4 + + +class ToDKeyMultiplier(Range): + """How many Small Keys (ToD) should be added to your inventory each time you get 1?""" + display_name = "ToD Key Multiplier" + + default = 1 + range_start = 1 + range_end = 4 + + +class RCKeyMultiplier(Range): + """How many Small Keys (RC) should be added to your inventory each time you get 1?""" + display_name = "RC Key Multiplier" + + default = 1 + range_start = 1 + range_end = 3 + + +class PoWKeyMultiplier(Range): + """How many Small Keys (PoW) should be added to your inventory each time you get 1?""" + display_name = "PoW Key Multiplier" + + default = 1 + range_start = 1 + range_end = 6 + + +class DHCKeyMultiplier(Range): + """How many Small Keys (DHC) should be added to your inventory each time you get 1?""" + display_name = "DHC Key Multiplier" + + default = 1 + range_start = 1 + range_end = 5 + + @dataclass class MinishCapOptions(PerGameCommonOptions): # AP settings / DL settings @@ -902,6 +1003,17 @@ class MinishCapOptions(PerGameCommonOptions): starting_hearts: StartingHearts heart_containers: HeartContainerAmount piece_of_hearts: PieceOfHeartAmount + # Multipliers + clouds_kinstone_multiplier: CloudKinstoneMultiplier + swamp_kinstone_multiplier: SwampKinstoneMultiplier + falls_kinstone_multiplier: FallsKinstoneMultiplier + dws_key_multiplier: DWSKeyMultiplier + cof_key_multiplier: CoFKeyMultiplier + fow_key_multiplier: FoWKeyMultiplier + tod_key_multiplier: ToDKeyMultiplier + rc_key_multiplier: RCKeyMultiplier + pow_key_multiplier: PoWKeyMultiplier + dhc_key_multiplier: DHCKeyMultiplier # Logic Settings dungeon_warp_dws: WarpDWS dungeon_warp_cof: WarpCoF @@ -1047,6 +1159,16 @@ def get_option_data(world: "MinishCapWorld"): "wind_crest_castor", "wind_crest_south_field", "wind_crest_minish_woods", + "clouds_kinstone_multiplier", + "swamp_kinstone_multiplier", + "falls_kinstone_multiplier", + "dws_key_multiplier", + "cof_key_multiplier", + "fow_key_multiplier", + "tod_key_multiplier", + "rc_key_multiplier", + "pow_key_multiplier", + "dhc_key_multiplier", "tricks", ] """The yaml options that'll be transfered into slot_data for the tracker""" @@ -1054,10 +1176,10 @@ def get_option_data(world: "MinishCapWorld"): OPTION_GROUPS = [ OptionGroup("Goal", [Goal, DHCAccess, PedElements, PedSword, PedDungeons, PedFigurines, FigurineAmount]), - # OptionGroup( - # "Fusions", - # [GoldFusionAccess, RedFusionAccess, GreenFusionAccess, BlueFusionAccess], - # ), + OptionGroup( + "Fusions", + [GoldFusionAccess] # , RedFusionAccess, GreenFusionAccess, BlueFusionAccess], + ), OptionGroup( "Dungeon Shuffle", [ @@ -1116,6 +1238,21 @@ def get_option_data(world: "MinishCapWorld"): WindCrestMinish, ], ), + OptionGroup( + "Item Multipliers", + [ + CloudKinstoneMultiplier, + SwampKinstoneMultiplier, + + DWSKeyMultiplier, + CoFKeyMultiplier, + FoWKeyMultiplier, + ToDKeyMultiplier, + RCKeyMultiplier, + PoWKeyMultiplier, + DHCKeyMultiplier + ] + ), OptionGroup( "Quality of Life", [GoronJPPrices, OcarinaOnSelect, BootsOnL, BootsAsMinish, BigOctorokManipulation, ReplicaToDBossDoor], diff --git a/worlds/tmc/rom.py b/worlds/tmc/rom.py index bfdd6d32c401..d3a5484ef416 100644 --- a/worlds/tmc/rom.py +++ b/worlds/tmc/rom.py @@ -300,6 +300,17 @@ def write_tokens(world: "MinishCapWorld", patch: MinishCapProcedurePatch) -> Non for request in no_fusions_requests: patch.write_token(APTokenTypes.WRITE, request, bytes([0xF2])) + # Combined Kinstones + if options.gold_fusion_access.value == FusionAccess.option_combined: + patch.write_token(APTokenTypes.WRITE, 0x0C9415, bytes([8])) + patch.write_token(APTokenTypes.WRITE, 0x0C9419, bytes([1])) + patch.write_token(APTokenTypes.WRITE, 0x0C941D, bytes([8])) + patch.write_token(APTokenTypes.WRITE, 0x0C9421, bytes([1])) + patch.write_token(APTokenTypes.WRITE, 0x0C9425, bytes([8])) + patch.write_token(APTokenTypes.WRITE, 0x0C9429, bytes([1])) + patch.write_token(APTokenTypes.WRITE, 0x0C942D, bytes([8])) + patch.write_token(APTokenTypes.WRITE, 0x0C9431, bytes([1])) + # Cucco/Goron Rounds cucco_complete = int(world.options.cucco_rounds.value == 0) cucco_skipped = 10 - world.options.cucco_rounds.value if world.options.cucco_rounds.value > 0 else 9 @@ -316,6 +327,38 @@ def write_tokens(world: "MinishCapWorld", patch: MinishCapProcedurePatch) -> Non patch.write_token(APTokenTypes.WRITE, flag_group_by_name[TMCFlagGroup.LINKS_CURRENT_HEALTH], bytes([starting_hp])) patch.write_token(APTokenTypes.WRITE, flag_group_by_name[TMCFlagGroup.LINKS_MAX_HEALTH], bytes([starting_hp])) + # Multipliers + patch.write_token(APTokenTypes.WRITE, 0xFF0530, bytes([ + options.clouds_kinstone_multiplier.value, + options.clouds_kinstone_multiplier.value, + options.clouds_kinstone_multiplier.value, + options.clouds_kinstone_multiplier.value, + options.clouds_kinstone_multiplier.value, + options.swamp_kinstone_multiplier.value, + options.swamp_kinstone_multiplier.value, + options.swamp_kinstone_multiplier.value, + options.falls_kinstone_multiplier.value, + 0, # Red W + 0, # Red V + 0, # Red E + 0, # Blue L + 0, # Blue S + 0, # Green C + 0, # Green G + 0, # Green P + 0xFF, # spacers for an ALIGN 4 + 0xFF, # spacers for an ALIGN 4 + 0xFF, # spacers for an ALIGN 4 + 1, # universal key + options.dws_key_multiplier.value, + options.cof_key_multiplier.value, + options.fow_key_multiplier.value, + options.tod_key_multiplier.value, + options.pow_key_multiplier.value, + options.dhc_key_multiplier.value, + options.rc_key_multiplier.value, + ])) + # Patch Items into Locations for location_name, loc in location_table_by_name.items(): if loc.rom_addr is None: diff --git a/worlds/tmc/rules.py b/worlds/tmc/rules.py index c3844e768131..03d4e93fbade 100644 --- a/worlds/tmc/rules.py +++ b/worlds/tmc/rules.py @@ -1,3 +1,4 @@ +import math from collections.abc import Callable from typing import TYPE_CHECKING @@ -5,7 +6,7 @@ from worlds.generic.Rules import CollectionRule, add_rule from .constants import TMCEvent, TMCItem, TMCLocation, TMCRegion, TMCTricks -from .options import Biggoron, DHCAccess, DungeonItem, DungeonWarp, Goal, MinishCapOptions +from .options import Biggoron, DHCAccess, DungeonItem, DungeonWarp, Goal, MinishCapOptions, FusionAccess if TYPE_CHECKING: from . import MinishCapWorld @@ -124,7 +125,7 @@ def __init__(self, world: "MinishCapWorld") -> None: (TMCRegion.CASTOR_WILDS, TMCRegion.WESTERN_WOODS): self.logic_or([self.has_any([TMCItem.PEGASUS_BOOTS, TMCItem.ROCS_CAPE]), self.has_bow()]), (TMCRegion.CASTOR_WILDS, TMCRegion.WIND_RUINS): - self.logic_and([self.has(TMCItem.KINSTONE_GOLD_SWAMP, 3), + self.logic_and([self.swamp_fusion_cost(), self.logic_or([self.has(TMCItem.ROCS_CAPE), self.logic_and([self.has(TMCItem.PEGASUS_BOOTS), self.logic_or([self.swamp_crest(), self.has_bow(), @@ -141,14 +142,14 @@ def __init__(self, world: "MinishCapWorld") -> None: self.logic_and([self.has_weapon(), self.has(TMCItem.SMALL_KEY_RC, 3), self.has(TMCItem.LANTERN)]), (TMCRegion.FALLS_ENTRANCE, TMCRegion.MIDDLE_FALLS): - self.logic_and([self.has(TMCItem.KINSTONE_GOLD_FALLS), self.dark_room()]), + self.logic_and([self.falls_fusion_cost(), self.dark_room()]), (TMCRegion.MIDDLE_FALLS, TMCRegion.FALLS_ENTRANCE): self.has(TMCItem.FLIPPERS), (TMCRegion.MIDDLE_FALLS, TMCRegion.UPPER_FALLS): self.has(TMCItem.GRIP_RING), (TMCRegion.UPPER_FALLS, TMCRegion.MIDDLE_FALLS): self.has(TMCItem.GRIP_RING), (TMCRegion.UPPER_FALLS, TMCRegion.CLOUDS): self.has(TMCItem.GRIP_RING), (TMCRegion.CLOUDS, TMCRegion.UPPER_FALLS): self.has(TMCItem.GRIP_RING), (TMCRegion.CLOUDS, TMCRegion.WIND_TRIBE): - self.logic_and([self.has(TMCItem.KINSTONE_GOLD_CLOUD, 5), + self.logic_and([self.cloud_fusion_cost(), self.has_any([TMCItem.MOLE_MITTS, TMCItem.ROCS_CAPE])]), (TMCRegion.WIND_TRIBE, TMCRegion.CLOUDS): None, (TMCRegion.WIND_TRIBE, TMCRegion.DUNGEON_POW_ENTRANCE): None, @@ -1554,6 +1555,23 @@ def cost(self, price: int) -> CollectionRule: return self.no_access() return self.has(TMCItem.BIG_WALLET, needed_wallets) + def cloud_fusion_cost(self) -> CollectionRule: + return self.logic_option(self.options.gold_fusion_access.value == FusionAccess.option_combined, + self.has(TMCItem.KINSTONE_GOLD_CLOUD, math.ceil(9 / self.options.clouds_kinstone_multiplier)), + self.has(TMCItem.KINSTONE_GOLD_CLOUD, math.ceil(5 / self.options.clouds_kinstone_multiplier))) + + def swamp_fusion_cost(self) -> CollectionRule: + if self.options.gold_fusion_access.value == FusionAccess.option_combined: + return self.has(TMCItem.KINSTONE_GOLD_CLOUD, math.ceil(9 / self.options.clouds_kinstone_multiplier)) + return self.has(TMCItem.KINSTONE_GOLD_SWAMP, math.ceil(3 / self.options.swamp_kinstone_multiplier)) + + def falls_fusion_cost(self) -> CollectionRule: + if self.options.gold_fusion_access.value == FusionAccess.option_combined: + if self.options.wind_crest_clouds.value: + return self.has(TMCItem.KINSTONE_GOLD_CLOUD, math.ceil(9 / self.options.clouds_kinstone_multiplier)) + return self.has(TMCItem.KINSTONE_GOLD_CLOUD, math.ceil(4 / self.options.clouds_kinstone_multiplier)) + return self.has(TMCItem.KINSTONE_GOLD_FALLS, 1) + def blow_dust(self) -> CollectionRule: return self.logic_option(TMCTricks.BOMB_DUST in self.world.options.tricks, self.has_any([TMCItem.GUST_JAR, TMCItem.BOMB_BAG]),