From cfa49ee7573b4b5a847ebcec2f4d1aba37d24ff4 Mon Sep 17 00:00:00 2001 From: lordlou <87331798+lordlou@users.noreply.github.com> Date: Tue, 15 Mar 2022 08:55:57 -0400 Subject: [PATCH] Add SMZ3 support (#270) --- Patch.py | 21 +- SNIClient.py | 102 ++- WebHostLib/static/assets/gameInfo/en_SMZ3.md | 35 + .../assets/tutorial/smz3/multiworld_en.md | 146 ++++ WebHostLib/templates/macros.html | 2 +- host.yaml | 11 +- worlds/smz3/LICENSE | 21 + worlds/smz3/Options.py | 63 ++ worlds/smz3/Rom.py | 76 ++ worlds/smz3/TotalSMZ3/Config.py | 107 +++ worlds/smz3/TotalSMZ3/Item.py | 782 +++++++++++++++++ worlds/smz3/TotalSMZ3/Location.py | 112 +++ worlds/smz3/TotalSMZ3/Patch.py | 809 ++++++++++++++++++ worlds/smz3/TotalSMZ3/Region.py | 63 ++ .../Regions/SuperMetroid/Brinstar/Blue.py | 26 + .../Regions/SuperMetroid/Brinstar/Green.py | 37 + .../Regions/SuperMetroid/Brinstar/Kraid.py | 25 + .../Regions/SuperMetroid/Brinstar/Pink.py | 44 + .../Regions/SuperMetroid/Brinstar/Red.py | 36 + .../Regions/SuperMetroid/Brinstar/__init__.py | 0 .../Regions/SuperMetroid/Crateria/Central.py | 23 + .../Regions/SuperMetroid/Crateria/East.py | 59 ++ .../Regions/SuperMetroid/Crateria/West.py | 38 + .../Regions/SuperMetroid/Crateria/__init__.py | 0 .../Regions/SuperMetroid/Maridia/Inner.py | 110 +++ .../Regions/SuperMetroid/Maridia/Outer.py | 37 + .../Regions/SuperMetroid/Maridia/__init__.py | 0 .../Regions/SuperMetroid/NorfairLower/East.py | 60 ++ .../Regions/SuperMetroid/NorfairLower/West.py | 67 ++ .../SuperMetroid/NorfairLower/__init__.py | 0 .../SuperMetroid/NorfairUpper/Crocomire.py | 69 ++ .../Regions/SuperMetroid/NorfairUpper/East.py | 94 ++ .../Regions/SuperMetroid/NorfairUpper/West.py | 44 + .../SuperMetroid/NorfairUpper/__init__.py | 0 .../Regions/SuperMetroid/WreckedShip.py | 77 ++ .../Regions/SuperMetroid/__init__.py | 0 .../TotalSMZ3/Regions/Zelda/CastleTower.py | 25 + .../Zelda/DarkWorld/DeathMountain/East.py | 28 + .../Zelda/DarkWorld/DeathMountain/West.py | 16 + .../Zelda/DarkWorld/DeathMountain/__init__.py | 0 .../TotalSMZ3/Regions/Zelda/DarkWorld/Mire.py | 20 + .../Regions/Zelda/DarkWorld/NorthEast.py | 28 + .../Regions/Zelda/DarkWorld/NorthWest.py | 32 + .../Regions/Zelda/DarkWorld/South.py | 28 + .../Regions/Zelda/DarkWorld/__init__.py | 0 .../TotalSMZ3/Regions/Zelda/DesertPalace.py | 42 + .../TotalSMZ3/Regions/Zelda/EasternPalace.py | 27 + .../TotalSMZ3/Regions/Zelda/GanonsTower.py | 146 ++++ .../TotalSMZ3/Regions/Zelda/HyruleCastle.py | 34 + .../smz3/TotalSMZ3/Regions/Zelda/IcePalace.py | 52 ++ .../Zelda/LightWorld/DeathMountain/East.py | 30 + .../Zelda/LightWorld/DeathMountain/West.py | 23 + .../LightWorld/DeathMountain/__init__.py | 0 .../Regions/Zelda/LightWorld/NorthEast.py | 28 + .../Regions/Zelda/LightWorld/NorthWest.py | 44 + .../Regions/Zelda/LightWorld/South.py | 45 + .../Regions/Zelda/LightWorld/__init__.py | 0 .../TotalSMZ3/Regions/Zelda/MiseryMire.py | 43 + .../Regions/Zelda/PalaceOfDarkness.py | 54 ++ .../TotalSMZ3/Regions/Zelda/SkullWoods.py | 35 + .../TotalSMZ3/Regions/Zelda/SwampPalace.py | 43 + .../TotalSMZ3/Regions/Zelda/ThievesTown.py | 39 + .../TotalSMZ3/Regions/Zelda/TowerOfHera.py | 36 + .../TotalSMZ3/Regions/Zelda/TurtleRock.py | 55 ++ .../smz3/TotalSMZ3/Regions/Zelda/__init__.py | 0 worlds/smz3/TotalSMZ3/Regions/__init__.py | 0 worlds/smz3/TotalSMZ3/Text/Dialog.py | 323 +++++++ worlds/smz3/TotalSMZ3/Text/Scripts/Blind.txt | 87 ++ worlds/smz3/TotalSMZ3/Text/Scripts/Ganon.txt | 189 ++++ .../smz3/TotalSMZ3/Text/Scripts/General.yaml | 385 +++++++++ .../TotalSMZ3/Text/Scripts/StringTable.yaml | 433 ++++++++++ .../smz3/TotalSMZ3/Text/Scripts/TavernMan.txt | 354 ++++++++ .../TotalSMZ3/Text/Scripts/TriforceRoom.txt | 103 +++ worlds/smz3/TotalSMZ3/Text/StringTable.py | 87 ++ worlds/smz3/TotalSMZ3/Text/Texts.py | 97 +++ worlds/smz3/TotalSMZ3/Text/__init__.py | 0 worlds/smz3/TotalSMZ3/World.py | 166 ++++ worlds/smz3/TotalSMZ3/__init__.py | 0 worlds/smz3/__init__.py | 438 ++++++++++ .../data/custom_sprite/off_world_item.bin | Bin 0 -> 264 bytes .../custom_sprite/off_world_prog_item.bin | Bin 0 -> 264 bytes worlds/smz3/data/zsm.ips | Bin 0 -> 1460417 bytes worlds/smz3/ips.py | 252 ++++++ 83 files changed, 7047 insertions(+), 16 deletions(-) create mode 100644 WebHostLib/static/assets/gameInfo/en_SMZ3.md create mode 100644 WebHostLib/static/assets/tutorial/smz3/multiworld_en.md create mode 100644 worlds/smz3/LICENSE create mode 100644 worlds/smz3/Options.py create mode 100644 worlds/smz3/Rom.py create mode 100644 worlds/smz3/TotalSMZ3/Config.py create mode 100644 worlds/smz3/TotalSMZ3/Item.py create mode 100644 worlds/smz3/TotalSMZ3/Location.py create mode 100644 worlds/smz3/TotalSMZ3/Patch.py create mode 100644 worlds/smz3/TotalSMZ3/Region.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Blue.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Green.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Kraid.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Pink.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/Central.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/East.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Inner.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Outer.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/East.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/West.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/Crocomire.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/East.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/West.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/WreckedShip.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/SuperMetroid/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/CastleTower.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/East.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/West.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/Mire.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthEast.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthWest.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/South.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/DesertPalace.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/EasternPalace.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/GanonsTower.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/HyruleCastle.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/IcePalace.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/East.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/West.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/MiseryMire.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/PalaceOfDarkness.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/SkullWoods.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/SwampPalace.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/ThievesTown.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/TowerOfHera.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/TurtleRock.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/Zelda/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Regions/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/Text/Dialog.py create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/Blind.txt create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/Ganon.txt create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/General.yaml create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/StringTable.yaml create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/TavernMan.txt create mode 100644 worlds/smz3/TotalSMZ3/Text/Scripts/TriforceRoom.txt create mode 100644 worlds/smz3/TotalSMZ3/Text/StringTable.py create mode 100644 worlds/smz3/TotalSMZ3/Text/Texts.py create mode 100644 worlds/smz3/TotalSMZ3/Text/__init__.py create mode 100644 worlds/smz3/TotalSMZ3/World.py create mode 100644 worlds/smz3/TotalSMZ3/__init__.py create mode 100644 worlds/smz3/__init__.py create mode 100644 worlds/smz3/data/custom_sprite/off_world_item.bin create mode 100644 worlds/smz3/data/custom_sprite/off_world_prog_item.bin create mode 100644 worlds/smz3/data/zsm.ips create mode 100644 worlds/smz3/ips.py diff --git a/Patch.py b/Patch.py index 2b5ccf12..3cf7d001 100644 --- a/Patch.py +++ b/Patch.py @@ -18,12 +18,14 @@ current_patch_version = 3 GAME_ALTTP = "A Link to the Past" GAME_SM = "Super Metroid" GAME_SOE = "Secret of Evermore" -supported_games = {"A Link to the Past", "Super Metroid", "Secret of Evermore"} +GAME_SMZ3 = "SMZ3" +supported_games = {"A Link to the Past", "Super Metroid", "Secret of Evermore", "SMZ3"} preferred_endings = { GAME_ALTTP: "apbp", GAME_SM: "apm3", - GAME_SOE: "apsoe" + GAME_SOE: "apsoe", + GAME_SMZ3: "apsmz" } @@ -34,6 +36,10 @@ def generate_yaml(patch: bytes, metadata: Optional[dict] = None, game: str = GAM from worlds.sm.Rom import JAP10HASH as HASH elif game == GAME_SOE: from worlds.soe.Patch import USHASH as HASH + elif game == GAME_SMZ3: + from worlds.alttp.Rom import JAP10HASH as ALTTPHASH + from worlds.sm.Rom import JAP10HASH as SMHASH + HASH = ALTTPHASH + SMHASH else: raise RuntimeError(f"Selected game {game} for base rom not found.") @@ -63,7 +69,7 @@ def create_patch_file(rom_file_to_patch: str, server: str = "", destination: str meta, game) target = destination if destination else os.path.splitext(rom_file_to_patch)[0] + ( - ".apbp" if game == GAME_ALTTP else ".apm3") + ".apbp" if game == GAME_ALTTP else ".apsmz" if game == GAME_SMZ3 else ".apm3") write_lzma(bytes, target) return target @@ -90,6 +96,8 @@ def get_base_rom_data(game: str): elif game == GAME_SOE: file_name = Utils.get_options()["soe_options"]["rom_file"] get_base_rom_bytes = lambda: bytes(read_rom(open(file_name, "rb"))) + elif game == GAME_SMZ3: + from worlds.smz3.Rom import get_base_rom_bytes else: raise RuntimeError("Selected game for base rom not found.") return get_base_rom_bytes() @@ -218,6 +226,13 @@ if __name__ == "__main__": if 'server' in data: Utils.persistent_store("servers", data['hash'], data['server']) print(f"Host is {data['server']}") + elif rom.endswith(".apsmz"): + print(f"Applying patch {rom}") + data, target = create_rom_file(rom) + print(f"Created rom {target}.") + if 'server' in data: + Utils.persistent_store("servers", data['hash'], data['server']) + print(f"Host is {data['server']}") elif rom.endswith(".archipelago"): import json import zlib diff --git a/SNIClient.py b/SNIClient.py index 468a1da2..ba13818f 100644 --- a/SNIClient.py +++ b/SNIClient.py @@ -23,9 +23,10 @@ from NetUtils import * from worlds.alttp import Regions, Shops from worlds.alttp.Rom import ROM_PLAYER_LIMIT from worlds.sm.Rom import ROM_PLAYER_LIMIT as SM_ROM_PLAYER_LIMIT +from worlds.smz3.Rom import ROM_PLAYER_LIMIT as SMZ3_ROM_PLAYER_LIMIT import Utils from CommonClient import CommonContext, server_loop, console_loop, ClientCommandProcessor, gui_enabled, get_base_parser -from Patch import GAME_ALTTP, GAME_SM +from Patch import GAME_ALTTP, GAME_SM, GAME_SMZ3 snes_logger = logging.getLogger("SNES") @@ -266,6 +267,18 @@ SM_RECV_ITEM_PLAYER_ADDR = SAVEDATA_START + 0x4D3 # 1 byte SM_DEATH_LINK_ACTIVE_ADDR = ROM_START + 0x277f04 # 1 byte +# SMZ3 +SMZ3_ROMNAME_START = 0x00FFC0 + +SMZ3_INGAME_MODES = {0x07, 0x09, 0x0b} +SMZ3_ENDGAME_MODES = {0x26, 0x27} +SMZ3_DEATH_MODES = {0x15, 0x17, 0x18, 0x19, 0x1A} + +SMZ3_RECV_PROGRESS_ADDR = SRAM_START + 0x4000 # 2 bytes +SMZ3_RECV_ITEM_ADDR = SAVEDATA_START + 0x4D2 # 1 byte +SMZ3_RECV_ITEM_PLAYER_ADDR = SAVEDATA_START + 0x4D3 # 1 byte + + location_shop_ids = set([info[0] for name, info in Shops.shop_table.items()]) location_table_uw = {"Blind's Hideout - Top": (0x11d, 0x10), @@ -968,23 +981,29 @@ async def game_watcher(ctx: Context): game_name = await snes_read(ctx, SM_ROMNAME_START, 2) if game_name is None: continue - elif game_name == b"SM": + elif game_name[:2] == b"SM": ctx.game = GAME_SM ctx.items_handling = 0b001 # full local else: - ctx.game = GAME_ALTTP - ctx.items_handling = 0b001 # full local + game_name = await snes_read(ctx, SMZ3_ROMNAME_START, 3) + if game_name == b"ZSM": + ctx.game = GAME_SMZ3 + ctx.items_handling = 0b101 # local items and remote start inventory + else: + ctx.game = GAME_ALTTP + ctx.items_handling = 0b001 # full local - rom = await snes_read(ctx, SM_ROMNAME_START if ctx.game == GAME_SM else ROMNAME_START, ROMNAME_SIZE) + rom = await snes_read(ctx, SM_ROMNAME_START if ctx.game == GAME_SM else SMZ3_ROMNAME_START if ctx.game == GAME_SMZ3 else ROMNAME_START, ROMNAME_SIZE) if rom is None or rom == bytes([0] * ROMNAME_SIZE): continue ctx.rom = rom - death_link = await snes_read(ctx, DEATH_LINK_ACTIVE_ADDR if ctx.game == GAME_ALTTP else - SM_DEATH_LINK_ACTIVE_ADDR, 1) - if death_link: - ctx.death_link_allow_survive = bool(death_link[0] & 0b10) - await ctx.update_death_link(bool(death_link[0] & 0b1)) + if ctx.game != GAME_SMZ3: + death_link = await snes_read(ctx, DEATH_LINK_ACTIVE_ADDR if ctx.game == GAME_ALTTP else + SM_DEATH_LINK_ACTIVE_ADDR, 1) + if death_link: + ctx.death_link_allow_survive = bool(death_link[0] & 0b10) + await ctx.update_death_link(bool(death_link[0] & 0b1)) if not ctx.prev_rom or ctx.prev_rom != ctx.rom: ctx.locations_checked = set() ctx.locations_scouted = set() @@ -1129,6 +1148,69 @@ async def game_watcher(ctx: Context): color(ctx.player_names[item.player], 'yellow'), ctx.location_name_getter(item.location), itemOutPtr, len(ctx.items_received))) await snes_flush_writes(ctx) + elif ctx.game == GAME_SMZ3: + currentGame = await snes_read(ctx, SRAM_START + 0x33FE, 2) + if (currentGame is not None): + if (currentGame[0] != 0): + gamemode = await snes_read(ctx, WRAM_START + 0x0998, 1) + endGameModes = SM_ENDGAME_MODES + else: + gamemode = await snes_read(ctx, WRAM_START + 0x10, 1) + endGameModes = ENDGAME_MODES + + if gamemode is not None and (gamemode[0] in endGameModes): + if not ctx.finished_game: + await ctx.send_msgs([{"cmd": "StatusUpdate", "status": ClientStatus.CLIENT_GOAL}]) + ctx.finished_game = True + continue + + data = await snes_read(ctx, SMZ3_RECV_PROGRESS_ADDR + 0x680, 4) + if data is None: + continue + + recv_index = data[0] | (data[1] << 8) + recv_item = data[2] | (data[3] << 8) + + while (recv_index < recv_item): + itemAdress = recv_index * 8 + message = await snes_read(ctx, SMZ3_RECV_PROGRESS_ADDR + 0x700 + itemAdress, 8) + # worldId = message[0] | (message[1] << 8) # unused + # itemId = message[2] | (message[3] << 8) # unused + isZ3Item = ((message[5] & 0x80) != 0) + maskedPart = (message[5] & 0x7F) if isZ3Item else message[5] + itemIndex = ((message[4] | (maskedPart << 8)) >> 3) + (256 if isZ3Item else 0) + + recv_index += 1 + snes_buffered_write(ctx, SMZ3_RECV_PROGRESS_ADDR + 0x680, bytes([recv_index & 0xFF, (recv_index >> 8) & 0xFF])) + + from worlds.smz3.TotalSMZ3.Location import locations_start_id + location_id = locations_start_id + itemIndex + + ctx.locations_checked.add(location_id) + location = ctx.location_name_getter(location_id) + snes_logger.info(f'New Check: {location} ({len(ctx.locations_checked)}/{len(ctx.missing_locations) + len(ctx.checked_locations)})') + await ctx.send_msgs([{"cmd": 'LocationChecks', "locations": [location_id]}]) + + data = await snes_read(ctx, SMZ3_RECV_PROGRESS_ADDR + 0x600, 4) + if data is None: + continue + + # recv_itemOutPtr = data[0] | (data[1] << 8) # unused + itemOutPtr = data[2] | (data[3] << 8) + + from worlds.smz3.TotalSMZ3.Item import items_start_id + if itemOutPtr < len(ctx.items_received): + item = ctx.items_received[itemOutPtr] + itemId = item.item - items_start_id + + playerID = item.player if item.player <= SMZ3_ROM_PLAYER_LIMIT else 0 + snes_buffered_write(ctx, SMZ3_RECV_PROGRESS_ADDR + itemOutPtr * 4, bytes([playerID & 0xFF, (playerID >> 8) & 0xFF, itemId & 0xFF, (itemId >> 8) & 0xFF])) + itemOutPtr += 1 + snes_buffered_write(ctx, SMZ3_RECV_PROGRESS_ADDR + 0x602, bytes([itemOutPtr & 0xFF, (itemOutPtr >> 8) & 0xFF])) + logging.info('Received %s from %s (%s) (%d/%d in list)' % ( + color(ctx.item_name_getter(item.item), 'red', 'bold'), color(ctx.player_names[item.player], 'yellow'), + ctx.location_name_getter(item.location), itemOutPtr, len(ctx.items_received))) + await snes_flush_writes(ctx) async def run_game(romfile): diff --git a/WebHostLib/static/assets/gameInfo/en_SMZ3.md b/WebHostLib/static/assets/gameInfo/en_SMZ3.md new file mode 100644 index 00000000..91dace7b --- /dev/null +++ b/WebHostLib/static/assets/gameInfo/en_SMZ3.md @@ -0,0 +1,35 @@ +# SMZ3 + +## Where is the settings page? + +The [player settings page for this game](../player-settings) contains all the options you need to configure and export a +config file. + +## What does randomization do to this game? + +Items which the player would normally acquire throughout the game have been moved around. Logic remains, so the game is +always able to be completed, but because of the item shuffle the player may need to access certain areas before they +would in the vanilla game. + +## What items and locations get shuffled? + +All main inventory items, collectables, power-ups and ammunition can be shuffled, and all locations in the game which +could contain any of those items may have their contents changed. + +## Which items can be in another player's world? + +Any of the items which can be shuffled may also be placed into another player's world. It is possible to choose to limit +certain items to your own world. + +## What does another world's item look like in Super Metroid? + +A unique item sprite has been added to the game to represent items belonging to another world. + +## What does another world's item look like in LttP? + +Items belonging to other worlds are represented by a Power Star from Super Mario World. + +## When the player receives an item, what happens? + +When the player receives an item, a text box will appear to show which item was received, and from whom. + diff --git a/WebHostLib/static/assets/tutorial/smz3/multiworld_en.md b/WebHostLib/static/assets/tutorial/smz3/multiworld_en.md new file mode 100644 index 00000000..7fef4af0 --- /dev/null +++ b/WebHostLib/static/assets/tutorial/smz3/multiworld_en.md @@ -0,0 +1,146 @@ +# Super Metroid Setup Guide + +## Required Software + +- One of the client programs: + - [SNIClient](https://github.com/ArchipelagoMW/Archipelago/releases), included with the main + Archipelago install. Make sure to check the box for `SNI Client - Super Metroid Patch Setup` and + `SNI Client - A Link to the Past Patch Setup` +- Hardware or software capable of loading and playing SNES ROM files + - An emulator capable of connecting to SNI such as: + - snes9x Multitroid + from: [snes9x Multitroid Download](https://drive.google.com/drive/folders/1_ej-pwWtCAHYXIrvs5Hro16A1s9Hi3Jz), + - BizHawk from: [BizHawk Website](http://tasvideos.org/BizHawk.html) + - An SD2SNES, FXPak Pro ([FXPak Pro Store Page](https://krikzz.com/store/home/54-fxpak-pro.html)), or other + compatible hardware +- Your legally obtained Super Metroid ROM file, probably named `Super Metroid (Japan, USA).sfc` and + Your Japanese Zelda3 v1.0 ROM file, probably named `Zelda no Densetsu - Kamigami no Triforce (Japan).sfc` + +## Installation Procedures + +### Windows Setup + +1. During the installation of Archipelago, you will have been asked to install the SNI Client. If you did not do this, + or you are on an older version, you may run the installer again to install the SNI Client. +2. During setup, you will be asked to locate your base ROM files. This is your Super Metroid and Zelda3 ROM files. +3. If you are using an emulator, you should assign your Lua capable emulator as your default program for launching ROM + files. + 1. Extract your emulator's folder to your Desktop, or somewhere you will remember. + 2. Right-click on a ROM file and select **Open with...** + 3. Check the box next to **Always use this app to open .sfc files** + 4. Scroll to the bottom of the list and click the grey text **Look for another App on this PC** + 5. Browse for your emulator's `.exe` file and click **Open**. This file should be located inside the folder you + extracted in step one. + +## Create a Config (.yaml) File + +### What is a config file and why do I need one? + +See the guide on setting up a basic YAML at the Archipelago setup +guide: [Basic Multiworld Setup Guide](/tutorial/archipelago/setup/en) + +### Where do I get a config file? + +The Player Settings page on the website allows you to configure your personal settings and export a config file from +them. Player settings page: [SMZ3 Player Settings Page](/games/SMZ3/player-settings) + +### Verifying your config file + +If you would like to validate your config file to make sure it works, you may do so on the YAML Validator page. YAML +validator page: [YAML Validation page](/mysterycheck) + +## Generating a Single-Player Game + +1. Navigate to the Player Settings page, configure your options, and click the "Generate Game" button. + - Player Settings page: [SMZ3 Player Settings Page](/games/SMZ3/player-settings) +2. You will be presented with a "Seed Info" page. +3. Click the "Create New Room" link. +4. You will be presented with a server page, from which you can download your patch file. +5. Double-click on your patch file, and the SMZ3 Client will launch automatically, create your ROM from the + patch file, and open your emulator for you. +6. Since this is a single-player game, you will no longer need the client, so feel free to close it. + +## Joining a MultiWorld Game + +### Obtain your patch file and create your ROM + +When you join a multiworld game, you will be asked to provide your config file to whoever is hosting. Once that is done, +the host will provide you with either a link to download your patch file, or with a zip file containing everyone's patch +files. Your patch file should have a `.apsmz` extension. + +Put your patch file on your desktop or somewhere convenient, and double click it. This should automatically launch the +client, and will also create your ROM in the same place as your patch file. + +### Connect to the client + +#### With an emulator + +When the client launched automatically, SNI should have also automatically launched in the background. If this is its +first time launching, you may be prompted to allow it to communicate through the Windows Firewall. + +##### snes9x Multitroid + +1. Load your ROM file if it hasn't already been loaded. +2. Click on the File menu and hover on **Lua Scripting** +3. Click on **New Lua Script Window...** +4. In the new window, click **Browse...** +5. Select the connector lua file included with your client + - SuperNintendoClient users should download `sniConnector.lua` from the client download page + - SNIClient users should look in their Archipelago folder for `/SNI/lua/x64` or `/SNI/lua/x86` depending on if the + emulator is 64-bit or 32-bit. + +##### BizHawk + +1. Ensure you have the BSNES core loaded. You may do this by clicking on the Tools menu in BizHawk and following these + menu options: + `Config --> Cores --> SNES --> BSNES` + Once you have changed the loaded core, you must restart BizHawk. +2. Load your ROM file if it hasn't already been loaded. +3. Click on the Tools menu and click on **Lua Console** +4. Click the button to open a new Lua script. +5. Select the `Connector.lua` file included with your client + - SuperNintendoClient users should download `sniConnector.lua` from the client download page + - SNIClient users should look in their Archipelago folder for `/SNI/lua/x64` or `/SNI/lua/x86` depending on if the + emulator is 64-bit or 32-bit. Please note the most recent versions of BizHawk are 64-bit only. + +#### With hardware + +This guide assumes you have downloaded the correct firmware for your device. If you have not done so already, please do +this now. SD2SNES and FXPak Pro users may download the appropriate firmware on the SD2SNES releases page. SD2SNES +releases page: [SD2SNES Releases Page](https://github.com/RedGuyyyy/sd2snes/releases) + +Other hardware may find helpful information on the usb2snes platforms +page: [usb2snes Supported Platforms Page](http://usb2snes.com/#supported-platforms) + +1. Close your emulator, which may have auto-launched. +2. Power on your device and load the ROM. + +### Connect to the Archipelago Server + +The patch file which launched your client should have automatically connected you to the AP Server. There are a few +reasons this may not happen however, including if the game is hosted on the website but was generated elsewhere. If the +client window shows "Server Status: Not Connected", simply ask the host for the address of the server, and copy/paste it +into the "Server" input field then press enter. + +The client will attempt to reconnect to the new server address, and should momentarily show "Server Status: Connected". + +### Play the game + +When the client shows both SNES Device and Server as connected, you're ready to begin playing. Congratulations on +successfully joining a multiworld game! + +## Hosting a MultiWorld game + +The recommended way to host a game is to use our hosting service. The process is relatively simple: + +1. Collect config files from your players. +2. Create a zip file containing your players' config files. +3. Upload that zip file to the Generate page above. + - Generate page: [WebHost Seed Generation Page](/generate) +4. Wait a moment while the seed is generated. +5. When the seed is generated, you will be redirected to a "Seed Info" page. +6. Click "Create New Room". This will take you to the server page. Provide the link to this page to your players, so + they may download their patch files from there. +7. Note that a link to a MultiWorld Tracker is at the top of the room page. The tracker shows the progress of all + players in the game. Any observers may also be given the link to this page. +8. Once all players have joined, you may begin playing. diff --git a/WebHostLib/templates/macros.html b/WebHostLib/templates/macros.html index 9af0b89b..cb345976 100644 --- a/WebHostLib/templates/macros.html +++ b/WebHostLib/templates/macros.html @@ -40,7 +40,7 @@ {% elif patch.game == "Super Mario 64" and room.seed.slots|length == 1 %} <a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download> Download APSM64EX File...</a> - {% elif patch.game in ["A Link to the Past", "Secret of Evermore", "Super Metroid"] %} + {% elif patch.game in ["A Link to the Past", "Secret of Evermore", "Super Metroid", "SMZ3"] %} <a href="{{ url_for("download_patch", patch_id=patch.id, room_id=room.id) }}" download> Download Patch File...</a> {% else %} diff --git a/host.yaml b/host.yaml index 46fdd741..9b80b0b6 100644 --- a/host.yaml +++ b/host.yaml @@ -102,10 +102,10 @@ sm_options: rom_start: true factorio_options: executable: "factorio\\bin\\x64\\factorio" -minecraft_options: +minecraft_options: forge_directory: "Minecraft Forge server" max_heap_size: "2G" -oot_options: +oot_options: # File name of the OoT v1.0 ROM rom_file: "The Legend of Zelda - Ocarina of Time.z64" soe_options: @@ -113,3 +113,10 @@ soe_options: rom_file: "Secret of Evermore (USA).sfc" ffr_options: display_msgs: true +smz3_options: + # Set this to your SNI folder location if you want the MultiClient to attempt an auto start, does nothing if not found + sni: "SNI" + # Set this to false to never autostart a rom (such as after patching) + # True for operating system default program + # Alternatively, a path to a program to open the .sfc file with + rom_start: true \ No newline at end of file diff --git a/worlds/smz3/LICENSE b/worlds/smz3/LICENSE new file mode 100644 index 00000000..725f036f --- /dev/null +++ b/worlds/smz3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Thomas Backmark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/worlds/smz3/Options.py b/worlds/smz3/Options.py new file mode 100644 index 00000000..ad59bc6d --- /dev/null +++ b/worlds/smz3/Options.py @@ -0,0 +1,63 @@ +import typing +from Options import Choice, Option + +class SMLogic(Choice): + """This option selects what kind of logic to use for item placement inside + Super Metroid. + + Normal - Normal logic includes only what Super Metroid teaches players + itself. Anything that's not demonstrated in-game or by the intro cutscenes + will not be required here. + + Hard - Hard logic is based upon the "no major glitches" ruleset and + includes most tricks that are considered minor glitches, with some + restrictions. You'll want to be somewhat of a Super Metroid veteran for + this logic. + + See https://samus.link/information for required moves.""" + display_name = "SMLogic" + option_Normal = 0 + option_Hard = 1 + default = 0 + +class SwordLocation(Choice): + """This option decides where the first sword will be placed. + Randomized - The sword can be placed anywhere. + Early - The sword will be placed in a location accessible from the start of + the game. + Unce assured - The sword will always be placed on Link's Uncle.""" + display_name = "Sword Location" + option_Randomized = 0 + option_Early = 1 + option_Uncle = 2 + default = 0 + +class MorphLocation(Choice): + """This option decides where the morph ball will be placed. + Randomized - The morph ball can be placed anywhere. + Early - The morph ball will be placed in a location accessible from the + start of the game. + Original location - The morph ball will always be placed at its original + location.""" + display_name = "Morph Location" + option_Randomized = 0 + option_Early = 1 + option_Original = 2 + default = 0 + +class KeyShuffle(Choice): + """This option decides how dungeon items such as keys are shuffled. + None - A Link to the Past dungeon items can only be placed inside the + dungeon they belong to, and there are no changes to Super Metroid. + Keysanity - See https://samus.link/information""" + display_name = "Key Shuffle" + option_None = 0 + option_Keysanity = 1 + default = 0 + +smz3_options: typing.Dict[str, type(Option)] = { + "sm_logic": SMLogic, + "sword_location": SwordLocation, + "morph_location": MorphLocation, + "key_shuffle": KeyShuffle + } diff --git a/worlds/smz3/Rom.py b/worlds/smz3/Rom.py new file mode 100644 index 00000000..eb78697b --- /dev/null +++ b/worlds/smz3/Rom.py @@ -0,0 +1,76 @@ +import Utils +from Patch import read_rom + +SMJAP10HASH = '21f3e98df4780ee1c667b84e57d88675' +LTTPJAP10HASH = '03a63945398191337e896e5771f77173' +ROM_PLAYER_LIMIT = 256 + +import hashlib +import os + + +def get_base_rom_bytes(file_name: str = "") -> bytes: + base_rom_bytes = getattr(get_base_rom_bytes, "base_rom_bytes", None) + if not base_rom_bytes: + sm_file_name = get_sm_base_rom_path() + sm_base_rom_bytes = bytes(read_rom(open(sm_file_name, "rb"))) + + basemd5 = hashlib.md5() + basemd5.update(sm_base_rom_bytes) + if SMJAP10HASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for JAP(1.0) release. ' + 'Get the correct game and version, then dump it') + lttp_file_name = get_lttp_base_rom_path() + lttp_base_rom_bytes = bytes(read_rom(open(lttp_file_name, "rb"))) + + basemd5 = hashlib.md5() + basemd5.update(lttp_base_rom_bytes) + if LTTPJAP10HASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for JAP(1.0) release. ' + 'Get the correct game and version, then dump it') + + get_base_rom_bytes.base_rom_bytes = bytes(combine_smz3_rom(sm_base_rom_bytes, lttp_base_rom_bytes)) + return get_base_rom_bytes.base_rom_bytes + +def get_sm_base_rom_path(file_name: str = "") -> str: + options = Utils.get_options() + if not file_name: + file_name = options["sm_options"]["rom_file"] + if not os.path.exists(file_name): + file_name = Utils.local_path(file_name) + return file_name + +def get_lttp_base_rom_path(file_name: str = "") -> str: + options = Utils.get_options() + if not file_name: + file_name = options["lttp_options"]["rom_file"] + if not os.path.exists(file_name): + file_name = Utils.local_path(file_name) + return file_name + +def combine_smz3_rom(sm_rom: bytes, lttp_rom: bytes): + combined = bytearray(0x600000) + # SM hi bank + pos = 0 + srcpos = 0 + for i in range(0x40): + combined[pos + 0x8000:pos + 0x8000 + 0x8000] = sm_rom[srcpos:srcpos + 0x8000] + srcpos += 0x8000 + pos += 0x10000 + + # SM lo bank + pos = 0 + for i in range(0x20): + combined[pos:pos + 0x8000] = sm_rom[srcpos:srcpos + 0x8000] + srcpos += 0x8000 + pos += 0x10000 + + # Z3 hi bank + pos = 0x400000 + srcpos = 0 + for i in range(0x20): + combined[pos + 0x8000:pos + 0x8000 + 0x8000] = lttp_rom[srcpos:srcpos + 0x8000] + srcpos += 0x8000 + pos += 0x10000 + + return combined diff --git a/worlds/smz3/TotalSMZ3/Config.py b/worlds/smz3/TotalSMZ3/Config.py new file mode 100644 index 00000000..bfcd541b --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Config.py @@ -0,0 +1,107 @@ +from enum import Enum +from typing import Dict, List + +class GameMode(Enum): + Normal = 0 + Multiworld = 1 + +class Z3Logic(Enum): + Normal = 0 + Nmg = 1 + Owg = 2 + +class SMLogic(Enum): + Normal = 0 + Hard = 1 + +class SwordLocation(Enum): + Randomized = 0 + Early = 1 + Uncle = 2 + +class MorphLocation(Enum): + Randomized = 0 + Early = 1 + Original = 2 + +class Goal(Enum): + DefeatBoth = 0 + +class KeyShuffle(Enum): + Null = 0 + Keysanity = 1 + +class GanonInvincible(Enum): + Never = 0 + BeforeCrystals = 1 + BeforeAllDungeons = 2 + Always = 3 + +class Config: + GameMode: GameMode = GameMode.Multiworld + Z3Logic: Z3Logic = Z3Logic.Normal + SMLogic: SMLogic = SMLogic.Normal + SwordLocation: SwordLocation= SwordLocation.Randomized + MorphLocation: MorphLocation = MorphLocation.Randomized + Goal: Goal = Goal.DefeatBoth + KeyShuffle: KeyShuffle = KeyShuffle.Null + Keysanity: bool = KeyShuffle != KeyShuffle.Null + Race: bool = False + GanonInvincible: GanonInvincible = GanonInvincible.BeforeCrystals + + def __init__(self, options: Dict[str, str]): + self.GameMode = self.ParseOption(options, GameMode.Multiworld) + self.Z3Logic = self.ParseOption(options, Z3Logic.Normal) + self.SMLogic = self.ParseOption(options, SMLogic.Normal) + self.SwordLocation = self.ParseOption(options, SwordLocation.Randomized) + self.MorphLocation = self.ParseOption(options, MorphLocation.Randomized) + self.Goal = self.ParseOption(options, Goal.DefeatBoth) + self.GanonInvincible = self.ParseOption(options, GanonInvincible.BeforeCrystals) + self.KeyShuffle = self.ParseOption(options, KeyShuffle.Null) + self.Keysanity = self.KeyShuffle != KeyShuffle.Null + self.Race = self.ParseOptionWith(options, "Race", False) + + def ParseOption(self, options:Dict[str, str], defaultValue:Enum): + enumKey = defaultValue.__class__.__name__.lower() + if (enumKey in options): + return defaultValue.__class__[options[enumKey]] + return defaultValue + + def ParseOptionWith(self, options:Dict[str, str], option:str, defaultValue:bool): + if (option.lower() in options): + return options[option.lower()] + return defaultValue + + """ public static RandomizerOption GetRandomizerOption<T>(string description, string defaultOption = "") where T : Enum { + var enumType = typeof(T); + var values = Enum.GetValues(enumType).Cast<Enum>(); + + return new RandomizerOption { + Key = enumType.Name.ToLower(), + Description = description, + Type = RandomizerOptionType.Dropdown, + Default = string.IsNullOrEmpty(defaultOption) ? GetDefaultValue<T>().ToLString() : defaultOption, + Values = values.ToDictionary(k => k.ToLString(), v => v.GetDescription()) + }; + } + + public static RandomizerOption GetRandomizerOption(string name, string description, bool defaultOption = false) { + return new RandomizerOption { + Key = name.ToLower(), + Description = description, + Type = RandomizerOptionType.Checkbox, + Default = defaultOption.ToString().ToLower(), + Values = new Dictionary<string, string>() + }; + } + + public static TEnum GetDefaultValue<TEnum>() where TEnum : Enum { + Type t = typeof(TEnum); + var attributes = (DefaultValueAttribute[])t.GetCustomAttributes(typeof(DefaultValueAttribute), false); + if ((attributes?.Length ?? 0) > 0) { + return (TEnum)attributes.First().Value; + } + else { + return default; + } + } """ diff --git a/worlds/smz3/TotalSMZ3/Item.py b/worlds/smz3/TotalSMZ3/Item.py new file mode 100644 index 00000000..bad16ce9 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Item.py @@ -0,0 +1,782 @@ +from enum import Enum +import re +import copy +from typing import List + +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic + +class ItemType(Enum): + Nothing = 0 + MapHC = 0x7F + MapEP = 0x7D + MapDP = 0x7C + MapTH = 0x75 + MapPD = 0x79 + MapSP = 0x7A + MapSW = 0x77 + MapTT = 0x74 + MapIP = 0x76 + MapMM = 0x78 + MapTR = 0x73 + MapGT = 0x72 + + CompassEP = 0x8D + CompassDP = 0x8C + CompassTH = 0x85 + CompassPD = 0x89 + CompassSP = 0x8A + CompassSW = 0x87 + CompassTT = 0x84 + CompassIP = 0x86 + CompassMM = 0x88 + CompassTR = 0x83 + CompassGT = 0x82 + + BigKeyEP = 0x9D + BigKeyDP = 0x9C + BigKeyTH = 0x95 + BigKeyPD = 0x99 + BigKeySP = 0x9A + BigKeySW = 0x97 + BigKeyTT = 0x94 + BigKeyIP = 0x96 + BigKeyMM = 0x98 + BigKeyTR = 0x93 + BigKeyGT = 0x92 + + KeyHC = 0xA0 + KeyCT = 0xA4 + KeyDP = 0xA3 + KeyTH = 0xAA + KeyPD = 0xA6 + KeySP = 0xA5 + KeySW = 0xA8 + KeyTT = 0xAB + KeyIP = 0xA9 + KeyMM = 0xA7 + KeyTR = 0xAC + KeyGT = 0xAD + + Key = 0x24 + Compass = 0x25 + BigKey = 0x32 + Map = 0x33 + + Something = 0x6B + + ProgressiveTunic = 0x60 + ProgressiveShield = 0x5F + ProgressiveSword = 0x5E + Bow = 0x0B + SilverArrows = 0x58 + BlueBoomerang = 0x0C + RedBoomerang = 0x2A + Hookshot = 0x0A + Mushroom = 0x29 + Powder = 0x0D + Firerod = 0x07 + Icerod = 0x08 + Bombos = 0x0f + Ether = 0x10 + Quake = 0x11 + Lamp = 0x12 + Hammer = 0x09 + Shovel = 0x13 + Flute = 0x14 + Bugnet = 0x21 + Book = 0x1D + Bottle = 0x16 + Somaria = 0x15 + Byrna = 0x18 + Cape = 0x19 + Mirror = 0x1A + Boots = 0x4B + ProgressiveGlove = 0x61 + Flippers = 0x1E + MoonPearl = 0x1F + HalfMagic = 0x4E + HeartPiece = 0x17 + HeartContainer = 0x3E + HeartContainerRefill = 0x3F + ThreeBombs = 0x28 + Arrow = 0x43 + TenArrows = 0x44 + OneRupee = 0x34 + FiveRupees = 0x35 + TwentyRupees = 0x36 + TwentyRupees2 = 0x47 + FiftyRupees = 0x41 + OneHundredRupees = 0x40 + ThreeHundredRupees = 0x46 + BombUpgrade5 = 0x51 + BombUpgrade10 = 0x52 + ArrowUpgrade5 = 0x53 + ArrowUpgrade10 = 0x54 + + CardCrateriaL1 = 0xD0 + CardCrateriaL2 = 0xD1 + CardCrateriaBoss = 0xD2 + CardBrinstarL1 = 0xD3 + CardBrinstarL2 = 0xD4 + CardBrinstarBoss = 0xD5 + CardNorfairL1 = 0xD6 + CardNorfairL2 = 0xD7 + CardNorfairBoss = 0xD8 + CardMaridiaL1 = 0xD9 + CardMaridiaL2 = 0xDA + CardMaridiaBoss = 0xDB + CardWreckedShipL1 = 0xDC + CardWreckedShipBoss = 0xDD + CardLowerNorfairL1 = 0xDE + CardLowerNorfairBoss = 0xDF + + Missile = 0xC2 + Super = 0xC3 + PowerBomb = 0xC4 + Grapple = 0xB0 + XRay = 0xB1 + ETank = 0xC0 + ReserveTank = 0xC1 + Charge = 0xBB + Ice = 0xBC + Wave = 0xBD + Spazer = 0xBE + Plasma = 0xBF + Varia = 0xB2 + Gravity = 0xB6 + Morph = 0xB4 + Bombs = 0xB9 + SpringBall = 0xB3 + ScrewAttack = 0xB5 + HiJump = 0xB7 + SpaceJump = 0xB8 + SpeedBooster = 0xBA + + BottleWithRedPotion = 0x2B + BottleWithGreenPotion = 0x2C + BottleWithBluePotion = 0x2D + BottleWithFairy = 0x3D + BottleWithBee = 0x3C + BottleWithGoldBee = 0x48 + RedContent = 0x2E + GreenContent = 0x2F + BlueContent = 0x30 + BeeContent = 0x0E + +class Item: + Name: str + Type: ItemType + Progression: bool + + dungeon = re.compile("^(BigKey|Key|Map|Compass)") + bigKey = re.compile("^BigKey") + key = re.compile("^Key") + map = re.compile("^Map") + compass = re.compile("^Compass") + keycard = re.compile("^Card") + + def IsDungeonItem(self): return self.dungeon.match(self.Type.name) + def IsBigKey(self): return self.bigKey.match(self.Type.name) + def IsKey(self): return self.key.match(self.Type.name) + def IsMap(self): return self.map.match(self.Type.name) + def IsCompass(self): return self.compass.match(self.Type.name) + def IsKeycard(self): return self.keycard.match(self.Type.name) + + def Is(self, type: ItemType, world): + return self.Type == type and self.World == world + + def IsNot(self, type: ItemType, world): + return not self.Is(type, world) + + def __init__(self, itemType: ItemType, world = None): + self.Type = itemType + self.World = world + self.Progression = False + #self.Name = itemType.GetDescription() + + @staticmethod + def Nothing(world): + return Item(ItemType.Nothing, world) + + @staticmethod + def AddRange(itemPool, count, item): + for i in range(count): + itemPool.append(copy.copy(item)) + + @staticmethod + def CreateProgressionPool(world): + itemPool = [ + Item(ItemType.ProgressiveShield), + Item(ItemType.ProgressiveShield), + Item(ItemType.ProgressiveShield), + Item(ItemType.ProgressiveSword), + Item(ItemType.ProgressiveSword), + Item(ItemType.Bow), + Item(ItemType.Hookshot), + Item(ItemType.Mushroom), + Item(ItemType.Powder), + Item(ItemType.Firerod), + Item(ItemType.Icerod), + Item(ItemType.Bombos), + Item(ItemType.Ether), + Item(ItemType.Quake), + Item(ItemType.Lamp), + Item(ItemType.Hammer), + Item(ItemType.Shovel), + Item(ItemType.Flute), + Item(ItemType.Bugnet), + Item(ItemType.Book), + Item(ItemType.Bottle), + Item(ItemType.Somaria), + Item(ItemType.Byrna), + Item(ItemType.Cape), + Item(ItemType.Mirror), + Item(ItemType.Boots), + Item(ItemType.ProgressiveGlove), + Item(ItemType.ProgressiveGlove), + Item(ItemType.Flippers), + Item(ItemType.MoonPearl), + Item(ItemType.HalfMagic), + + Item(ItemType.Grapple), + Item(ItemType.Charge), + Item(ItemType.Ice), + Item(ItemType.Wave), + Item(ItemType.Plasma), + Item(ItemType.Varia), + Item(ItemType.Gravity), + Item(ItemType.Morph), + Item(ItemType.Bombs), + Item(ItemType.SpringBall), + Item(ItemType.ScrewAttack), + Item(ItemType.HiJump), + Item(ItemType.SpaceJump), + Item(ItemType.SpeedBooster), + + Item(ItemType.Missile), + Item(ItemType.Super), + Item(ItemType.PowerBomb), + Item(ItemType.PowerBomb), + Item(ItemType.ETank), + Item(ItemType.ETank), + Item(ItemType.ETank), + Item(ItemType.ETank), + Item(ItemType.ETank), + + Item(ItemType.ReserveTank), + Item(ItemType.ReserveTank), + Item(ItemType.ReserveTank), + Item(ItemType.ReserveTank), + ] + + for item in itemPool: + item.Progression = True + item.World = world + return itemPool + + @staticmethod + def CreateNicePool(world): + itemPool = [ + Item(ItemType.ProgressiveTunic), + Item(ItemType.ProgressiveTunic), + Item(ItemType.ProgressiveSword), + Item(ItemType.ProgressiveSword), + Item(ItemType.SilverArrows), + Item(ItemType.BlueBoomerang), + Item(ItemType.RedBoomerang), + Item(ItemType.Bottle), + Item(ItemType.Bottle), + Item(ItemType.Bottle), + Item(ItemType.HeartContainerRefill), + + Item(ItemType.Spazer), + Item(ItemType.XRay), + ] + + Item.AddRange(itemPool, 10, Item(ItemType.HeartContainer, world)) + + for item in itemPool: + item.World = world + return itemPool + + @staticmethod + def CreateJunkPool(world): + itemPool = [ + Item(ItemType.Arrow), + Item(ItemType.OneHundredRupees) + ] + + Item.AddRange(itemPool, 24, Item(ItemType.HeartPiece)) + Item.AddRange(itemPool, 8, Item(ItemType.TenArrows)) + Item.AddRange(itemPool, 13, Item(ItemType.ThreeBombs)) + Item.AddRange(itemPool, 4, Item(ItemType.ArrowUpgrade5)) + Item.AddRange(itemPool, 4, Item(ItemType.BombUpgrade5)) + Item.AddRange(itemPool, 2, Item(ItemType.OneRupee)) + Item.AddRange(itemPool, 4, Item(ItemType.FiveRupees)) + Item.AddRange(itemPool, 25 if world.Config.Keysanity else 28, Item(ItemType.TwentyRupees)) + Item.AddRange(itemPool, 7, Item(ItemType.FiftyRupees)) + Item.AddRange(itemPool, 5, Item(ItemType.ThreeHundredRupees)) + + Item.AddRange(itemPool, 9, Item(ItemType.ETank)) + Item.AddRange(itemPool, 39, Item(ItemType.Missile)) + Item.AddRange(itemPool, 15, Item(ItemType.Super)) + Item.AddRange(itemPool, 8, Item(ItemType.PowerBomb)) + + for item in itemPool: + item.World = world + + return itemPool + + # The order of the dungeon pool is significant + @staticmethod + def CreateDungeonPool(world): + itemPool = [Item(ItemType.BigKeyGT)] + Item.AddRange(itemPool, 4, Item(ItemType.KeyGT)) + if (not world.Config.Keysanity): + itemPool += [ + Item(ItemType.MapGT), + Item(ItemType.CompassGT), + ] + itemPool += [ + Item(ItemType.BigKeyEP), + Item(ItemType.BigKeyDP), + Item(ItemType.BigKeyTH), + Item(ItemType.BigKeyPD), + Item(ItemType.BigKeySP), + Item(ItemType.BigKeySW), + Item(ItemType.BigKeyTT), + Item(ItemType.BigKeyIP), + Item(ItemType.BigKeyMM), + Item(ItemType.BigKeyTR), + ] + + Item.AddRange(itemPool, 1, Item(ItemType.KeyHC)) + Item.AddRange(itemPool, 2, Item(ItemType.KeyCT)) + Item.AddRange(itemPool, 1, Item(ItemType.KeyDP)) + Item.AddRange(itemPool, 1, Item(ItemType.KeyTH)) + Item.AddRange(itemPool, 6, Item(ItemType.KeyPD)) + Item.AddRange(itemPool, 1, Item(ItemType.KeySP)) + Item.AddRange(itemPool, 3, Item(ItemType.KeySW)) + Item.AddRange(itemPool, 1, Item(ItemType.KeyTT)) + Item.AddRange(itemPool, 2, Item(ItemType.KeyIP)) + Item.AddRange(itemPool, 3, Item(ItemType.KeyMM)) + Item.AddRange(itemPool, 4, Item(ItemType.KeyTR)) + + itemPool += [ + Item(ItemType.MapEP), + Item(ItemType.MapDP), + Item(ItemType.MapTH), + Item(ItemType.MapPD), + Item(ItemType.MapSP), + Item(ItemType.MapSW), + Item(ItemType.MapTT), + Item(ItemType.MapIP), + Item(ItemType.MapMM), + Item(ItemType.MapTR), + ] + if (not world.Config.Keysanity): + itemPool += [ + Item(ItemType.MapHC), + Item(ItemType.CompassEP), + Item(ItemType.CompassDP), + Item(ItemType.CompassTH), + Item(ItemType.CompassPD), + Item(ItemType.CompassSP), + Item(ItemType.CompassSW), + Item(ItemType.CompassTT), + Item(ItemType.CompassIP), + Item(ItemType.CompassMM), + Item(ItemType.CompassTR), + ] + + for item in itemPool: + item.World = world + + return itemPool + + @staticmethod + def CreateKeycards(world): + itemPool = [ + Item(ItemType.CardCrateriaL1, world), + Item(ItemType.CardCrateriaL2, world), + Item(ItemType.CardCrateriaBoss, world), + Item(ItemType.CardBrinstarL1, world), + Item(ItemType.CardBrinstarL2, world), + Item(ItemType.CardBrinstarBoss, world), + Item(ItemType.CardNorfairL1, world), + Item(ItemType.CardNorfairL2, world), + Item(ItemType.CardNorfairBoss, world), + Item(ItemType.CardMaridiaL1, world), + Item(ItemType.CardMaridiaL2, world), + Item(ItemType.CardMaridiaBoss, world), + Item(ItemType.CardWreckedShipL1, world), + Item(ItemType.CardWreckedShipBoss, world), + Item(ItemType.CardLowerNorfairL1, world), + Item(ItemType.CardLowerNorfairBoss, world), + ] + + for item in itemPool: + item.Progression = True + item.World = world + + return itemPool + + @staticmethod + def Get(items, itemType:ItemType): + item = next((i for i in items if i.Type == itemType), None) + if (item == None): + raise Exception(f"Could not find an item of type {itemType}") + return item + + @staticmethod + def Get(items, itemType:ItemType, world): + item = next((i for i in items if i.Is(itemType, world)), None) + if (item == None): + raise Exception(f"Could not find an item of type {itemType} in world {world.Id}") + return item + +class Progression: + BigKeyEP: bool + BigKeyDP: bool + BigKeyTH: bool + BigKeyPD: bool + BigKeySP: bool + BigKeySW: bool + BigKeyTT: bool + BigKeyIP: bool + BigKeyMM: bool + BigKeyTR: bool + BigKeyGT: bool + KeyHC: bool + KeyDP: bool + KeyTH: bool + KeySP: bool + KeyTT: bool + KeyCT: bool + KeyPD: bool + KeySW: bool + KeyIP: bool + KeyMM: bool + KeyTR: bool + KeyGT: bool + CardCrateriaL1: bool + CardCrateriaL2: bool + CardCrateriaBoss: bool + CardBrinstarL1: bool + CardBrinstarL2: bool + CardBrinstarBoss: bool + CardNorfairL1: bool + CardNorfairL2: bool + CardNorfairBoss: bool + CardMaridiaL1: bool + CardMaridiaL2: bool + CardMaridiaBoss: bool + CardWreckedShipL1: bool + CardWreckedShipBoss: bool + CardLowerNorfairL1: bool + CardLowerNorfairBoss: bool + def CanBlockLasers(self): return self.shield >= 3 + Sword: bool + MasterSword: bool + Bow: bool + Hookshot: bool + Mushroom: bool + Powder: bool + Firerod: bool + Icerod: bool + Bombos: bool + Ether: bool + Quake: bool + Lamp: bool + Hammer: bool + Shovel: bool + Flute: bool + Book: bool + Bottle: bool + Somaria: bool + Byrna: bool + Cape: bool + Mirror: bool + Boots: bool + Glove: bool + Mitt: bool + Flippers: bool + MoonPearl: bool + HalfMagic: bool + Grapple: bool + Charge: bool + Ice: bool + Wave: bool + Plasma: bool + Varia: bool + Gravity: bool + Morph: bool + Bombs: bool + SpringBall: bool + ScrewAttack: bool + HiJump: bool + SpaceJump: bool + SpeedBooster: bool + Missile: bool + Super: bool + PowerBomb: bool + TwoPowerBombs: bool + ETank: int + ReserveTank: int + + shield: int + + itemMapping = [ + ItemType.BigKeyEP, + ItemType.BigKeyDP, + ItemType.BigKeyTH, + ItemType.BigKeyPD, + ItemType.BigKeySP, + ItemType.BigKeySW, + ItemType.BigKeyTT, + ItemType.BigKeyIP, + ItemType.BigKeyMM, + ItemType.BigKeyTR, + ItemType.BigKeyGT, + ItemType.KeyHC, + ItemType.KeyDP, + ItemType.KeyTH, + ItemType.KeySP, + ItemType.KeyTT, + ItemType.CardCrateriaL1, + ItemType.CardCrateriaL2, + ItemType.CardCrateriaBoss, + ItemType.CardBrinstarL1, + ItemType.CardBrinstarL2, + ItemType.CardBrinstarBoss, + ItemType.CardNorfairL1, + ItemType.CardNorfairL2, + ItemType.CardNorfairBoss, + ItemType.CardMaridiaL1, + ItemType.CardMaridiaL2, + ItemType.CardMaridiaBoss, + ItemType.CardWreckedShipL1, + ItemType.CardWreckedShipBoss, + ItemType.CardLowerNorfairL1, + ItemType.CardLowerNorfairBoss, + ItemType.Bow, + ItemType.Hookshot, + ItemType.Mushroom, + ItemType.Powder, + ItemType.Firerod, + ItemType.Icerod, + ItemType.Bombos, + ItemType.Ether, + ItemType.Quake, + ItemType.Lamp, + ItemType.Hammer, + ItemType.Shovel, + ItemType.Flute, + ItemType.Book, + ItemType.Bottle, + ItemType.Somaria, + ItemType.Byrna, + ItemType.Cape, + ItemType.Mirror, + ItemType.Boots, + ItemType.Flippers, + ItemType.MoonPearl, + ItemType.HalfMagic, + ItemType.Grapple, + ItemType.Charge, + ItemType.Ice, + ItemType.Wave, + ItemType.Plasma, + ItemType.Varia, + ItemType.Gravity, + ItemType.Morph, + ItemType.Bombs, + ItemType.SpringBall, + ItemType.ScrewAttack, + ItemType.HiJump, + ItemType.SpaceJump, + ItemType.SpeedBooster, + ItemType.Missile, + ItemType.Super, + ] + + def __init__(self, items): + for item in Progression.itemMapping: + setattr(self, item.name, False) + self.KeyCT = 0 + self.KeyPD = 0 + self.KeySW = 0 + self.KeyIP = 0 + self.KeyMM = 0 + self.KeyTR = 0 + self.KeyGT = 0 + self.ETank = 0 + self.ReserveTank = 0 + self.shield = 0 + self.MasterSword = False + self.Sword = False + self.Mitt = False + self.Glove = False + self.TwoPowerBombs = False + self.PowerBomb = False + self.Add(items) + + def Add(self, items:List[Item]): + for item in items: + found = item.Type in Progression.itemMapping + if found: + setattr(self, item.Type.name, True) + continue + + if (item.Type == ItemType.KeyCT): + self.KeyCT += 1 + elif (item.Type == ItemType.KeyPD): + self.KeyPD += 1 + elif (item.Type == ItemType.KeySW): + self.KeySW += 1 + elif (item.Type == ItemType.KeyIP): + self.KeyIP += 1 + elif (item.Type == ItemType.KeyMM): + self.KeyMM += 1 + elif (item.Type == ItemType.KeyTR): + self.KeyTR += 1 + elif (item.Type == ItemType.KeyGT): + self.KeyGT += 1 + elif (item.Type == ItemType.ETank): + self.ETank += 1 + elif (item.Type == ItemType.ReserveTank): + self.ReserveTank += 1 + elif (item.Type == ItemType.KeyPD): + self.shield += 1 + elif (item.Type == ItemType.ProgressiveSword): + self.MasterSword = self.Sword + self.Sword = True + elif (item.Type == ItemType.ProgressiveGlove): + self.Mitt = self.Glove + self.Glove = True + elif (item.Type == ItemType.PowerBomb): + self.TwoPowerBombs = self.PowerBomb + self.PowerBomb = True + + def Remove(self, items:List[Item]): + for item in items: + found = item.Type in Progression.itemMapping + if found: + setattr(self, item.Type.name, False) + continue + + if (item.Type == ItemType.KeyCT): + self.KeyCT -= 1 + elif (item.Type == ItemType.KeyPD): + self.KeyPD -= 1 + elif (item.Type == ItemType.KeySW): + self.KeySW -= 1 + elif (item.Type == ItemType.KeyIP): + self.KeyIP -= 1 + elif (item.Type == ItemType.KeyMM): + self.KeyMM -= 1 + elif (item.Type == ItemType.KeyTR): + self.KeyTR -= 1 + elif (item.Type == ItemType.KeyGT): + self.KeyGT -= 1 + elif (item.Type == ItemType.ETank): + self.ETank -= 1 + elif (item.Type == ItemType.ReserveTank): + self.ReserveTank -= 1 + elif (item.Type == ItemType.KeyPD): + self.shield -= 1 + elif (item.Type == ItemType.ProgressiveSword): + self.Sword = self.MasterSword + self.MasterSword = False + elif (item.Type == ItemType.ProgressiveGlove): + self.Glove = self.Mitt + self.Mitt = False + elif (item.Type == ItemType.PowerBomb): + self.PowerBomb = self.TwoPowerBombs + self.TwoPowerBombs = False + + def CanLiftLight(self): return self.Glove + + def CanLiftHeavy(self): return self.Mitt + + def CanLightTorches(self): return self.Firerod or self.Lamp + + def CanMeltFreezors(self): return self.Firerod or self.Bombos and self.Sword + + def CanExtendMagic(self, bars:int = 2): return (2 if self.HalfMagic else 1) * (2 if self.Bottle else 1) >= bars + + def CanKillManyEnemies(self): + return self.Sword or self.Hammer or self.Bow or self.Firerod or \ + self.Somaria or self.Byrna and self.CanExtendMagic() + + def CanAccessDeathMountainPortal(self): + return (self.CanDestroyBombWalls() or self.SpeedBooster) and self.Super and self.Morph + + + def CanAccessDarkWorldPortal(self, config: Config): + if (config.SMLogic == SMLogic.Normal): + return self.CardMaridiaL1 and self.CardMaridiaL2 and self.CanUsePowerBombs() and self.Super and self.Gravity and self.SpeedBooster + else: + return self.CardMaridiaL1 and self.CardMaridiaL2 and self.CanUsePowerBombs() and self.Super and \ + (self.Charge or self.Super and self.Missile) and \ + (self.Gravity or self.HiJump and self.Ice and self.Grapple) and \ + (self.Ice or self.Gravity and self.SpeedBooster) + + + def CanAccessMiseryMirePortal(self, config: Config): + if (config.SMLogic == SMLogic.Normal): + return (self.CardNorfairL2 or (self.SpeedBooster and self.Wave)) and self.Varia and self.Super and (self.Gravity and self.SpaceJump) and self.CanUsePowerBombs() + else: + return (self.CardNorfairL2 or self.SpeedBooster) and self.Varia and self.Super and \ + (self.CanFly() or self.HiJump or self.SpeedBooster or self.CanSpringBallJump() or self.Ice) \ + and (self.Gravity or self.HiJump) and self.CanUsePowerBombs() + + def CanIbj(self): + return self.Morph and self.Bombs + + def CanFly(self): + return self.SpaceJump or self.CanIbj() + + def CanUsePowerBombs(self): + return self.Morph and self.PowerBomb + + def CanPassBombPassages(self): + return self.Morph and (self.Bombs or self.PowerBomb) + + def CanDestroyBombWalls(self): + return self.CanPassBombPassages() or self.ScrewAttack + + def CanSpringBallJump(self): + return self.Morph and self.SpringBall + + def CanHellRun(self): + return self.Varia or self.HasEnergyReserves(5) + + def HasEnergyReserves(self, amount: int): + return (self.ETank + self.ReserveTank) >= amount + + def CanOpenRedDoors(self): + return self.Missile or self.Super + + def CanAccessNorfairUpperPortal(self): + return self.Flute or self.CanLiftLight() and self.Lamp + + def CanAccessNorfairLowerPortal(self): + return self.Flute and self.CanLiftHeavy() + + def CanAccessMaridiaPortal(self, world): + import worlds.smz3.TotalSMZ3.Region + if (world.Config.SMLogic == SMLogic.Normal): + return self.MoonPearl and self.Flippers and \ + self.Gravity and self.Morph and \ + (world.CanAquire(self, worlds.smz3.TotalSMZ3.Region.RewardType.Agahnim) or self.Hammer and self.CanLiftLight() or self.CanLiftHeavy()) + else: + return self.MoonPearl and self.Flippers and \ + (self.CanSpringBallJump() or self.HiJump or self.Gravity) and self.Morph and \ + (world.CanAquire(self, worlds.smz3.TotalSMZ3.Region.RewardType.Agahnim) or self.Hammer and self.CanLiftLight() or self.CanLiftHeavy()) + +# Start of AP integration +items_start_id = 84000 + +lookup_id_to_name = { items_start_id + enum.value : enum.name for enum in ItemType } +lookup_name_to_id = { item_name : item_id for item_id, item_name in lookup_id_to_name.items() } \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Location.py b/worlds/smz3/TotalSMZ3/Location.py new file mode 100644 index 00000000..377d1a33 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Location.py @@ -0,0 +1,112 @@ +from enum import Enum +from typing import List, Callable +from worlds.smz3.TotalSMZ3.Item import Progression +import worlds.smz3.TotalSMZ3.Region as Region +import worlds.smz3.TotalSMZ3.World as World + +class LocationType(Enum): + Regular = 0 + HeraStandingKey = 1 + Pedestal = 2 + Ether = 3 + Bombos = 4 + NotInDungeon = 5 + + Visible = 6 + Chozo = 7 + Hidden = 8 + +# delegate bool Requirement(Progression items); +# delegate bool Verification(Item item, Progression items); + +class Location: + Id: int + Name: str + Type: LocationType + Address: int + Region: Region + + def Weight(self): return self.weight if self.weight != None else self.Region.Weight + + canAccess: Callable = lambda items: True + alwaysAllow: Callable = lambda item, items: True + allow: Callable = lambda item, items: True + weight: int + + def ItemIs(self, type, world: World): + item = self.APLocation.item.item if self.APLocation.item is not None and self.APLocation.item.game == "SMZ3" else None + return item.Is(type, world) if item != None else False + def ItemIsNot(self, type, world: World): return not self.ItemIs(type, world) + + def __init__(self, region: Region, id: int, address: int, type: LocationType, name: str, access: Callable = lambda items : True): + self.Region = region + self.Id = id + self.Name = name + self.Type = type + self.Item = None + self.Address = address + self.canAccess = access + self.alwaysAllow = lambda item, items: False + self.allow = lambda item, items: True + + def Weighted(self, weight: int): + self.weight = weight + return self + + def AlwaysAllow(self, allow: Callable): + self.alwaysAllow = allow + return self + + def Allow(self, allow: Callable): + self.allow = allow + return self + + def Available(self, items: Progression): + return self.Region.CanEnter(items) and self.canAccess(items) + + def CanFill(self, item, items: Progression): + oldItem = self.Item + self.Item = item + fillable = self.alwaysAllow(item, items) or (self.Region.CanFill(item) and self.allow(item, items) and self.Available(items)) + self.Item = oldItem + return fillable + + @staticmethod + def Get(locations, name: str): + loc = next((l for l in locations if l.Name == name), None) + if (loc == None): + raise Exception(f"Could not find location name {name}") + return loc + + @staticmethod + def Empty(locations): + return [l for l in locations if l.Item == None] + + @staticmethod + def Filled(locations): + return [l for l in locations if l.Item != None] + + @staticmethod + def AvailableWithinWorld(locations, items): + result = [] + worldList = [] + [worldList.append(l.Region.World) for l in locations if l.Region.World not in worldList] + for world in worldList: + result += Location.AvailableGlobal([l for l in locations if l.Region.World == world], [i for i in items if i.World == world]) + return result + + @staticmethod + def AvailableGlobal(locations, items): + progression = Progression(items) + return [l for l in locations if l.Available(progression)] + + @staticmethod + def CanFillWithinWorld(locations, item, items): + itemWorldProgression = Progression([i for i in items if i.World == item.World].append(item)) + worldList = [] + [worldList.append(l.Region.World) for l in locations if l.Region.World not in worldList] + worldProgression = {world.Id : Progression([i for i in items if i.World == world]) for world in worldList} + return [l for l in locations if l.CanFill(item, worldProgression[l.Region.World.Id] and next(ll for ll in item.World.Locations if ll.Id == l.Id).Available(itemWorldProgression))] + +# Start of AP integration +locations_start_id = 85000 \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Patch.py b/worlds/smz3/TotalSMZ3/Patch.py new file mode 100644 index 00000000..f54a9d07 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Patch.py @@ -0,0 +1,809 @@ +from enum import Enum +from logging import exception +from typing import Any, Callable, List, Sequence +import random +import typing +from BaseClasses import Location +from worlds.smz3.TotalSMZ3.Item import Item, ItemType +from worlds.smz3.TotalSMZ3.Location import LocationType +from worlds.smz3.TotalSMZ3.Region import IMedallionAccess, IReward, RewardType, SMRegion, Z3Region +from worlds.smz3.TotalSMZ3.Regions.Zelda.EasternPalace import EasternPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.DesertPalace import DesertPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.TowerOfHera import TowerOfHera +from worlds.smz3.TotalSMZ3.Regions.Zelda.PalaceOfDarkness import PalaceOfDarkness +from worlds.smz3.TotalSMZ3.Regions.Zelda.SwampPalace import SwampPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.SkullWoods import SkullWoods +from worlds.smz3.TotalSMZ3.Regions.Zelda.ThievesTown import ThievesTown +from worlds.smz3.TotalSMZ3.Regions.Zelda.IcePalace import IcePalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.MiseryMire import MiseryMire +from worlds.smz3.TotalSMZ3.Regions.Zelda.TurtleRock import TurtleRock +from worlds.smz3.TotalSMZ3.Regions.Zelda.GanonsTower import GanonsTower +from worlds.smz3.TotalSMZ3.Text.StringTable import StringTable + +from worlds.smz3.TotalSMZ3.World import World +from worlds.smz3.TotalSMZ3.Config import Config, GameMode, GanonInvincible +from worlds.smz3.TotalSMZ3.Text.Texts import Texts +from worlds.smz3.TotalSMZ3.Text.Dialog import Dialog + +class KeycardPlaque: + Level1 = 0xe0 + Level2 = 0xe1 + Boss = 0xe2 + Null = 0x00 + +class KeycardDoors: + Left = 0xd414 + Right = 0xd41a + Up = 0xd420 + Down = 0xd426 + BossLeft = 0xc842 + BossRight = 0xc848 + + +class KeycardEvents: + CrateriaLevel1 = 0x0000 + CrateriaLevel2 = 0x0100 + CrateriaBoss = 0x0200 + BrinstarLevel1 = 0x0300 + BrinstarLevel2 = 0x0400 + BrinstarBoss = 0x0500 + NorfairLevel1 = 0x0600 + NorfairLevel2 = 0x0700 + NorfairBoss = 0x0800 + MaridiaLevel1 = 0x0900 + MaridiaLevel2 = 0x0a00 + MaridiaBoss = 0x0b00 + WreckedShipLevel1 = 0x0c00 + WreckedShipBoss = 0x0d00 + LowerNorfairLevel1 = 0x0e00 + LowerNorfairBoss = 0x0f00 + +class DropPrize(Enum): + Heart = 0xD8 + Green = 0xD9 + Blue = 0xDA + Red = 0xDB + Bomb1 = 0xDC + Bomb4 = 0xDD + Bomb8 = 0xDE + Magic = 0xDF + FullMagic = 0xE0 + Arrow5 = 0xE1 + Arrow10 = 0xE2 + Fairy = 0xE3 + +class Patch: + Major = 0 + Minor = 1 + allWorlds: List[World] + myWorld: World + seedGuid: str + seed: int + rnd: random.Random + patches: Sequence[Any] + stringTable: StringTable + silversWorldID: int + + def __init__(self, myWorld: World, allWorlds: List[World], seedGuid: str, seed: int, rnd: random.Random, playerNames: List[str], silversWorldID: int): + self.myWorld = myWorld + self.allWorlds = allWorlds + self.seedGuid = seedGuid + self.seed = seed + self.rnd = rnd + self.playerNames = playerNames + self.playerIDToNames = {id:name for name, id in playerNames.items()} + self.silversWorldID = silversWorldID + + def Create(self, config: Config): + self.stringTable = StringTable() + self.patches = [] + self.title = "" + + self.WriteMedallions() + self.WriteRewards() + self.WriteDungeonMusic(config.Keysanity) + + self.WriteDiggingGameRng() + + self.WritePrizeShuffle() + + self.WriteRemoveEquipmentFromUncle( self.myWorld.GetLocation("Link's Uncle").APLocation.item.item if + self.myWorld.GetLocation("Link's Uncle").APLocation.item.game == "SMZ3" else + Item(ItemType.Something)) + + self.WriteGanonInvicible(config.GanonInvincible) + self.WriteRngBlock() + + self.WriteSaveAndQuitFromBossRoom() + self.WriteWorldOnAgahnimDeath() + + self.WriteTexts(config) + + self.WriteSMLocations([loc for region in self.myWorld.Regions for loc in region.Locations if isinstance(region, SMRegion)]) + self.WriteZ3Locations([loc for region in self.myWorld.Regions for loc in region.Locations if isinstance(region, Z3Region)]) + + self.WriteStringTable() + + self.WriteSMKeyCardDoors() + self.WriteZ3KeysanityFlags() + + self.WritePlayerNames() + self.WriteSeedData() + self.WriteGameTitle() + self.WriteCommonFlags() + + return {patch[0]:patch[1] for patch in self.patches} + + def WriteMedallions(self): + turtleRock = next(region for region in self.myWorld.Regions if isinstance(region, TurtleRock)) + miseryMire = next(region for region in self.myWorld.Regions if isinstance(region, MiseryMire)) + + turtleRockAddresses = [0x308023, 0xD020, 0xD0FF, 0xD1DE ] + miseryMireAddresses = [ 0x308022, 0xCFF2, 0xD0D1, 0xD1B0 ] + + if turtleRock.Medallion == ItemType.Bombos: + turtleRockValues = [0x00, 0x51, 0x10, 0x00] + elif turtleRock.Medallion == ItemType.Ether: + turtleRockValues = [0x01, 0x51, 0x18, 0x00] + elif turtleRock.Medallion == ItemType.Quake: + turtleRockValues = [0x02, 0x14, 0xEF, 0xC4] + else: + raise exception(f"Tried using {turtleRock.Medallion} in place of Turtle Rock medallion") + + if miseryMire.Medallion == ItemType.Bombos: + miseryMireValues = [0x00, 0x51, 0x00, 0x00] + elif miseryMire.Medallion == ItemType.Ether: + miseryMireValues = [0x01, 0x13, 0x9F, 0xF1] + elif miseryMire.Medallion == ItemType.Quake: + miseryMireValues = [0x02, 0x51, 0x08, 0x00] + else: + raise exception(f"Tried using {miseryMire.Medallion} in place of Misery Mire medallion") + + self.patches += [(Snes(addr), [value]) for addr, value in zip(turtleRockAddresses, turtleRockValues)] + self.patches += [(Snes(addr), [value]) for addr, value in zip(miseryMireAddresses, miseryMireValues)] + + def WriteRewards(self): + crystalsBlue = [ 1, 2, 3, 4, 7 ] + self.rnd.shuffle(crystalsBlue) + crystalsRed = [ 5, 6 ] + self.rnd.shuffle(crystalsRed) + crystalRewards = crystalsBlue + crystalsRed + + pendantsGreen = [ 1 ] + pendantsBlueRed = [ 2, 3 ] + self.rnd.shuffle(pendantsBlueRed) + pendantRewards = pendantsGreen + pendantsBlueRed + + regions = [region for region in self.myWorld.Regions if isinstance(region, IReward)] + crystalRegions = [region for region in regions if region.Reward == RewardType.CrystalBlue] + [region for region in regions if region.Reward == RewardType.CrystalRed] + pendantRegions = [region for region in regions if region.Reward == RewardType.PendantGreen] + [region for region in regions if region.Reward == RewardType.PendantNonGreen] + + self.patches += self.RewardPatches(crystalRegions, crystalRewards, self.CrystalValues) + self.patches += self.RewardPatches(pendantRegions, pendantRewards, self.PendantValues) + + def RewardPatches(self, regions: List[IReward], rewards: List[int], rewardValues: Callable): + addresses = [self.RewardAddresses(region) for region in regions] + values = [rewardValues(reward) for reward in rewards] + associations = zip(addresses, values) + return [(Snes(i), [b]) for association in associations for i,b in zip(association[0], association[1])] + + def RewardAddresses(self, region: IReward): + regionType = { + EasternPalace : [ 0x2A09D, 0xABEF8, 0xABEF9, 0x308052, 0x30807C, 0x1C6FE ], + DesertPalace : [ 0x2A09E, 0xABF1C, 0xABF1D, 0x308053, 0x308078, 0x1C6FF ], + TowerOfHera : [ 0x2A0A5, 0xABF0A, 0xABF0B, 0x30805A, 0x30807A, 0x1C706 ], + PalaceOfDarkness : [ 0x2A0A1, 0xABF00, 0xABF01, 0x308056, 0x30807D, 0x1C702 ], + SwampPalace : [ 0x2A0A0, 0xABF6C, 0xABF6D, 0x308055, 0x308071, 0x1C701 ], + SkullWoods : [ 0x2A0A3, 0xABF12, 0xABF13, 0x308058, 0x30807B, 0x1C704 ], + ThievesTown : [ 0x2A0A6, 0xABF36, 0xABF37, 0x30805B, 0x308077, 0x1C707 ], + IcePalace : [ 0x2A0A4, 0xABF5A, 0xABF5B, 0x308059, 0x308073, 0x1C705 ], + MiseryMire : [ 0x2A0A2, 0xABF48, 0xABF49, 0x308057, 0x308075, 0x1C703 ], + TurtleRock : [ 0x2A0A7, 0xABF24, 0xABF25, 0x30805C, 0x308079, 0x1C708 ] + } + result = regionType.get(type(region), None) + if result is None: + raise exception(f"Region {region} should not be a dungeon reward region") + else: + return result + + def CrystalValues(self, crystal: int): + crystalMap = { + 1 : [ 0x02, 0x34, 0x64, 0x40, 0x7F, 0x06 ], + 2 : [ 0x10, 0x34, 0x64, 0x40, 0x79, 0x06 ], + 3 : [ 0x40, 0x34, 0x64, 0x40, 0x6C, 0x06 ], + 4 : [ 0x20, 0x34, 0x64, 0x40, 0x6D, 0x06 ], + 5 : [ 0x04, 0x32, 0x64, 0x40, 0x6E, 0x06 ], + 6 : [ 0x01, 0x32, 0x64, 0x40, 0x6F, 0x06 ], + 7 : [ 0x08, 0x34, 0x64, 0x40, 0x7C, 0x06 ], + } + result = crystalMap.get(crystal, None) + if result is None: + raise exception(f"Tried using {crystal} as a crystal number") + else: + return result + + def PendantValues(self, pendant: int): + pendantMap = { + 1 : [ 0x04, 0x38, 0x62, 0x00, 0x69, 0x01 ], + 2 : [ 0x01, 0x32, 0x60, 0x00, 0x69, 0x03 ], + 3 : [ 0x02, 0x34, 0x60, 0x00, 0x69, 0x02 ], + } + result = pendantMap.get(pendant, None) + if result is None: + raise exception(f"Tried using {pendant} as a pendant number") + else: + return result + + def WriteSMLocations(self, locations: List[Location]): + def GetSMItemPLM(location:Location): + itemMap = { + ItemType.ETank : 0xEED7, + ItemType.Missile : 0xEEDB, + ItemType.Super : 0xEEDF, + ItemType.PowerBomb : 0xEEE3, + ItemType.Bombs : 0xEEE7, + ItemType.Charge : 0xEEEB, + ItemType.Ice : 0xEEEF, + ItemType.HiJump : 0xEEF3, + ItemType.SpeedBooster : 0xEEF7, + ItemType.Wave : 0xEEFB, + ItemType.Spazer : 0xEEFF, + ItemType.SpringBall : 0xEF03, + ItemType.Varia : 0xEF07, + ItemType.Plasma : 0xEF13, + ItemType.Grapple : 0xEF17, + ItemType.Morph : 0xEF23, + ItemType.ReserveTank : 0xEF27, + ItemType.Gravity : 0xEF0B, + ItemType.XRay : 0xEF0F, + ItemType.SpaceJump : 0xEF1B, + ItemType.ScrewAttack : 0xEF1F + } + plmId = 0xEFE0 if self.myWorld.Config.GameMode == GameMode.Multiworld else \ + itemMap.get(location.APLocation.item.item.Type, 0xEFE0) + if (plmId == 0xEFE0): + plmId += 4 if location.Type == LocationType.Chozo else 8 if location.Type == LocationType.Hidden else 0 + else: + plmId += 0x54 if location.Type == LocationType.Chozo else 0xA8 if location.Type == LocationType.Hidden else 0 + return plmId + + for location in locations: + if (self.myWorld.Config.GameMode == GameMode.Multiworld): + self.patches.append((Snes(location.Address), getWordArray(GetSMItemPLM(location)))) + self.patches.append(self.ItemTablePatch(location, self.GetZ3ItemId(location))) + else: + plmId = GetSMItemPLM(location) + self.patches.append((Snes(location.Address), getWordArray(plmId))) + if (plmId >= 0xEFE0): + self.patches.append((Snes(location.Address + 5), [self.GetZ3ItemId(location)])) + + def WriteZ3Locations(self, locations: List[Location]): + for location in locations: + if (location.Type == LocationType.HeraStandingKey): + self.patches.append((Snes(0x9E3BB), [0xE4] if location.APLocation.item.game == "SMZ3" and location.APLocation.item.item.Type == ItemType.KeyTH else [0xEB])) + elif (location.Type in [LocationType.Pedestal, LocationType.Ether, LocationType.Bombos]): + text = Texts.ItemTextbox(location.APLocation.item.item if location.APLocation.item.game == "SMZ3" else Item(ItemType.Something)) + dialog = Dialog.Simple(text) + if (location.Type == LocationType.Pedestal): + self.stringTable.SetPedestalText(text) + self.patches.append((Snes(0x308300), dialog)) + elif (location.Type == LocationType.Ether): + self.stringTable.SetEtherText(text) + self.patches.append((Snes(0x308F00), dialog)) + elif (location.Type == LocationType.Bombos): + self.stringTable.SetBombosText(text) + self.patches.append((Snes(0x309000), dialog)) + + if (self.myWorld.Config.GameMode == GameMode.Multiworld): + self.patches.append((Snes(location.Address), [(location.Id - 256)])) + self.patches.append(self.ItemTablePatch(location, self.GetZ3ItemId(location))) + else: + self.patches.append((Snes(location.Address), [self.GetZ3ItemId(location)])) + + def GetZ3ItemId(self, location: Location): + if (location.APLocation.item.game == "SMZ3"): + item = location.APLocation.item.item + itemDungeon = None + if item.IsKey(): + itemDungeon = ItemType.Key if (not item.World.Config.Keysanity or item.Type != ItemType.KeyHC) else ItemType.KeyHC + elif item.IsBigKey(): + itemDungeon = ItemType.BigKey + elif item.IsMap(): + itemDungeon = ItemType.Map if (not item.World.Config.Keysanity or item.Type != ItemType.MapHC) else ItemType.MapHC + elif item.IsCompass(): + itemDungeon = ItemType.Compass + + value = item.Type if location.Type == LocationType.NotInDungeon or \ + not (item.IsDungeonItem() and location.Region.IsRegionItem(item) and item.World == self.myWorld) else itemDungeon + + return value.value + else: + return ItemType.Something.value + + def ItemTablePatch(self, location: Location, itemId: int): + itemtype = 0 if location.APLocation.item.player == location.Region.world.Id else 1 + owner = location.APLocation.item.player + return (0x386000 + (location.Id * 8), getWordArray(itemtype) + getWordArray(itemId) + getWordArray(owner)) + + def WriteDungeonMusic(self, keysanity: bool): + if (not keysanity): + regions = [region for region in self.myWorld.Regions if isinstance(region, IReward)] + music = [] + pendantRegions = [region for region in regions if region.Reward in [RewardType.PendantGreen, RewardType.PendantNonGreen]] + crystalRegions = [region for region in regions if region.Reward in [RewardType.CrystalBlue, RewardType.CrystalRed]] + regions = pendantRegions + crystalRegions + music = [ + 0x11, 0x11, 0x11, 0x16, 0x16, + 0x16, 0x16, 0x16, 0x16, 0x16, + ] + self.patches += self.MusicPatches(regions, music) + + #IEnumerable<byte> RandomDungeonMusic() { + # while (true) yield return rnd.Next(2) == 0 ? (byte)0x11 : (byte)0x16; + #} + + def MusicPatches(self, regions: List[IReward], music: List[int]): + addresses = [self.MusicAddresses(region) for region in regions] + associations = zip(addresses, music) + return [(Snes(i), [association[1]]) for association in associations for i in association[0]] + + def MusicAddresses(self, region: IReward): + regionMap = { + EasternPalace : [ 0x2D59A ], + DesertPalace : [ 0x2D59B, 0x2D59C, 0x2D59D, 0x2D59E ], + TowerOfHera : [ 0x2D5C5, 0x2907A, 0x28B8C ], + PalaceOfDarkness : [ 0x2D5B8 ], + SwampPalace : [ 0x2D5B7 ], + SkullWoods : [ 0x2D5BA, 0x2D5BB, 0x2D5BC, 0x2D5BD, 0x2D608, 0x2D609, 0x2D60A, 0x2D60B ], + ThievesTown : [ 0x2D5C6 ], + IcePalace : [ 0x2D5BF ], + MiseryMire : [ 0x2D5B9 ], + TurtleRock : [ 0x2D5C7, 0x2D5A7, 0x2D5AA, 0x2D5AB ], + } + result = regionMap.get(type(region), None) + if result is None: + raise exception(f"Region {region} should not be a dungeon music region") + else: + return result + + def WritePrizeShuffle(self): + prizePackItems = 56 + treePullItems = 3 + + bytes = [] + drop = 0 + final = 0 + + pool = [ + DropPrize.Heart, DropPrize.Heart, DropPrize.Heart, DropPrize.Heart, DropPrize.Green, DropPrize.Heart, DropPrize.Heart, DropPrize.Green, #// pack 1 + DropPrize.Blue, DropPrize.Green, DropPrize.Blue, DropPrize.Red, DropPrize.Blue, DropPrize.Green, DropPrize.Blue, DropPrize.Blue, #// pack 2 + DropPrize.FullMagic, DropPrize.Magic, DropPrize.Magic, DropPrize.Blue, DropPrize.FullMagic, DropPrize.Magic, DropPrize.Heart, DropPrize.Magic, #// pack 3 + DropPrize.Bomb1, DropPrize.Bomb1, DropPrize.Bomb1, DropPrize.Bomb4, DropPrize.Bomb1, DropPrize.Bomb1, DropPrize.Bomb8, DropPrize.Bomb1, #// pack 4 + DropPrize.Arrow5, DropPrize.Heart, DropPrize.Arrow5, DropPrize.Arrow10, DropPrize.Arrow5, DropPrize.Heart, DropPrize.Arrow5, DropPrize.Arrow10,#// pack 5 + DropPrize.Magic, DropPrize.Green, DropPrize.Heart, DropPrize.Arrow5, DropPrize.Magic, DropPrize.Bomb1, DropPrize.Green, DropPrize.Heart, #// pack 6 + DropPrize.Heart, DropPrize.Fairy, DropPrize.FullMagic, DropPrize.Red, DropPrize.Bomb8, DropPrize.Heart, DropPrize.Red, DropPrize.Arrow10, #// pack 7 + DropPrize.Green, DropPrize.Blue, DropPrize.Red,#// from pull trees + DropPrize.Green, DropPrize.Red,#// from prize crab + DropPrize.Green, #// stunned prize + DropPrize.Red,#// saved fish prize + ] + + prizes = pool + self.rnd.shuffle(prizes) + + #/* prize pack drop order */ + (bytes, prizes) = SplitOff(prizes, prizePackItems) + self.patches.append((Snes(0x6FA78), [byte.value for byte in bytes])) + + #/* tree pull prizes */ + (bytes, prizes) = SplitOff(prizes, treePullItems) + self.patches.append((Snes(0x1DFBD4), [byte.value for byte in bytes])) + + #/* crab prizes */ + (drop, final, prizes) = (prizes[0], prizes[1], prizes[2:]) + self.patches.append((Snes(0x6A9C8), [ drop.value ])) + self.patches.append((Snes(0x6A9C4), [ final.value ])) + + #/* stun prize */ + (drop, prizes) = (prizes[0], prizes[1:]) + self.patches.append((Snes(0x6F993), [ drop.value ])) + + #/* fish prize */ + drop = prizes[0] + self.patches.append((Snes(0x1D82CC), [ drop.value ])) + + self.patches += self.EnemyPrizePackDistribution() + + #/* Pack drop chance */ + #/* Normal difficulty is 50%. 0 => 100%, 1 => 50%, 3 => 25% */ + nrPacks = 7 + probability = 1 + self.patches.append((Snes(0x6FA62), [probability] * nrPacks)) + + def EnemyPrizePackDistribution(self): + (prizePacks, duplicatePacks) = self.EnemyPrizePacks() + + n = sum(len(x[1]) for x in prizePacks) + randomization = self.PrizePackRandomization(n, 1) + patches = [] + for prizepack in prizePacks: + (packs, randomization) = SplitOff(randomization, len(prizepack[1])) + patches.append((prizepack[0], [(b | p) for b,p in zip(prizepack[1], packs)])) + + duplicates = [(d[1], p[1]) + for d in duplicatePacks + for p in patches + if p[0] == d[0]] + patches += duplicates + + return [(Snes(x[0]), x[1]) for x in patches] + + #/* Guarantees at least s of each prize pack, over a total of n packs. + #* In each iteration, from the product n * m, use the guaranteed number + #* at k, where k is the "row" (integer division by m), when k falls + #* within the list boundary. Otherwise use the "column" (modulo by m) + #* as the random element. + #*/ + def PrizePackRandomization(self, n: int, s: int): + m = 7 + g = list(range(0, m)) * s + + def randomization(n: int): + result = [] + n = m * n + while (n > 0): + r = self.rnd.randrange(0, n) + k = r // m + result.append(g[k] if k < len(g) else r % m) + if (k < len(g)): del g[k] + n -= m + return result + + return [(x + 1) for x in randomization(n)] + + #/* Todo: Deadrock turns into $8F Blob when powdered, but those "onion blobs" always drop prize pack 1. */ + def EnemyPrizePacks(self): + offset = 0xDB632 + patches = [ + #/* sprite_prep */ + (0x6888D, [ 0x00 ]), #// Keese DW + (0x688A8, [ 0x00 ]), #// Rope + (0x68967, [ 0x00, 0x00 ]), #// Crow/Dacto + (0x69125, [ 0x00, 0x00 ]), #// Red/Blue Hardhat Bettle + #/* sprite properties */ + (offset+0x01, [ 0x90 ]), #// Vulture + (offset+0x08, [ 0x00 ]), #// Octorok (One Way) + (offset+0x0A, [ 0x00 ]), #// Octorok (Four Way) + (offset+0x0D, [ 0x80, 0x90 ]), #// Buzzblob, Snapdragon + (offset+0x11, [ 0x90, 0x90, 0x00 ]), #// Hinox, Moblin, Mini Helmasaur + (offset+0x18, [ 0x90, 0x90 ]), #// Mini Moldorm, Poe/Hyu + (offset+0x20, [ 0x00 ]), #// Sluggula + (offset+0x22, [ 0x80, 0x00, 0x00 ]), #// Ropa, Red Bari, Blue Bari + #// Blue Soldier/Tarus, Green Soldier, Red Spear Soldier + #// Blue Assault Soldier, Red Assault Spear Soldier/Tarus + #// Blue Archer, Green Archer + #// Red Javelin Soldier, Red Bush Javelin Soldier + #// Red Bomb Soldiers, Green Soldier Recruits, + #// Geldman, Toppo + (offset+0x41, [ 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x10, 0x90, 0x90, 0x80 ]), + (offset+0x4F, [ 0x80 ]), #// Popo 2 + (offset+0x51, [ 0x80 ]), #// Armos + (offset+0x55, [ 0x00, 0x00 ]), #// Ku, Zora + (offset+0x58, [ 0x90 ]), #// Crab + (offset+0x64, [ 0x80 ]), #// Devalant (Shooter) + (offset+0x6A, [ 0x90, 0x90 ]), #// Ball N' Chain Trooper, Cannon Soldier + (offset+0x6D, [ 0x80, 0x80 ]), #// Rat/Buzz, (Stal)Rope + (offset+0x71, [ 0x80 ]), #// Leever + (offset+0x7C, [ 0x90 ]), #// Initially Floating Stal + (offset+0x81, [ 0xC0 ]), #// Hover + #// Green Eyegore/Mimic, Red Eyegore/Mimic + #// Detached Stalfos Body, Kodongo + (offset+0x83, [ 0x10, 0x10, 0x10, 0x00 ]), + (offset+0x8B, [ 0x10 ]), #// Gibdo + (offset+0x8E, [ 0x00, 0x00 ]), #// Terrorpin, Blob + (offset+0x91, [ 0x10 ]), #// Stalfos Knight + (offset+0x99, [ 0x10 ]), #// Pengator + (offset+0x9B, [ 0x10 ]), #// Wizzrobe + #// Blue Zazak, Red Zazak, Stalfos + #// Green Zirro, Blue Zirro, Pikit + (offset+0xA5, [ 0x10, 0x10, 0x10, 0x80, 0x80, 0x80 ]), + (offset+0xC7, [ 0x10 ]), #// Hokku-Bokku + (offset+0xC9, [ 0x10 ]), #// Tektite + (offset+0xD0, [ 0x10 ]), #// Lynel + (offset+0xD3, [ 0x00 ]), #// Stal + ] + duplicates = [ + #/* Popo2 -> Popo. Popo is not used in vanilla Z3, but we duplicate from Popo2 just to be sure */ + (offset + 0x4F, offset + 0x4E), + ] + return (patches, duplicates) + + def WriteTexts(self, config: Config): + regions = [region for region in self.myWorld.Regions if isinstance(region, IReward)] + greenPendantDungeon = [region for region in regions if region.Reward == RewardType.PendantGreen][0] + redCrystalDungeons = [region for region in regions if region.Reward == RewardType.CrystalRed] + + sahasrahla = Texts.SahasrahlaReveal(greenPendantDungeon) + self.patches.append((Snes(0x308A00), Dialog.Simple(sahasrahla))) + self.stringTable.SetSahasrahlaRevealText(sahasrahla) + + bombShop = Texts.BombShopReveal(redCrystalDungeons) + self.patches.append((Snes(0x308E00), Dialog.Simple(bombShop))) + self.stringTable.SetBombShopRevealText(bombShop) + + blind = Texts.Blind(self.rnd) + self.patches.append((Snes(0x308800), Dialog.Simple(blind))) + self.stringTable.SetBlindText(blind) + + tavernMan = Texts.TavernMan(self.rnd) + self.patches.append((Snes(0x308C00), Dialog.Simple(tavernMan))) + self.stringTable.SetTavernManText(tavernMan) + + ganon = Texts.GanonFirstPhase(self.rnd) + self.patches.append((Snes(0x308600), Dialog.Simple(ganon))) + self.stringTable.SetGanonFirstPhaseText(ganon) + + #// Todo: Verify these two are correct if ganon invincible patch is ever added + #// ganon_fall_in_alt in v30 + ganonFirstPhaseInvincible = "You think you\nare ready to\nface me?\n\nI will not die\n\nunless you\ncomplete your\ngoals. Dingus!" + self.patches.append((Snes(0x309100), Dialog.Simple(ganonFirstPhaseInvincible))) + + #// ganon_phase_3_alt in v30 + ganonThirdPhaseInvincible = "Got wax in\nyour ears?\nI cannot die!" + self.patches.append((Snes(0x309200), Dialog.Simple(ganonThirdPhaseInvincible))) + #// --- + + silversLocation = [loc for world in self.allWorlds for loc in world.Locations if loc.ItemIs(ItemType.SilverArrows, self.myWorld)] + if len(silversLocation) == 0: + silvers = Texts.GanonThirdPhaseMulti(None, self.myWorld, self.silversWorldID, self.playerIDToNames[self.silversWorldID]) + else: + silvers = Texts.GanonThirdPhaseMulti(silversLocation[0].Region, self.myWorld) if config.GameMode == GameMode.Multiworld else \ + Texts.GanonThirdPhaseSingle(silversLocation[0].Region) + self.patches.append((Snes(0x308700), Dialog.Simple(silvers))) + self.stringTable.SetGanonThirdPhaseText(silvers) + + triforceRoom = Texts.TriforceRoom(self.rnd) + self.patches.append((Snes(0x308400), Dialog.Simple(triforceRoom))) + self.stringTable.SetTriforceRoomText(triforceRoom) + + def WriteStringTable(self): + #// Todo: v12, base table in asm, use move instructions in seed patch + self.patches.append((Snes(0x1C8000), self.stringTable.GetPaddedBytes())) + + def WritePlayerNames(self): + self.patches += [(0x385000 + (0 * 16), self.PlayerNameBytes("Archipelago"))] + self.patches += [(0x385000 + (id * 16), self.PlayerNameBytes(name)) for name, id in self.playerNames.items()] + + def PlayerNameBytes(self, name: str): + name = (name[:16] if len(name) > 16 else name).center(16) + return bytearray(name, 'utf8') + + def WriteSeedData(self): + configField = \ + ((1 if self.myWorld.Config.Race else 0) << 15) | \ + ((1 if self.myWorld.Config.Keysanity else 0) << 13) | \ + ((1 if self.myWorld.Config.GameMode == Config.GameMode.Multiworld else 0) << 12) | \ + (self.myWorld.Config.Z3Logic.value << 10) | \ + (self.myWorld.Config.SMLogic.value << 8) | \ + (Patch.Major << 4) | \ + (Patch.Minor << 0) + + self.patches.append((Snes(0x80FF50), getWordArray(self.myWorld.Id))) + self.patches.append((Snes(0x80FF52), getWordArray(configField))) + self.patches.append((Snes(0x80FF54), getDoubleWordArray(self.seed))) + #/* Reserve the rest of the space for future use */ + self.patches.append((Snes(0x80FF58), [0x00] * 8)) + self.patches.append((Snes(0x80FF60), bytearray(self.seedGuid, 'utf8'))) + self.patches.append((Snes(0x80FF80), bytearray(self.myWorld.Guid, 'utf8'))) + + def WriteCommonFlags(self): + #/* Common Combo Configuration flags at [asm]/config.asm */ + if (self.myWorld.Config.GameMode == GameMode.Multiworld): + self.patches.append((Snes(0xF47000), getWordArray(0x0001))) + if (self.myWorld.Config.Keysanity): + self.patches.append((Snes(0xF47006), getWordArray(0x0001))) + + def WriteGameTitle(self): + z3Glitch = "N" if self.myWorld.Config.Z3Logic == Config.Z3Logic.Nmg else \ + "O" if self.myWorld.Config.Z3Logic == Config.Z3Logic.Owg else \ + "C" + smGlitch = "N" if self.myWorld.Config.SMLogic == Config.SMLogic.Normal else \ + "H" if self.myWorld.Config.SMLogic == Config.SMLogic.Hard else \ + "X" + + self.title = f"ZSM{Patch.Major}{Patch.Minor}{z3Glitch}{smGlitch}{self.myWorld.Id}{self.seed:08x}".ljust(21)[:21] + self.patches.append((Snes(0x00FFC0), bytearray(self.title, 'utf8'))) + self.patches.append((Snes(0x80FFC0), bytearray(self.title, 'utf8'))) + + def WriteZ3KeysanityFlags(self): + if (self.myWorld.Config.Keysanity): + self.patches.append((Snes(0x40003B), [ 1 ])) #// MapMode #$00 = Always On (default) - #$01 = Require Map Item + self.patches.append((Snes(0x400045), [ 0x0f ])) #// display ----dcba a: Small Keys, b: Big Key, c: Map, d: Compass + + def WriteSMKeyCardDoors(self): + if (not self.myWorld.Config.Keysanity): + return + + plaquePLm = 0xd410 + + doorList = [ + #// RoomId Door Facing yyxx Keycard Event Type Plaque type yyxx, Address (if 0 a dynamic PLM is created) + #// Crateria + [ 0x91F8, KeycardDoors.Right, 0x2601, KeycardEvents.CrateriaLevel1, KeycardPlaque.Level1, 0x2400, 0x0000 ], #// Crateria - Landing Site - Door to gauntlet + [ 0x91F8, KeycardDoors.Left, 0x168E, KeycardEvents.CrateriaLevel1, KeycardPlaque.Level1, 0x148F, 0x801E ], #// Crateria - Landing Site - Door to landing site PB + [ 0x948C, KeycardDoors.Left, 0x062E, KeycardEvents.CrateriaLevel2, KeycardPlaque.Level2, 0x042F, 0x8222 ], #// Crateria - Before Moat - Door to moat (overwrite PB door) + [ 0x99BD, KeycardDoors.Left, 0x660E, KeycardEvents.CrateriaBoss, KeycardPlaque.Boss, 0x640F, 0x8470 ], #// Crateria - Before G4 - Door to G4 + [ 0x9879, KeycardDoors.Left, 0x062E, KeycardEvents.CrateriaBoss, KeycardPlaque.Boss, 0x042F, 0x8420 ], #// Crateria - Before BT - Door to Bomb Torizo + + #// Brinstar + [ 0x9F11, KeycardDoors.Left, 0x060E, KeycardEvents.BrinstarLevel1, KeycardPlaque.Level1, 0x040F, 0x8784 ], #// Brinstar - Blue Brinstar - Door to ceiling e-tank room + + [ 0x9AD9, KeycardDoors.Right, 0xA601, KeycardEvents.BrinstarLevel2, KeycardPlaque.Level2, 0xA400, 0x0000 ], #// Brinstar - Green Brinstar - Door to etecoon area + [ 0x9D9C, KeycardDoors.Down, 0x0336, KeycardEvents.BrinstarBoss, KeycardPlaque.Boss, 0x0234, 0x863A ], #// Brinstar - Pink Brinstar - Door to spore spawn + [ 0xA130, KeycardDoors.Left, 0x161E, KeycardEvents.BrinstarLevel2, KeycardPlaque.Level2, 0x141F, 0x881C ], #// Brinstar - Pink Brinstar - Door to wave gate e-tank + [ 0xA0A4, KeycardDoors.Left, 0x062E, KeycardEvents.BrinstarLevel2, KeycardPlaque.Level2, 0x042F, 0x0000 ], #// Brinstar - Pink Brinstar - Door to spore spawn super + + [ 0xA56B, KeycardDoors.Left, 0x161E, KeycardEvents.BrinstarBoss, KeycardPlaque.Boss, 0x141F, 0x8A1A ], #// Brinstar - Before Kraid - Door to Kraid + + #// Upper Norfair + [ 0xA7DE, KeycardDoors.Right, 0x3601, KeycardEvents.NorfairLevel1, KeycardPlaque.Level1, 0x3400, 0x8B00 ], #// Norfair - Business Centre - Door towards Ice + [ 0xA923, KeycardDoors.Right, 0x0601, KeycardEvents.NorfairLevel1, KeycardPlaque.Level1, 0x0400, 0x0000 ], #// Norfair - Pre-Crocomire - Door towards Ice + + [ 0xA788, KeycardDoors.Left, 0x162E, KeycardEvents.NorfairLevel2, KeycardPlaque.Level2, 0x142F, 0x8AEA ], #// Norfair - Lava Missile Room - Door towards Bubble Mountain + [ 0xAF72, KeycardDoors.Left, 0x061E, KeycardEvents.NorfairLevel2, KeycardPlaque.Level2, 0x041F, 0x0000 ], #// Norfair - After frog speedway - Door to Bubble Mountain + [ 0xAEDF, KeycardDoors.Down, 0x0206, KeycardEvents.NorfairLevel2, KeycardPlaque.Level2, 0x0204, 0x0000 ], #// Norfair - Below bubble mountain - Door to Bubble Mountain + [ 0xAD5E, KeycardDoors.Right, 0x0601, KeycardEvents.NorfairLevel2, KeycardPlaque.Level2, 0x0400, 0x0000 ], #// Norfair - LN Escape - Door to Bubble Mountain + + [ 0xA923, KeycardDoors.Up, 0x2DC6, KeycardEvents.NorfairBoss, KeycardPlaque.Boss, 0x2EC4, 0x8B96 ], #// Norfair - Pre-Crocomire - Door to Crocomire + + #// Lower Norfair + [ 0xB4AD, KeycardDoors.Left, 0x160E, KeycardEvents.LowerNorfairLevel1, KeycardPlaque.Level1, 0x140F, 0x0000 ], #// Lower Norfair - WRITG - Door to Amphitheatre + [ 0xAD5E, KeycardDoors.Left, 0x065E, KeycardEvents.LowerNorfairLevel1, KeycardPlaque.Level1, 0x045F, 0x0000 ], #// Lower Norfair - Exit - Door to "Reverse LN Entry" + [ 0xB37A, KeycardDoors.Right, 0x0601, KeycardEvents.LowerNorfairBoss, KeycardPlaque.Boss, 0x0400, 0x8EA6 ], #// Lower Norfair - Pre-Ridley - Door to Ridley + + #// Maridia + [ 0xD0B9, KeycardDoors.Left, 0x065E, KeycardEvents.MaridiaLevel1, KeycardPlaque.Level1, 0x045F, 0x0000 ], #// Maridia - Mt. Everest - Door to Pink Maridia + [ 0xD5A7, KeycardDoors.Right, 0x1601, KeycardEvents.MaridiaLevel1, KeycardPlaque.Level1, 0x1400, 0x0000 ], #// Maridia - Aqueduct - Door towards Beach + + [ 0xD617, KeycardDoors.Left, 0x063E, KeycardEvents.MaridiaLevel2, KeycardPlaque.Level2, 0x043F, 0x0000 ], #// Maridia - Pre-Botwoon - Door to Botwoon + [ 0xD913, KeycardDoors.Right, 0x2601, KeycardEvents.MaridiaLevel2, KeycardPlaque.Level2, 0x2400, 0x0000 ], #// Maridia - Pre-Colloseum - Door to post-botwoon + + [ 0xD78F, KeycardDoors.Right, 0x2601, KeycardEvents.MaridiaBoss, KeycardPlaque.Boss, 0x2400, 0xC73B ], #// Maridia - Precious Room - Door to Draygon + + [ 0xDA2B, KeycardDoors.BossLeft, 0x164E, 0x00f0, KeycardPlaque.Null, 0x144F, 0x0000 ], #// Maridia - Change Cac Alley Door to Boss Door (prevents key breaking) + + #// Wrecked Ship + [ 0x93FE, KeycardDoors.Left, 0x167E, KeycardEvents.WreckedShipLevel1, KeycardPlaque.Level1, 0x147F, 0x0000 ], #// Wrecked Ship - Outside Wrecked Ship West - Door to Reserve Tank Check + [ 0x968F, KeycardDoors.Left, 0x060E, KeycardEvents.WreckedShipLevel1, KeycardPlaque.Level1, 0x040F, 0x0000 ], #// Wrecked Ship - Outside Wrecked Ship West - Door to Bowling Alley + [ 0xCE40, KeycardDoors.Left, 0x060E, KeycardEvents.WreckedShipLevel1, KeycardPlaque.Level1, 0x040F, 0x0000 ], #// Wrecked Ship - Gravity Suit - Door to Bowling Alley + + [ 0xCC6F, KeycardDoors.Left, 0x064E, KeycardEvents.WreckedShipBoss, KeycardPlaque.Boss, 0x044F, 0xC29D ], #// Wrecked Ship - Pre-Phantoon - Door to Phantoon + ] + + doorId = 0x0000 + plmTablePos = 0xf800 + for door in doorList: + doorArgs = doorId | door[3] if door[4] != KeycardPlaque.Null else door[3] + if (door[6] == 0): + #// Write dynamic door + doorData = [] + for x in door[0:3]: + doorData += getWordArray(x) + doorData += getWordArray(doorArgs) + self.patches.append((Snes(0x8f0000 + plmTablePos), doorData)) + plmTablePos += 0x08 + else: + #// Overwrite existing door + doorData = [] + for x in door[1:3]: + doorData += getWordArray(x) + doorData += getWordArray(doorArgs) + self.patches.append((Snes(0x8f0000 + door[6]), doorData)) + if((door[3] == KeycardEvents.BrinstarBoss and door[0] != 0x9D9C) or door[3] == KeycardEvents.LowerNorfairBoss or door[3] == KeycardEvents.MaridiaBoss or door[3] == KeycardEvents.WreckedShipBoss): + #// Overwrite the extra parts of the Gadora with a PLM that just deletes itself + self.patches.append((Snes(0x8f0000 + door[6] + 0x06), [ 0x2F, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x2F, 0xB6, 0x00, 0x00, 0x00, 0x00 ])) + + #// Plaque data + if (door[4] != KeycardPlaque.Null): + plaqueData = getWordArray(door[0]) + getWordArray(plaquePLm) + getWordArray(door[5]) + getWordArray(door[4]) + self.patches.append((Snes(0x8f0000 + plmTablePos), plaqueData)) + plmTablePos += 0x08 + doorId += 1 + + self.patches.append((Snes(0x8f0000 + plmTablePos), [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ])) + + def WriteDiggingGameRng(self): + digs = (self.rnd.randrange(30) + 1) + self.patches.append((Snes(0x308020), [ digs ])) + self.patches.append((Snes(0x1DFD95), [ digs ])) + + #// Removes Sword/Shield from Uncle by moving the tiles for + #// sword/shield to his head and replaces them with his head. + def WriteRemoveEquipmentFromUncle(self, item: Item): + if (item.Type != ItemType.ProgressiveSword): + self.patches += [ + (Snes(0xDD263), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD26B), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD293), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD29B), [ 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD2B3), [ 0x00, 0x00, 0xF6, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD2BB), [ 0x00, 0x00, 0xF6, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD2E3), [ 0x00, 0x00, 0xF7, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD2EB), [ 0x00, 0x00, 0xF7, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD31B), [ 0x00, 0x00, 0xE4, 0xFF, 0x08, 0x0E ]), + (Snes(0xDD323), [ 0x00, 0x00, 0xE4, 0xFF, 0x08, 0x0E ]), + ] + if (item.Type != ItemType.ProgressiveShield): + self.patches += [ + (Snes(0xDD253), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD25B), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD283), [ 0x00, 0x00, 0xF6, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD28B), [ 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x0E ]), + (Snes(0xDD2CB), [ 0x00, 0x00, 0xF6, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD2FB), [ 0x00, 0x00, 0xF7, 0xFF, 0x02, 0x0E ]), + (Snes(0xDD313), [ 0x00, 0x00, 0xE4, 0xFF, 0x08, 0x0E ]), + ] + + def WriteGanonInvicible(self, invincible: GanonInvincible): + #/* Defaults to $00 (never) at [asm]/z3/randomizer/tables.asm */ + invincibleMap = { + GanonInvincible.Never : 0x00, + GanonInvincible.Always : 0x01, + GanonInvincible.BeforeAllDungeons : 0x02, + GanonInvincible.BeforeCrystals : 0x03, + } + value = invincibleMap.get(invincible, None) + if (value is None): + raise exception(f"Unknown Ganon invincible value {invincible}") + else: + self.patches.append((Snes(0x30803E), [value])) + + + def WriteRngBlock(self): + #/* Repoint RNG Block */ + self.patches.append((0x420000, [self.rnd.randrange(0, 0x100) for x in range(0, 1024)])) + + def WriteSaveAndQuitFromBossRoom(self): + #/* Defaults to $00 at [asm]/z3/randomizer/tables.asm */ + self.patches.append((Snes(0x308042), [ 0x01 ])) + + def WriteWorldOnAgahnimDeath(self): + pass + #/* Defaults to $01 at [asm]/z3/randomizer/tables.asm */ + #// Todo: Z3r major glitches disables this, reconsider extending or dropping with glitched logic later. + #//patches.Add((Snes(0x3080A3), new byte[] { 0x01 })); + +def Snes(addr: int): + #/* Redirect hi bank $30 access into ExHiRom lo bank $40 */ + if (addr & 0xFF8000) == 0x308000: + addr = 0x400000 | (addr & 0x7FFF) + else: #/* General case, add ExHi offset for banks < $80, and collapse mirroring */ + addr = (0x400000 if addr < 0x800000 else 0)| (addr & 0x3FFFFF) + if (addr > 0x600000): + raise Exception(f"Unmapped pc address target ${addr:x}") + return addr + +def getWord(w): + return (w & 0x00FF, (w & 0xFF00) >> 8) + +def getWordArray(w): + return [w & 0x00FF, (w & 0xFF00) >> 8] + +def getDoubleWordArray(w): + return [w & 0x000000FF, (w & 0x0000FF00) >> 8, (w & 0x00FF0000) >> 16, (w & 0xFF000000) >> 24] + +""" + byte[] UintBytes(int value) => BitConverter.GetBytes((uint)value); + + byte[] UshortBytes(int value) => BitConverter.GetBytes((ushort)value); + + byte[] AsAscii(string text) => Encoding.ASCII.GetBytes(text); + +} + +} +""" +def SplitOff(source: List[Any], count: int): + head = source[:count] + tail = source[count:] + return (head, tail) diff --git a/worlds/smz3/TotalSMZ3/Region.py b/worlds/smz3/TotalSMZ3/Region.py new file mode 100644 index 00000000..f352247c --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Region.py @@ -0,0 +1,63 @@ +from enum import Enum +from typing import Dict, List +from worlds.smz3.TotalSMZ3.Config import * +from worlds.smz3.TotalSMZ3.Item import Item, ItemType + +class RewardType(Enum): + Null = 0 + Agahnim = 1 + PendantGreen = 2 + PendantNonGreen = 3 + CrystalBlue = 4 + CrystalRed = 5 + GoldenFourBoss = 6 + +class IReward: + Reward: RewardType + def CanComplete(self, items): + pass + +class IMedallionAccess: + Medallion: object + +class Region: + import worlds.smz3.TotalSMZ3.Location as Location + Name: str + Area: str + + Locations: List[Location.Location] + Weight: int = 0 + + Config: Config + + locationLookup: Dict[str, Location.Location] + + def GetLocation(self, name: str): + return self.locationLookup[name] + + def __init__(self, world, config: Config): + self.Config = config + self.world = world + self.locationLookup = {} + self.RegionItems = [] + + def GenerateLocationLookup(self): + self.locationLookup = {loc.Name:loc for loc in self.Locations} + + def IsRegionItem(self, item): + return item.Type in self.RegionItems + + def CanFill(self, item): + return self.Config.Keysanity or not item.IsDungeonItem() or self.IsRegionItem(item) + + def CanEnter(self, items): + return True + +class SMRegion(Region): + Logic: SMLogic = Config.SMLogic + def __init__(self, world, config: Config): + super().__init__(world, config) + +class Z3Region(Region): + def __init__(self, world, config: Config): + super().__init__(world, config) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Blue.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Blue.py new file mode 100644 index 00000000..0b3d1f8b --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Blue.py @@ -0,0 +1,26 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class Blue(SMRegion): + Name = "Brinstar Blue" + Area = "Brinstar" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 26, 0x8F86EC, LocationType.Visible, "Morphing Ball"), + Location(self, 27, 0x8F874C, LocationType.Visible, "Power Bomb (blue Brinstar)", + lambda items: items.CanUsePowerBombs()), + Location(self, 28, 0x8F8798, LocationType.Visible, "Missile (blue Brinstar middle)", + lambda items: items.CardBrinstarL1 and items.Morph), + Location(self, 29, 0x8F879E, LocationType.Hidden, "Energy Tank, Brinstar Ceiling", + lambda items: items.CardBrinstarL1 and (items.CanFly() or items.HiJump or items.SpeedBooster or items.Ice) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardBrinstarL1), + Location(self, 34, 0x8F8802, LocationType.Chozo, "Missile (blue Brinstar bottom)", + lambda items: items.Morph), + Location(self, 36, 0x8F8836, LocationType.Visible, "Missile (blue Brinstar top)", + lambda items: items.CardBrinstarL1 and items.CanUsePowerBombs()), + Location(self, 37, 0x8F883C, LocationType.Hidden, "Missile (blue Brinstar behind missile)", + lambda items: items.CardBrinstarL1 and items.CanUsePowerBombs()) + ] \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Green.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Green.py new file mode 100644 index 00000000..380431df --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Green.py @@ -0,0 +1,37 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Green(SMRegion): + Name = "Brinstar Green" + Area = "Brinstar" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Weight = -6 + self.Locations = [ + Location(self, 13, 0x8F84AC, LocationType.Chozo, "Power Bomb (green Brinstar bottom)", + lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs()), + Location(self, 15, 0x8F8518, LocationType.Visible, "Missile (green Brinstar below super missile)", + lambda items: items.CanPassBombPassages() and items.CanOpenRedDoors()), + Location(self, 16, 0x8F851E, LocationType.Visible, "Super Missile (green Brinstar top)", + lambda items: items.CanOpenRedDoors() and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: items.CanOpenRedDoors() and (items.Morph or items.SpeedBooster)), + Location(self, 17, 0x8F852C, LocationType.Chozo, "Reserve Tank, Brinstar", + lambda items: items.CanOpenRedDoors() and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: items.CanOpenRedDoors() and (items.Morph or items.SpeedBooster)), + Location(self, 18, 0x8F8532, LocationType.Hidden, "Missile (green Brinstar behind missile)", + lambda items: items.SpeedBooster and items.CanPassBombPassages() and items.CanOpenRedDoors() if self.Logic == SMLogic.Normal else \ + lambda items: (items.CanPassBombPassages() or items.Morph and items.ScrewAttack) and items.CanOpenRedDoors()), + Location(self, 19, 0x8F8538, LocationType.Visible, "Missile (green Brinstar behind reserve tank)", + lambda items: items.SpeedBooster and items.CanOpenRedDoors() and items.Morph if self.Logic == SMLogic.Normal else \ + lambda items: items.CanOpenRedDoors() and items.Morph), + Location(self, 30, 0x8F87C2, LocationType.Visible, "Energy Tank, Etecoons", + lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs()), + Location(self, 31, 0x8F87D0, LocationType.Visible, "Super Missile (green Brinstar bottom)", + lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs() and items.Super) + ] + + def CanEnter(self, items: Progression): + return items.CanDestroyBombWalls() or items.SpeedBooster diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Kraid.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Kraid.py new file mode 100644 index 00000000..fe3f804d --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Kraid.py @@ -0,0 +1,25 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion, IReward, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Kraid(SMRegion, IReward): + Name = "Brinstar Kraid" + Area = "Brinstar" + + Reward = RewardType.GoldenFourBoss + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 43, 0x8F899C, LocationType.Hidden, "Energy Tank, Kraid", lambda items: items.CardBrinstarBoss), + Location(self, 48, 0x8F8ACA, LocationType.Chozo, "Varia Suit", lambda items: items.CardBrinstarBoss), + Location(self, 44, 0x8F89EC, LocationType.Hidden, "Missile (Kraid)", lambda items: items.CanUsePowerBombs()) + ] + + def CanEnter(self, items:Progression): + return (items.CanDestroyBombWalls() or items.SpeedBooster or items.CanAccessNorfairUpperPortal()) and \ + items.Super and items.CanPassBombPassages() + + def CanComplete(self, items:Progression): + return self.GetLocation("Varia Suit").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Pink.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Pink.py new file mode 100644 index 00000000..465f885b --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Pink.py @@ -0,0 +1,44 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Pink(SMRegion): + Name = "Brinstar Pink" + Area = "Brinstar" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Weight = -4 + self.Locations = [ + Location(self, 14, 0x8F84E4, LocationType.Chozo, "Super Missile (pink Brinstar)", + lambda items: items.CardBrinstarBoss and items.CanPassBombPassages() and items.Super if self.Logic == SMLogic.Normal else \ + lambda items: (items.CardBrinstarBoss or items.CardBrinstarL2) and items.CanPassBombPassages() and items.Super), + Location(self, 21, 0x8F8608, LocationType.Visible, "Missile (pink Brinstar top)"), + Location(self, 22, 0x8F860E, LocationType.Visible, "Missile (pink Brinstar bottom)"), + Location(self, 23, 0x8F8614, LocationType.Chozo, "Charge Beam", + lambda items: items.CanPassBombPassages()), + Location(self, 24, 0x8F865C, LocationType.Visible, "Power Bomb (pink Brinstar)", + lambda items: items.CanUsePowerBombs() and items.Super and items.HasEnergyReserves(1) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanUsePowerBombs() and items.Super), + Location(self, 25, 0x8F8676, LocationType.Visible, "Missile (green Brinstar pipe)", + lambda items: items.Morph and (items.PowerBomb or items.Super or items.CanAccessNorfairUpperPortal())), + Location(self, 33, 0x8F87FA, LocationType.Visible, "Energy Tank, Waterway", + lambda items: items.CanUsePowerBombs() and items.CanOpenRedDoors() and items.SpeedBooster and (items.HasEnergyReserves(1) or items.Gravity)), + Location(self, 35, 0x8F8824, LocationType.Visible, "Energy Tank, Brinstar Gate", + lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs() and items.Wave and items.HasEnergyReserves(1) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardBrinstarL2 and items.CanUsePowerBombs() and (items.Wave or items.Super)) + ] + + + def CanEnter(self, items: Progression): + if self.Logic == SMLogic.Normal: + return items.CanOpenRedDoors() and (items.CanDestroyBombWalls() or items.SpeedBooster) or \ + items.CanUsePowerBombs() or \ + items.CanAccessNorfairUpperPortal() and items.Morph and items.Wave and \ + (items.Ice or items.HiJump or items.SpaceJump) + else: + return items.CanOpenRedDoors() and (items.CanDestroyBombWalls() or items.SpeedBooster) or \ + items.CanUsePowerBombs() or \ + items.CanAccessNorfairUpperPortal() and items.Morph and (items.CanOpenRedDoors() or items.Wave) and \ + (items.Ice or items.HiJump or items.CanSpringBallJump() or items.CanFly()) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py new file mode 100644 index 00000000..cca64e4c --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/Red.py @@ -0,0 +1,36 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Red(SMRegion): + Name = "Brinstar Red" + Area = "Brinstar" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 38, 0x8F8876, LocationType.Chozo, "X-Ray Scope", + lambda items: items.CanUsePowerBombs() and items.CanOpenRedDoors() and (items.Grapple or items.SpaceJump) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanUsePowerBombs() and items.CanOpenRedDoors() and ( + items.Grapple or items.SpaceJump or + (items.CanIbj() or items.HiJump and items.SpeedBooster or items.CanSpringBallJump()) and + (items.Varia and items.HasEnergyReserves(3) or items.HasEnergyReserves(5)))), + Location(self, 39, 0x8F88CA, LocationType.Visible, "Power Bomb (red Brinstar sidehopper room)", + lambda items: items.CanUsePowerBombs() and items.Super), + Location(self, 40, 0x8F890E, LocationType.Chozo, "Power Bomb (red Brinstar spike room)", + lambda items: (items.CanUsePowerBombs() or items.Ice) and items.Super if self.Logic == SMLogic.Normal else \ + lambda items: items.Super), + Location(self, 41, 0x8F8914, LocationType.Visible, "Missile (red Brinstar spike room)", + lambda items: items.CanUsePowerBombs() and items.Super), + Location(self, 42, 0x8F896E, LocationType.Chozo, "Spazer", + lambda items: items.CanPassBombPassages() and items.Super) + ] + + def CanEnter(self, items: Progression): + if self.Logic == SMLogic.Normal: + return (items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or \ + items.CanAccessNorfairUpperPortal() and (items.Ice or items.HiJump or items.SpaceJump) + else: + return (items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or \ + items.CanAccessNorfairUpperPortal() and (items.Ice or items.CanSpringBallJump() or items.HiJump or items.CanFly()) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Brinstar/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/Central.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/Central.py new file mode 100644 index 00000000..14c8b08f --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/Central.py @@ -0,0 +1,23 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class Central(SMRegion): + Name = "Crateria Central" + Area = "Crateria" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 0, 0x8F81CC, LocationType.Visible, "Power Bomb (Crateria surface)", + lambda items: (items.CardCrateriaL1 if config.Keysanity else items.CanUsePowerBombs()) and (items.SpeedBooster or items.CanFly())), + Location(self, 12, 0x8F8486, LocationType.Visible, "Missile (Crateria middle)", + lambda items: items.CanPassBombPassages()), + Location(self, 6, 0x8F83EE, LocationType.Visible, "Missile (Crateria bottom)", + lambda items: items.CanDestroyBombWalls()), + Location(self, 11, 0x8F8478, LocationType.Visible, "Super Missile (Crateria)", + lambda items: items.CanUsePowerBombs() and items.HasEnergyReserves(2) and items.SpeedBooster), + Location(self, 7, 0x8F8404, LocationType.Chozo, "Bombs", + lambda items: (items.CardCrateriaBoss if config.Keysanity else items.CanOpenRedDoors()) and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: (items.CardCrateriaBoss if config.Keysanity else items.CanOpenRedDoors()) and items.Morph) + ] diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/East.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/East.py new file mode 100644 index 00000000..d223fd82 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/East.py @@ -0,0 +1,59 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class East(SMRegion): + Name = "Crateria East" + Area = "Crateria" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 1, 0x8F81E8, LocationType.Visible, "Missile (outside Wrecked Ship bottom)", + lambda items: items.Morph and ( + items.SpeedBooster or items.Grapple or items.SpaceJump or + items.Gravity and (items.CanIbj() or items.HiJump) or + self.world.CanEnter("Wrecked Ship", items)) if self.Logic == SMLogic.Normal else \ + lambda items: items.Morph), + Location(self, 2, 0x8F81EE, LocationType.Hidden, "Missile (outside Wrecked Ship top)", + lambda items: self.world.CanEnter("Wrecked Ship", items) and (not self.Config.Keysanity or items.CardWreckedShipBoss) and items.CanPassBombPassages()), + Location(self, 3, 0x8F81F4, LocationType.Visible, "Missile (outside Wrecked Ship middle)", + lambda items: self.world.CanEnter("Wrecked Ship", items) and (not self.Config.Keysanity or items.CardWreckedShipBoss) and items.CanPassBombPassages()), + Location(self, 4, 0x8F8248, LocationType.Visible, "Missile (Crateria moat)", + lambda items: True) + ] + + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + # /* Ship -> Moat */ + return (items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) and items.Super or ( + # /* UN Portal -> Red Tower -> Moat + items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) and items.CanAccessNorfairUpperPortal() and ( + items.Ice or items.HiJump or items.SpaceJump) or ( + # /*Through Maridia From Portal*/ + items.CanAccessMaridiaPortal(self.world)) and items.Gravity and items.Super and ( + # /* Oasis -> Forgotten Highway */ + items.CardMaridiaL2 and items.CanDestroyBombWalls() or ( + # /* Draygon -> Cactus Alley -> Forgotten Highway */ + self.world.GetLocation("Space Jump").Available(items))) or ( + # /*Through Maridia from Pipe*/ + items.CanUsePowerBombs()) and items.Super and items.Gravity + else: + # /* Ship -> Moat */ + return (items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) and items.Super or ( + # /* UN Portal -> Red Tower -> Moat */ + items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) and items.CanAccessNorfairUpperPortal() and ( + items.Ice or items.HiJump or items.CanFly() or items.CanSpringBallJump()) or ( + # /*Through Maridia From Portal*/ + items.CanAccessMaridiaPortal(self.world)) and ( + # /* Oasis -> Forgotten Highway */ + items.CardMaridiaL2 and items.Super and ( + items.HiJump and items.CanPassBombPassages() or + items.Gravity and items.CanDestroyBombWalls() + ) or + # /* Draygon -> Cactus Alley -> Forgotten Highway */ + items.Gravity and self.world.GetLocation("Space Jump").Available(items)) or ( + # /*Through Maridia from Pipe*/ + items.CanUsePowerBombs()) and items.Super and (items.Gravity or items.HiJump and (items.Ice or items.CanSpringBallJump()) + and items.Grapple and items.CardMaridiaL1) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py new file mode 100644 index 00000000..5554b088 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/West.py @@ -0,0 +1,38 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class West(SMRegion): + Name = "Crateria West" + Area = "Crateria" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 8, 0x8F8432, LocationType.Visible, "Energy Tank, Terminator"), + Location(self, 5, 0x8F8264, LocationType.Visible, "Energy Tank, Gauntlet", + lambda items: self.CanEnterAndLeaveGauntlet(items) and items.HasEnergyReserves(1) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanEnterAndLeaveGauntlet(items)), + Location(self, 9, 0x8F8464, LocationType.Visible, "Missile (Crateria gauntlet right)", + lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages() and items.HasEnergyReserves(2) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages()), + Location(self, 10, 0x8F846A, LocationType.Visible, "Missile (Crateria gauntlet left)", + lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages() and items.HasEnergyReserves(2) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanEnterAndLeaveGauntlet(items) and items.CanPassBombPassages()) + ] + + def CanEnter(self, items: Progression): + return items.CanDestroyBombWalls() or items.SpeedBooster + + def CanEnterAndLeaveGauntlet(self, items: Progression): + if self.Logic == SMLogic.Normal: + return items.CardCrateriaL1 and items.Morph and (items.CanFly() or items.SpeedBooster) and ( + items.CanIbj() or + items.CanUsePowerBombs() and items.TwoPowerBombs or + items.ScrewAttack) + else: + return items.CardCrateriaL1 and ( + items.Morph and (items.Bombs or items.TwoPowerBombs) or + items.ScrewAttack or + items.SpeedBooster and items.CanUsePowerBombs() and items.HasEnergyReserves(2)) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Crateria/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Inner.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Inner.py new file mode 100644 index 00000000..280f7e5b --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Inner.py @@ -0,0 +1,110 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion, IReward, RewardType +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Inner(SMRegion, IReward): + Name = "Maridia Inner" + Area = "Maridia" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.GoldenFourBoss + self.Locations = [ + Location(self, 140, 0x8FC4AF, LocationType.Visible, "Super Missile (yellow Maridia)", + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() and + (items.Gravity or items.Ice or items.HiJump and items.CanSpringBallJump())), + Location(self, 141, 0x8FC4B5, LocationType.Visible, "Missile (yellow Maridia super missile)", + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() and + (items.Gravity or items.Ice or items.HiJump and items.CanSpringBallJump())), + Location(self, 142, 0x8FC533, LocationType.Visible, "Missile (yellow Maridia false wall)", + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: items.CardMaridiaL1 and items.CanPassBombPassages() and + (items.Gravity or items.Ice or items.HiJump and items.CanSpringBallJump())), + Location(self, 143, 0x8FC559, LocationType.Chozo, "Plasma Beam", + lambda items: self.CanDefeatDraygon(items) and (items.ScrewAttack or items.Plasma) and (items.HiJump or items.CanFly()) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanDefeatDraygon(items) and + (items.Charge and items.HasEnergyReserves(3) or items.ScrewAttack or items.Plasma or items.SpeedBooster) and + (items.HiJump or items.CanSpringBallJump() or items.CanFly() or items.SpeedBooster)), + Location(self, 144, 0x8FC5DD, LocationType.Visible, "Missile (left Maridia sand pit room)", + lambda items: self.CanReachAqueduct(items) and items.Super and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Super and + (items.HiJump and (items.SpaceJump or items.CanSpringBallJump()) or items.Gravity)), + Location(self, 145, 0x8FC5E3, LocationType.Chozo, "Reserve Tank, Maridia", + lambda items: self.CanReachAqueduct(items) and items.Super and items.CanPassBombPassages() if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Super and + (items.HiJump and (items.SpaceJump or items.CanSpringBallJump()) or items.Gravity)), + Location(self, 146, 0x8FC5EB, LocationType.Visible, "Missile (right Maridia sand pit room)", + lambda items: self.CanReachAqueduct(items) and items.Super) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Super and (items.HiJump or items.Gravity), + Location(self, 147, 0x8FC5F1, LocationType.Visible, "Power Bomb (right Maridia sand pit room)", + lambda items: self.CanReachAqueduct(items) and items.Super) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Super and (items.HiJump and items.CanSpringBallJump() or items.Gravity), + Location(self, 148, 0x8FC603, LocationType.Visible, "Missile (pink Maridia)", + lambda items: self.CanReachAqueduct(items) and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Gravity), + Location(self, 149, 0x8FC609, LocationType.Visible, "Super Missile (pink Maridia)", + lambda items: self.CanReachAqueduct(items) and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: self.CanReachAqueduct(items) and items.Gravity), + Location(self, 150, 0x8FC6E5, LocationType.Chozo, "Spring Ball", + lambda items: items.Super and items.Grapple and items.CanUsePowerBombs() and (items.SpaceJump or items.HiJump) if self.Logic == SMLogic.Normal else \ + lambda items: items.Super and items.Grapple and items.CanUsePowerBombs() and ( + items.Gravity and (items.CanFly() or items.HiJump) or + items.Ice and items.HiJump and items.CanSpringBallJump() and items.SpaceJump)), + Location(self, 151, 0x8FC74D, LocationType.Hidden, "Missile (Draygon)", + lambda items: + items.CardMaridiaL1 and items.CardMaridiaL2 and self.CanDefeatBotwoon(items) or + items.CanAccessMaridiaPortal(self.world) if self.Logic == SMLogic.Normal else \ + lambda items: ( + items.CardMaridiaL1 and items.CardMaridiaL2 and self.CanDefeatBotwoon(items) or + items.CanAccessMaridiaPortal(self.world) + ) and items.Gravity), + Location(self, 152, 0x8FC755, LocationType.Visible, "Energy Tank, Botwoon", + lambda items: + items.CardMaridiaL1 and items.CardMaridiaL2 and self.CanDefeatBotwoon(items) or + items.CanAccessMaridiaPortal(self.world) and items.CardMaridiaL2), + Location(self, 154, 0x8FC7A7, LocationType.Chozo, "Space Jump", + lambda items: self.CanDefeatDraygon(items)) + ] + + def CanReachAqueduct(self, items: Progression): + if self.Logic == SMLogic.Normal: + return items.CardMaridiaL1 and (items.CanFly() or items.SpeedBooster or items.Grapple) \ + or items.CardMaridiaL2 and items.CanAccessMaridiaPortal(self.world) + else: + return items.CardMaridiaL1 and (items.Gravity or items.HiJump and (items.Ice or items.CanSpringBallJump()) and items.Grapple) \ + or items.CardMaridiaL2 and items.CanAccessMaridiaPortal(self.world) + + def CanDefeatDraygon(self, items: Progression): + if self.Logic == SMLogic.Normal: + return (items.CardMaridiaL1 and items.CardMaridiaL2 and self.CanDefeatBotwoon(items) or + items.CanAccessMaridiaPortal(self.world) + ) and items.CardMaridiaBoss and items.Gravity and (items.SpeedBooster and items.HiJump or items.CanFly()) + else: + return (items.CardMaridiaL1 and items.CardMaridiaL2 and self.CanDefeatBotwoon(items) or + items.CanAccessMaridiaPortal(self.world) + ) and items.CardMaridiaBoss and items.Gravity + + + def CanDefeatBotwoon(self, items: Progression): + if self.Logic == SMLogic.Normal: + return items.SpeedBooster or items.CanAccessMaridiaPortal(self.world) + else: + return items.Ice or items.SpeedBooster and items.Gravity or items.CanAccessMaridiaPortal(self.world) + + + def CanEnter(self, items: Progression): + if self.Logic == SMLogic.Normal: + return items.Gravity and ( + self.world.CanEnter("Norfair Upper West", items) and items.Super and items.CanUsePowerBombs() and + (items.CanFly() or items.SpeedBooster or items.Grapple) or + items.CanAccessMaridiaPortal(self.world)) + else: + return items.Super and self.world.CanEnter("Norfair Upper West", items) and items.CanUsePowerBombs() and ( + items.Gravity or items.HiJump and (items.Ice or items.CanSpringBallJump()) and items.Grapple) or \ + items.CanAccessMaridiaPortal(self.world) + + def CanComplete(self, items: Progression): + return self.GetLocation("Space Jump").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Outer.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Outer.py new file mode 100644 index 00000000..64907452 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/Outer.py @@ -0,0 +1,37 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Outer(SMRegion): + Name = "Maridia Outer" + Area = "Maridia" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 136, 0x8FC437, LocationType.Visible, "Missile (green Maridia shinespark)", + lambda items: items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: items.Gravity and items.SpeedBooster), + Location(self, 137, 0x8FC43D, LocationType.Visible, "Super Missile (green Maridia)"), + Location(self, 138, 0x8FC47D, LocationType.Visible, "Energy Tank, Mama turtle", + lambda items: items.CanOpenRedDoors() and (items.CanFly() or items.SpeedBooster or items.Grapple) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanOpenRedDoors() and ( + items.CanFly() or items.SpeedBooster or items.Grapple or + items.CanSpringBallJump() and (items.Gravity or items.HiJump))), + Location(self, 139, 0x8FC483, LocationType.Hidden, "Missile (green Maridia tatori)", + lambda items: items.CanOpenRedDoors()) + ] + + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return items.Gravity and ( + self.world.CanEnter("Norfair Upper West", items) and items.CanUsePowerBombs() or + items.CanAccessMaridiaPortal(self.world) and items.CardMaridiaL1 and items.CardMaridiaL2 and (items.CanPassBombPassages() or items.ScrewAttack)) + else: + return self.world.CanEnter("Norfair Upper West", items) and items.CanUsePowerBombs() and ( + items.Gravity or items.HiJump and (items.CanSpringBallJump() or items.Ice)) or ( + items.CanAccessMaridiaPortal(self.world)) and items.CardMaridiaL1 and items.CardMaridiaL2 and ( + items.CanPassBombPassages() or + items.Gravity and items.ScrewAttack or + items.Super and (items.Gravity or items.HiJump and (items.CanSpringBallJump() or items.Ice))) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/Maridia/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/East.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/East.py new file mode 100644 index 00000000..0cd577f7 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/East.py @@ -0,0 +1,60 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion, IReward, RewardType +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class East(SMRegion, IReward): + Name = "Norfair Lower East" + Area = "Norfair Lower" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.GoldenFourBoss + self.Locations = [ + Location(self, 74, 0x8F8FCA, LocationType.Visible, "Missile (lower Norfair above fire flea room)", + lambda items: self.CanExit(items)), + Location(self, 75, 0x8F8FD2, LocationType.Visible, "Power Bomb (lower Norfair above fire flea room)", + lambda items: self.CanExit(items)) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanExit(items) and items.CanPassBombPassages(), + Location(self, 76, 0x8F90C0, LocationType.Visible, "Power Bomb (Power Bombs of shame)", + lambda items: self.CanExit(items) and items.CanUsePowerBombs()), + Location(self, 77, 0x8F9100, LocationType.Visible, "Missile (lower Norfair near Wave Beam)", + lambda items: self.CanExit(items)) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanExit(items) and items.Morph and items.CanDestroyBombWalls(), + Location(self, 78, 0x8F9108, LocationType.Hidden, "Energy Tank, Ridley", + lambda items: self.CanExit(items) and items.CardLowerNorfairBoss and items.CanUsePowerBombs() and items.Super), + Location(self, 80, 0x8F9184, LocationType.Visible, "Energy Tank, Firefleas", + lambda items: self.CanExit(items)) + ] + + def CanExit(self, items:Progression): + if self.Logic == SMLogic.Normal: + # /*Bubble Mountain*/ + return items.CardNorfairL2 or ( + # /* Volcano Room and Blue Gate */ + items.Gravity) and items.Wave and ( + # /*Spikey Acid Snakes and Croc Escape*/ + items.Grapple or items.SpaceJump) + else: + # /*Vanilla LN Escape*/ + return (items.Morph and (items.CardNorfairL2 or # /*Bubble Mountain*/ + (items.Missile or items.Super or items.Wave) and # /* Blue Gate */ + (items.SpeedBooster or items.CanFly() or items.Grapple or items.HiJump and + (items.CanSpringBallJump() or items.Ice))) or # /*Frog Speedway or Croc Escape*/ + # /*Reverse Amphitheater*/ + items.HasEnergyReserves(5)) + + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return items.Varia and items.CardLowerNorfairL1 and ( + self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.SpaceJump and items.Gravity or + items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() and items.Super and items.CanUsePowerBombs() and items.CanFly()) + else: + return items.Varia and items.CardLowerNorfairL1 and ( + self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and (items.HiJump or items.Gravity) or + items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() and items.Super and (items.CanFly() or items.CanSpringBallJump() or items.SpeedBooster)) and ( + items.CanFly() or items.HiJump or items.CanSpringBallJump() or items.Ice and items.Charge) and ( + items.CanPassBombPassages() or items.ScrewAttack and items.SpaceJump) + + def CanComplete(self, items:Progression): + return self.GetLocation("Energy Tank, Ridley").Available(items) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/West.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/West.py new file mode 100644 index 00000000..8740c545 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/West.py @@ -0,0 +1,67 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class West(SMRegion): + Name = "Norfair Lower West" + Area = "Norfair Lower" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 70, 0x8F8E6E, LocationType.Visible, "Missile (Gold Torizo)", + lambda items: items.CanUsePowerBombs() and items.SpaceJump and items.Super if self.Logic == SMLogic.Normal else \ + lambda items: items.CanUsePowerBombs() and items.SpaceJump and items.Varia and ( + items.HiJump or items.Gravity or + items.CanAccessNorfairLowerPortal() and (items.CanFly() or items.CanSpringBallJump() or items.SpeedBooster) and items.Super)), + Location(self, 71, 0x8F8E74, LocationType.Hidden, "Super Missile (Gold Torizo)", + lambda items: items.CanDestroyBombWalls() and (items.Super or items.Charge) and + (items.CanAccessNorfairLowerPortal() or items.SpaceJump and items.CanUsePowerBombs()) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanDestroyBombWalls() and items.Varia and (items.Super or items.Charge)), + Location(self, 79, 0x8F9110, LocationType.Chozo, "Screw Attack", + lambda items: items.CanDestroyBombWalls() and (items.SpaceJump and items.CanUsePowerBombs() or items.CanAccessNorfairLowerPortal()) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanDestroyBombWalls() and (items.Varia or items.CanAccessNorfairLowerPortal())), + Location(self, 73, 0x8F8F30, LocationType.Visible, "Missile (Mickey Mouse room)", + lambda items: items.CanFly() and items.Morph and items.Super and ( + # /*Exit to Upper Norfair*/ + (items.CardLowerNorfairL1 or + # /*Vanilla or Reverse Lava Dive*/ + items.Gravity) and + # /*Bubble Mountain*/ + items.CardNorfairL2 or + # /* Volcano Room and Blue Gate */ + items.Gravity and items.Wave and + # /*Spikey Acid Snakes and Croc Escape*/ + (items.Grapple or items.SpaceJump) or + # /*Exit via GT fight and Portal*/ + (items.CanUsePowerBombs() and items.SpaceJump and (items.Super or items.Charge))) if self.Logic == SMLogic.Normal else \ + lambda items: + items.Morph and items.Varia and items.Super and ((items.CanFly() or items.CanSpringBallJump() or + items.SpeedBooster and (items.HiJump and items.CanUsePowerBombs() or items.Charge and items.Ice)) and + # /*Exit to Upper Norfair*/ + (items.CardNorfairL2 or (items.SpeedBooster or items.CanFly() or items.Grapple or items.HiJump and + (items.CanSpringBallJump() or items.Ice))) or + # /*Return to Portal*/ + items.CanUsePowerBombs())) + ] + + # // Todo: account for Croc Speedway once Norfair Upper East also do so, otherwise it would be inconsistent to do so here + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return items.Varia and ( + self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.SpaceJump and items.Gravity and ( + # /* Trivial case, Bubble Mountain access */ + items.CardNorfairL2 or + # /* Frog Speedway -> UN Farming Room gate */ + items.SpeedBooster and items.Wave + ) or + items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() + ) + else: + return self.world.CanEnter("Norfair Upper East", items) and items.CanUsePowerBombs() and items.Varia and (items.HiJump or items.Gravity) and ( + # /* Trivial case, Bubble Mountain access */ + items.CardNorfairL2 or + # /* Frog Speedway -> UN Farming Room gate */ + items.SpeedBooster and (items.Missile or items.Super or items.Wave) # /* Blue Gate */ + ) or items.CanAccessNorfairLowerPortal() and items.CanDestroyBombWalls() \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairLower/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/Crocomire.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/Crocomire.py new file mode 100644 index 00000000..914d07c3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/Crocomire.py @@ -0,0 +1,69 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Crocomire(SMRegion): + Name = "Norfair Upper Crocomire" + Area = "Norfair Upper" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 52, 0x8F8BA4, LocationType.Visible, "Energy Tank, Crocomire", + lambda items: self.CanAccessCrocomire(items) and (items.HasEnergyReserves(1) or items.SpaceJump or items.Grapple) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanAccessCrocomire(items)), + Location(self, 54, 0x8F8BC0, LocationType.Visible, "Missile (above Crocomire)", + lambda items: items.CanFly() or items.Grapple or items.HiJump and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: (items.CanFly() or items.Grapple or items.HiJump and + (items.SpeedBooster or items.CanSpringBallJump() or items.Varia and items.Ice)) and items.CanHellRun()), + Location(self, 57, 0x8F8C04, LocationType.Visible, "Power Bomb (Crocomire)", + lambda items: self.CanAccessCrocomire(items) and (items.CanFly() or items.HiJump or items.Grapple) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanAccessCrocomire(items)), + Location(self, 58, 0x8F8C14, LocationType.Visible, "Missile (below Crocomire)", + lambda items: self.CanAccessCrocomire(items) and items.Morph), + Location(self, 59, 0x8F8C2A, LocationType.Visible, "Missile (Grappling Beam)", + lambda items: self.CanAccessCrocomire(items) and items.Morph and (items.CanFly() or items.SpeedBooster and items.CanUsePowerBombs()) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanAccessCrocomire(items) and (items.SpeedBooster or items.Morph and (items.CanFly() or items.Grapple))), + Location(self, 60, 0x8F8C36, LocationType.Chozo, "Grappling Beam", + lambda items: self.CanAccessCrocomire(items) and items.Morph and (items.CanFly() or items.SpeedBooster and items.CanUsePowerBombs()) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanAccessCrocomire(items) and (items.SpaceJump or items.Morph or items.Grapple or + items.HiJump and items.SpeedBooster)) + ] + + def CanAccessCrocomire(self, items:Progression): + return items.CardNorfairBoss if self.Config.Keysanity else items.Super + + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return ((items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or items.CanAccessNorfairUpperPortal()) and ( + items.Varia) and ( + # /* Ice Beam -> Croc Speedway */ + (items.CardNorfairL1 if self.Config.Keysanity else items.Super) and items.CanUsePowerBombs() and items.SpeedBooster or + # /* Frog Speedway */ + items.SpeedBooster and items.Wave or + # /* Cathedral -> through the floor or Vulcano */ + items.CanOpenRedDoors() and (items.CardNorfairL2 if self.Config.Keysanity else items.Super) and + (items.CanFly() or items.HiJump or items.SpeedBooster) and + (items.CanPassBombPassages() or items.Gravity and items.Morph) and items.Wave + or + # /* Reverse Lava Dive */ + items.CanAccessNorfairLowerPortal() and items.ScrewAttack and items.SpaceJump and items.Super and + items.Gravity and items.Wave and (items.CardNorfairL2 or items.Morph)) + else: + return ((items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or items.CanAccessNorfairUpperPortal()) and ( + # /* Ice Beam -> Croc Speedway */ + (items.CardNorfairL1 if self.Config.Keysanity else items.Super) and items.CanUsePowerBombs() and + items.SpeedBooster and (items.HasEnergyReserves(3) or items.Varia) or + # /* Frog Speedway */ + items.SpeedBooster and (items.HasEnergyReserves(2) or items.Varia) and + (items.Missile or items.Super or items.Wave) or ( # /* Blue Gate */ + # /* Cathedral -> through the floor or Vulcano */ + items.CanHellRun()) and items.CanOpenRedDoors() and (items.CardNorfairL2 if self.Config.Keysanity else items.Super) and + (items.CanFly() or items.HiJump or items.SpeedBooster or items.CanSpringBallJump() or items.Varia and items.Ice) and + (items.CanPassBombPassages() or items.Varia and items.Morph) and + (items.Missile or items.Super or items.Wave) # /* Blue Gate */ + ) or ( + # /* Reverse Lava Dive */ + items.CanAccessNorfairLowerPortal()) and items.ScrewAttack and items.SpaceJump and items.Varia and items.Super and ( + items.HasEnergyReserves(2)) and (items.CardNorfairL2 or items.Morph) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/East.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/East.py new file mode 100644 index 00000000..a2dc2b1b --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/East.py @@ -0,0 +1,94 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class East(SMRegion): + Name = "Norfair Upper East" + Area = "Norfair Upper" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 61, 0x8F8C3E, LocationType.Chozo, "Reserve Tank, Norfair", + lambda items: items.CardNorfairL2 and items.Morph and ( + items.CanFly() or + items.Grapple and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 and items.Morph and items.Super), + Location(self, 62, 0x8F8C44, LocationType.Hidden, "Missile (Norfair Reserve Tank)", + lambda items: items.CardNorfairL2 and items.Morph and ( + items.CanFly() or + items.Grapple and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 and items.Morph and items.Super), + Location(self, 63, 0x8F8C52, LocationType.Visible, "Missile (bubble Norfair green door)", + lambda items: items.CardNorfairL2 and ( + items.CanFly() or + items.Grapple and items.Morph and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 and items.Super), + Location(self, 64, 0x8F8C66, LocationType.Visible, "Missile (bubble Norfair)", + lambda items: items.CardNorfairL2), + Location(self, 65, 0x8F8C74, LocationType.Hidden, "Missile (Speed Booster)", + lambda items: items.CardNorfairL2 and ( + items.CanFly() or + items.Morph and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 and items.Super), + Location(self, 66, 0x8F8C82, LocationType.Chozo, "Speed Booster", + lambda items: items.CardNorfairL2 and ( + items.CanFly() or + items.Morph and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 and items.Super), + Location(self, 67, 0x8F8CBC, LocationType.Visible, "Missile (Wave Beam)", + lambda items: items.CardNorfairL2 and ( + items.CanFly() or + items.Morph and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) or + items.SpeedBooster and items.Wave and items.Morph and items.Super if self.Logic == SMLogic.Normal else \ + lambda items: items.CardNorfairL2 or items.Varia), + Location(self, 68, 0x8F8CCA, LocationType.Chozo, "Wave Beam", + lambda items: items.Morph and ( + items.CardNorfairL2 and ( + items.CanFly() or + items.Morph and (items.SpeedBooster or items.CanPassBombPassages()) or + items.HiJump or items.Ice + ) or + items.SpeedBooster and items.Wave and items.Morph and items.Super + ) if self.Logic == SMLogic.Normal else \ + lambda items: items.CanOpenRedDoors() and (items.CardNorfairL2 or items.Varia) and + (items.Morph or items.Grapple or items.HiJump and items.Varia or items.SpaceJump)) + ] + + # // Todo: Super is not actually needed for Frog Speedway, but changing this will affect locations + # // Todo: Ice Beam -> Croc Speedway is not considered + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return ((items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or + items.CanAccessNorfairUpperPortal() + ) and items.Varia and items.Super and ( + # /* Cathedral */ + items.CanOpenRedDoors() and (items.CardNorfairL2 if self.Config.Keysanity else items.Super) and + (items.CanFly() or items.HiJump or items.SpeedBooster) or + # /* Frog Speedway */ + items.SpeedBooster and (items.CardNorfairL2 or items.Wave) and items.CanUsePowerBombs() + ) + else: + return ((items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or + items.CanAccessNorfairUpperPortal()) and ( + items.CanHellRun()) and ( + # /* Cathedral */ + items.CanOpenRedDoors() and (items.CardNorfairL2 if self.Config.Keysanity else items.Super) and ( + items.CanFly() or items.HiJump or items.SpeedBooster or + items.CanSpringBallJump() or items.Varia and items.Ice + ) or + # /* Frog Speedway */ + items.SpeedBooster and (items.CardNorfairL2 or items.Missile or items.Super or items.Wave) and items.CanUsePowerBombs()) diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/West.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/West.py new file mode 100644 index 00000000..5dcafdf4 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/West.py @@ -0,0 +1,44 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class West(SMRegion): + Name = "Norfair Upper West" + Area = "Norfair Upper" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 49, 0x8F8AE4, LocationType.Hidden, "Missile (lava room)", + lambda items: items.Varia and ( + items.CanOpenRedDoors() and (items.CanFly() or items.HiJump or items.SpeedBooster) or + self.world.CanEnter("Norfair Upper East", items) and items.CardNorfairL2 + ) and items.Morph if self.Logic == SMLogic.Normal else \ + lambda items: items.CanHellRun() and ( + items.CanOpenRedDoors() and ( + items.CanFly() or items.HiJump or items.SpeedBooster or + items.CanSpringBallJump() or items.Varia and items.Ice + ) or + self.world.CanEnter("Norfair Upper East", items) and items.CardNorfairL2 + ) and items.Morph), + Location(self, 50, 0x8F8B24, LocationType.Chozo, "Ice Beam", + lambda items: (items.CardNorfairL1 if config.Keysanity else items.Super) and items.CanPassBombPassages() and items.Varia and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: (items.CardNorfairL1 if config.Keysanity else items.Super) and items.Morph and (items.Varia or items.HasEnergyReserves(3))), + Location(self, 51, 0x8F8B46, LocationType.Hidden, "Missile (below Ice Beam)", + lambda items: (items.CardNorfairL1 if config.Keysanity else items.Super) and items.CanUsePowerBombs() and items.Varia and items.SpeedBooster if self.Logic == SMLogic.Normal else \ + lambda items: + (items.CardNorfairL1 if config.Keysanity else items.Super) and items.CanUsePowerBombs() and (items.Varia or items.HasEnergyReserves(3)) or + (items.Missile or items.Super or items.Wave) and items.Varia and items.SpeedBooster and # /* Blue Gate */ + # /* Access to Croc's room to get spark */ + (items.CardNorfairBoss if config.Keysanity else items.Super) and items.CardNorfairL1), + Location(self, 53, 0x8F8BAC, LocationType.Chozo, "Hi-Jump Boots", + lambda items: items.CanOpenRedDoors() and items.CanPassBombPassages()), + Location(self, 55, 0x8F8BE6, LocationType.Visible, "Missile (Hi-Jump Boots)", + lambda items: items.CanOpenRedDoors() and items.Morph), + Location(self, 56, 0x8F8BEC, LocationType.Visible, "Energy Tank (Hi-Jump Boots)", + lambda items: items.CanOpenRedDoors()) + ] + + def CanEnter(self, items:Progression): + return (items.CanDestroyBombWalls() or items.SpeedBooster) and items.Super and items.Morph or items.CanAccessNorfairUpperPortal() \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/NorfairUpper/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/WreckedShip.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/WreckedShip.py new file mode 100644 index 00000000..053de3d1 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/WreckedShip.py @@ -0,0 +1,77 @@ +from worlds.smz3.TotalSMZ3.Region import SMRegion, IReward, RewardType +from worlds.smz3.TotalSMZ3.Config import Config, SMLogic +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class WreckedShip(SMRegion, IReward): + Name = "Wrecked Ship" + Area = "Wrecked Ship" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.GoldenFourBoss + self.Locations = [ + Location(self, 128, 0x8FC265, LocationType.Visible, "Missile (Wrecked Ship middle)", + lambda items: items.CanPassBombPassages()), + Location(self, 129, 0x8FC2E9, LocationType.Chozo, "Reserve Tank, Wrecked Ship", + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and items.SpeedBooster and items.CanUsePowerBombs() and + (items.Grapple or items.SpaceJump or items.Varia and items.HasEnergyReserves(2) or items.HasEnergyReserves(3)) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and items.CanUsePowerBombs() and items.SpeedBooster and + (items.Varia or items.HasEnergyReserves(2))), + Location(self, 130, 0x8FC2EF, LocationType.Visible, "Missile (Gravity Suit)", + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and + (items.Grapple or items.SpaceJump or items.Varia and items.HasEnergyReserves(2) or items.HasEnergyReserves(3)) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and (items.Varia or items.HasEnergyReserves(1))), + Location(self, 131, 0x8FC319, LocationType.Visible, "Missile (Wrecked Ship top)", + lambda items: self.CanUnlockShip(items)), + Location(self, 132, 0x8FC337, LocationType.Visible, "Energy Tank, Wrecked Ship", + lambda items: self.CanUnlockShip(items) and + (items.HiJump or items.SpaceJump or items.SpeedBooster or items.Gravity) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanUnlockShip(items) and (items.Bombs or items.PowerBomb or items.CanSpringBallJump() or + items.HiJump or items.SpaceJump or items.SpeedBooster or items.Gravity)), + Location(self, 133, 0x8FC357, LocationType.Visible, "Super Missile (Wrecked Ship left)", + lambda items: self.CanUnlockShip(items)), + Location(self, 134, 0x8FC365, LocationType.Visible, "Right Super, Wrecked Ship", + lambda items: self.CanUnlockShip(items)), + Location(self, 135, 0x8FC36D, LocationType.Chozo, "Gravity Suit", + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and + (items.Grapple or items.SpaceJump or items.Varia and items.HasEnergyReserves(2) or items.HasEnergyReserves(3)) if self.Logic == SMLogic.Normal else \ + lambda items: self.CanUnlockShip(items) and items.CardWreckedShipL1 and (items.Varia or items.HasEnergyReserves(1))) + ] + + def CanUnlockShip(self, items:Progression): + return items.CardWreckedShipBoss and items.CanPassBombPassages() + + def CanEnter(self, items:Progression): + if self.Logic == SMLogic.Normal: + return items.Super and ( + # /* Over the Moat */ + (items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) and ( + items.SpeedBooster or items.Grapple or items.SpaceJump or + items.Gravity and (items.CanIbj() or items.HiJump) + ) or + # /* Through Maridia -> Forgotten Highway */ + items.CanUsePowerBombs() and items.Gravity or + # /* From Maridia portal -> Forgotten Highway */ + items.CanAccessMaridiaPortal(self.world) and items.Gravity and ( + items.CanDestroyBombWalls() and items.CardMaridiaL2 or + self.world.GetLocation("Space Jump").Available(items))) + else: + return items.Super and ( + # /* Over the Moat */ + (items.CardCrateriaL2 if self.Config.Keysanity else items.CanUsePowerBombs()) or + # /* Through Maridia -> Forgotten Highway */ + items.CanUsePowerBombs() and ( + items.Gravity or + # /* Climb Mt. Everest */ + items.HiJump and (items.Ice or items.CanSpringBallJump()) and items.Grapple and items.CardMaridiaL1 + ) or + # /* From Maridia portal -> Forgotten Highway */ + items.CanAccessMaridiaPortal(self.world) and ( + items.HiJump and items.CanPassBombPassages() and items.CardMaridiaL2 or + items.Gravity and ( + items.CanDestroyBombWalls() and items.CardMaridiaL2 or + self.world.GetLocation("Space Jump").Available(items)))) + + def CanComplete(self, items:Progression): + return self.CanEnter(items) and self.CanUnlockShip(items) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/__init__.py b/worlds/smz3/TotalSMZ3/Regions/SuperMetroid/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/CastleTower.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/CastleTower.py new file mode 100644 index 00000000..8a1eba58 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/CastleTower.py @@ -0,0 +1,25 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class CastleTower(Z3Region, IReward): + Name = "Castle Tower" + Area = "Castle Tower" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.Agahnim + self.RegionItems = [ItemType.KeyCT] + self.Locations = [ + Location(self, 256+101, 0x1EAB5, LocationType.Regular, "Castle Tower - Foyer"), + Location(self, 256+102, 0x1EAB2, LocationType.Regular, "Castle Tower - Dark Maze", + lambda items: items.Lamp and items.KeyCT >= 1) + ] + + def CanEnter(self, items: Progression): + return items.CanKillManyEnemies() and (items.Cape or items.MasterSword) + + def CanComplete(self, items: Progression): + return self.CanEnter(items) and items.Lamp and items.KeyCT >= 2 and items.Sword + diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/East.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/East.py new file mode 100644 index 00000000..be9eb1ba --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/East.py @@ -0,0 +1,28 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class East(Z3Region): + Name = "Dark World Death Mountain East" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+65, 0x1EB51, LocationType.Regular, "Hookshot Cave - Top Right", + lambda items: items.MoonPearl and items.Hookshot), + Location(self, 256+66, 0x1EB54, LocationType.Regular, "Hookshot Cave - Top Left", + lambda items: items.MoonPearl and items.Hookshot), + Location(self, 256+67, 0x1EB57, LocationType.Regular, "Hookshot Cave - Bottom Left", + lambda items: items.MoonPearl and items.Hookshot), + Location(self, 256+68, 0x1EB5A, LocationType.Regular, "Hookshot Cave - Bottom Right", + lambda items: items.MoonPearl and (items.Hookshot or items.Boots)), + Location(self, 256+69, 0x1EA7C, LocationType.Regular, "Superbunny Cave - Top", + lambda items: items.MoonPearl), + Location(self, 256+70, 0x1EA7F, LocationType.Regular, "Superbunny Cave - Bottom", + lambda items: items.MoonPearl) + ] + + def CanEnter(self, items: Progression): + return items.CanLiftHeavy() and self.world.CanEnter("Light World Death Mountain East", items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/West.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/West.py new file mode 100644 index 00000000..dfe3de55 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/West.py @@ -0,0 +1,16 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class West(Z3Region): + Name = "Dark World Death Mountain West" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+64, 0x1EA8B, LocationType.Regular, "Spike Cave", + lambda items: items.MoonPearl and items.Hammer and items.CanLiftLight() and + (items.CanExtendMagic() and items.Cape or items.Byrna) and + self.world.CanEnter("Light World Death Mountain West", items)) + ] \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/__init__.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/DeathMountain/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/Mire.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/Mire.py new file mode 100644 index 00000000..d7d7345a --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/Mire.py @@ -0,0 +1,20 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class Mire(Z3Region): + Name = "Dark World Mire" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+89, 0x1EA73, LocationType.Regular, "Mire Shed - Left", + lambda items: items.MoonPearl), + Location(self, 256+90, 0x1EA76, LocationType.Regular, "Mire Shed - Right", + lambda items: items.MoonPearl) + ] + + def CanEnter(self, items: Progression): + return items.Flute and items.CanLiftHeavy() or items.CanAccessMiseryMirePortal(Config) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthEast.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthEast.py new file mode 100644 index 00000000..5bc581c6 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthEast.py @@ -0,0 +1,28 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class NorthEast(Z3Region): + Name = "Dark World North East" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+78, 0x1DE185, LocationType.Regular, "Catfish", + lambda items: items.MoonPearl and items.CanLiftLight()), + Location(self, 256+79, 0x308147, LocationType.Regular, "Pyramid"), + Location(self, 256+80, 0x1E980, LocationType.Regular, "Pyramid Fairy - Left", + lambda items: self.world.CanAquireAll(items, RewardType.CrystalRed) and items.MoonPearl and self.world.CanEnter("Dark World South", items) and + (items.Hammer or items.Mirror and self.world.CanAquire(items, RewardType.Agahnim))), + Location(self, 256+81, 0x1E983, LocationType.Regular, "Pyramid Fairy - Right", + lambda items: self.world.CanAquireAll(items, RewardType.CrystalRed) and items.MoonPearl and self.world.CanEnter("Dark World South", items) and + (items.Hammer or items.Mirror and self.world.CanAquire(items, RewardType.Agahnim))) + ] + + def CanEnter(self, items: Progression): + return self.world.CanAquire(items, RewardType.Agahnim) or items.MoonPearl and ( + items.Hammer and items.CanLiftLight() or + items.CanLiftHeavy() and items.Flippers or + items.CanAccessDarkWorldPortal(self.Config) and items.Flippers) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthWest.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthWest.py new file mode 100644 index 00000000..57b5ece1 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/NorthWest.py @@ -0,0 +1,32 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class NorthWest(Z3Region): + Name = "Dark World North West" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+71, 0x308146, LocationType.Regular, "Bumper Cave", + lambda items: items.CanLiftLight() and items.Cape), + Location(self, 256+72, 0x1EDA8, LocationType.Regular, "Chest Game"), + Location(self, 256+73, 0x1E9EF, LocationType.Regular, "C-Shaped House"), + Location(self, 256+74, 0x1E9EC, LocationType.Regular, "Brewery"), + Location(self, 256+75, 0x308006, LocationType.Regular, "Hammer Pegs", + lambda items: items.CanLiftHeavy() and items.Hammer), + Location(self, 256+76, 0x30802A, LocationType.Regular, "Blacksmith", + lambda items: items.CanLiftHeavy()), + Location(self, 256+77, 0x6BD68, LocationType.Regular, "Purple Chest", + lambda items: items.CanLiftHeavy()) + ] + + def CanEnter(self, items: Progression): + return items.MoonPearl and (( + self.world.CanAquire(items, RewardType.Agahnim) or + items.CanAccessDarkWorldPortal(self.Config) and items.Flippers + ) and items.Hookshot and (items.Flippers or items.CanLiftLight() or items.Hammer) or + items.Hammer and items.CanLiftLight() or + items.CanLiftHeavy()) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/South.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/South.py new file mode 100644 index 00000000..f43cb888 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/South.py @@ -0,0 +1,28 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class South(Z3Region): + Name = "Dark World South" + Area = "Dark World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+82, 0x308148, LocationType.Regular, "Digging Game"), + Location(self, 256+83, 0x6B0C7, LocationType.Regular, "Stumpy"), + Location(self, 256+84, 0x1EB1E, LocationType.Regular, "Hype Cave - Top"), + Location(self, 256+85, 0x1EB21, LocationType.Regular, "Hype Cave - Middle Right"), + Location(self, 256+86, 0x1EB24, LocationType.Regular, "Hype Cave - Middle Left"), + Location(self, 256+87, 0x1EB27, LocationType.Regular, "Hype Cave - Bottom"), + Location(self, 256+88, 0x308011, LocationType.Regular, "Hype Cave - NPC") + ] + + def CanEnter(self, items: Progression): + return items.MoonPearl and (( + self.world.CanAquire(items, RewardType.Agahnim) or + items.CanAccessDarkWorldPortal(self.Config) and items.Flippers + ) and (items.Hammer or items.Hookshot and (items.Flippers or items.CanLiftLight())) or + items.Hammer and items.CanLiftLight() or + items.CanLiftHeavy()) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/__init__.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DarkWorld/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/DesertPalace.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/DesertPalace.py new file mode 100644 index 00000000..117f2166 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/DesertPalace.py @@ -0,0 +1,42 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import ItemType, Progression + +class DesertPalace(Z3Region, IReward): + Name = "Desert Palace" + Area = "Desert Palace" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.Null + self.RegionItems = [ ItemType.KeyDP, ItemType.BigKeyDP, ItemType.MapDP, ItemType.CompassDP ] + self.Locations = [ + Location(self, 256+109, 0x1E98F, LocationType.Regular, "Desert Palace - Big Chest", + lambda items: items.BigKeyDP), + Location(self, 256+110, 0x308160, LocationType.Regular, "Desert Palace - Torch", + lambda items: items.Boots), + Location(self, 256+111, 0x1E9B6, LocationType.Regular, "Desert Palace - Map Chest"), + Location(self, 256+112, 0x1E9C2, LocationType.Regular, "Desert Palace - Big Key Chest", + lambda items: items.KeyDP), + Location(self, 256+113, 0x1E9CB, LocationType.Regular, "Desert Palace - Compass Chest", + lambda items: items.KeyDP), + Location(self, 256+114, 0x308151, LocationType.Regular, "Desert Palace - Lanmolas", + lambda items: ( + items.CanLiftLight() or + items.CanAccessMiseryMirePortal(self.Config) and items.Mirror + ) and items.BigKeyDP and items.KeyDP and items.CanLightTorches() and self.CanBeatBoss(items)) + ] + + def CanBeatBoss(self, items: Progression): + return items.Sword or items.Hammer or items.Bow or \ + items.Firerod or items.Icerod or \ + items.Byrna or items.Somaria + + def CanEnter(self, items: Progression): + return items.Book or \ + items.Mirror and items.CanLiftHeavy() and items.Flute or \ + items.CanAccessMiseryMirePortal(self.Config) and items.Mirror + + def CanComplete(self, items: Progression): + return self.GetLocation("Desert Palace - Lanmolas").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/EasternPalace.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/EasternPalace.py new file mode 100644 index 00000000..77ded239 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/EasternPalace.py @@ -0,0 +1,27 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class EasternPalace(Z3Region, IReward): + Name = "Eastern Palace" + Area = "Eastern Palace" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.Null + self.RegionItems = [ ItemType.BigKeyEP, ItemType.MapEP, ItemType.CompassEP ] + self.Locations = [ + Location(self, 256+103, 0x1E9B3, LocationType.Regular, "Eastern Palace - Cannonball Chest"), + Location(self, 256+104, 0x1E9F5, LocationType.Regular, "Eastern Palace - Map Chest"), + Location(self, 256+105, 0x1E977, LocationType.Regular, "Eastern Palace - Compass Chest"), + Location(self, 256+106, 0x1E97D, LocationType.Regular, "Eastern Palace - Big Chest", + lambda items: items.BigKeyEP), + Location(self, 256+107, 0x1E9B9, LocationType.Regular, "Eastern Palace - Big Key Chest", + lambda items: items.Lamp), + Location(self, 256+108, 0x308150, LocationType.Regular, "Eastern Palace - Armos Knights", + lambda items: items.BigKeyEP and items.Bow and items.Lamp) + ] + + def CanComplete(self, items: Progression): + return self.GetLocation("Eastern Palace - Armos Knights").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/GanonsTower.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/GanonsTower.py new file mode 100644 index 00000000..68fbd3b8 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/GanonsTower.py @@ -0,0 +1,146 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config, GameMode, KeyShuffle +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Item, Progression, ItemType + +class GanonsTower(Z3Region): + Name = "Ganon's Tower" + Area = "Ganon's Tower" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Reward = RewardType.Null + self.RegionItems = [ ItemType.KeyGT, ItemType.BigKeyGT, ItemType.MapGT , ItemType.CompassGT] + self.Locations = [ + Location(self, 256+189, 0x308161, LocationType.Regular, "Ganon's Tower - Bob's Torch", + lambda items: items.Boots), + Location(self, 256+190, 0x1EAB8, LocationType.Regular, "Ganon's Tower - DMs Room - Top Left", + lambda items: items.Hammer and items.Hookshot), + Location(self, 256+191, 0x1EABB, LocationType.Regular, "Ganon's Tower - DMs Room - Top Right", + lambda items: items.Hammer and items.Hookshot), + Location(self, 256+192, 0x1EABE, LocationType.Regular, "Ganon's Tower - DMs Room - Bottom Left", + lambda items: items.Hammer and items.Hookshot), + Location(self, 256+193, 0x1EAC1, LocationType.Regular, "Ganon's Tower - DMs Room - Bottom Right", + lambda items: items.Hammer and items.Hookshot), + Location(self, 256+194, 0x1EAD3, LocationType.Regular, "Ganon's Tower - Map Chest", + lambda items: items.Hammer and (items.Hookshot or items.Boots) and items.KeyGT >= + (3 if any(self.GetLocation("Ganon's Tower - Map Chest").ItemIs(type, self.world) for type in [ItemType.BigKeyGT, ItemType.KeyGT]) else 4)) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyGT, self.world) and items.KeyGT >= 3), + Location(self, 256+195, 0x1EAD0, LocationType.Regular, "Ganon's Tower - Firesnake Room", + lambda items: items.Hammer and items.Hookshot and items.KeyGT >= (2 if any(l.ItemIs(ItemType.BigKeyGT, self.world) for l in [ + self.GetLocation("Ganon's Tower - Randomizer Room - Top Right"), + self.GetLocation("Ganon's Tower - Randomizer Room - Top Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Right") + ]) or self.GetLocation("Ganon's Tower - Firesnake Room").ItemIs(ItemType.KeyGT, self.world) else 3)), + Location(self, 256+196, 0x1EAC4, LocationType.Regular, "Ganon's Tower - Randomizer Room - Top Left", + lambda items: self.LeftSide(items, [ + self.GetLocation("Ganon's Tower - Randomizer Room - Top Right"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Right") + ])), + Location(self, 256+197, 0x1EAC7, LocationType.Regular, "Ganon's Tower - Randomizer Room - Top Right", + lambda items: self.LeftSide(items, [ + self.GetLocation("Ganon's Tower - Randomizer Room - Top Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Right") + ])), + Location(self, 256+198, 0x1EACA, LocationType.Regular, "Ganon's Tower - Randomizer Room - Bottom Left", + lambda items: self.LeftSide(items, [ + self.GetLocation("Ganon's Tower - Randomizer Room - Top Right"), + self.GetLocation("Ganon's Tower - Randomizer Room - Top Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Right") + ])), + Location(self, 256+199, 0x1EACD, LocationType.Regular, "Ganon's Tower - Randomizer Room - Bottom Right", + lambda items: self.LeftSide(items, [ + self.GetLocation("Ganon's Tower - Randomizer Room - Top Right"), + self.GetLocation("Ganon's Tower - Randomizer Room - Top Left"), + self.GetLocation("Ganon's Tower - Randomizer Room - Bottom Left") + ])), + Location(self, 256+200, 0x1EAD9, LocationType.Regular, "Ganon's Tower - Hope Room - Left"), + Location(self, 256+201, 0x1EADC, LocationType.Regular, "Ganon's Tower - Hope Room - Right"), + Location(self, 256+202, 0x1EAE2, LocationType.Regular, "Ganon's Tower - Tile Room", + lambda items: items.Somaria), + Location(self, 256+203, 0x1EAE5, LocationType.Regular, "Ganon's Tower - Compass Room - Top Left", + lambda items: self.RightSide(items, [ + self.GetLocation("Ganon's Tower - Compass Room - Top Right"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Left"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Right") + ])), + Location(self, 256+204, 0x1EAE8, LocationType.Regular, "Ganon's Tower - Compass Room - Top Right", + lambda items: self.RightSide(items, [ + self.GetLocation("Ganon's Tower - Compass Room - Top Left"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Left"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Right") + ])), + Location(self, 256+205, 0x1EAEB, LocationType.Regular, "Ganon's Tower - Compass Room - Bottom Left", + lambda items: self.RightSide(items, [ + self.GetLocation("Ganon's Tower - Compass Room - Top Right"), + self.GetLocation("Ganon's Tower - Compass Room - Top Left"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Right") + ])), + Location(self, 256+206, 0x1EAEE, LocationType.Regular, "Ganon's Tower - Compass Room - Bottom Right", + lambda items: self.RightSide(items, [ + self.GetLocation("Ganon's Tower - Compass Room - Top Right"), + self.GetLocation("Ganon's Tower - Compass Room - Top Left"), + self.GetLocation("Ganon's Tower - Compass Room - Bottom Left") + ])), + Location(self, 256+207, 0x1EADF, LocationType.Regular, "Ganon's Tower - Bob's Chest", + lambda items: items.KeyGT >= 3 and ( + items.Hammer and items.Hookshot or + items.Somaria and items.Firerod)), + Location(self, 256+208, 0x1EAD6, LocationType.Regular, "Ganon's Tower - Big Chest", + lambda items: items.BigKeyGT and items.KeyGT >= 3 and ( + items.Hammer and items.Hookshot or + items.Somaria and items.Firerod)) + .Allow(lambda item, items: item.IsNot(ItemType.BigKeyGT, self.world)), + Location(self, 256+209, 0x1EAF1, LocationType.Regular, "Ganon's Tower - Big Key Chest", self.BigKeyRoom), + Location(self, 256+210, 0x1EAF4, LocationType.Regular, "Ganon's Tower - Big Key Room - Left", self.BigKeyRoom), + Location(self, 256+211, 0x1EAF7, LocationType.Regular, "Ganon's Tower - Big Key Room - Right", self.BigKeyRoom), + Location(self, 256+212, 0x1EAFD, LocationType.Regular, "Ganon's Tower - Mini Helmasaur Room - Left", self.TowerAscend) + .Allow(lambda item, items: item.IsNot(ItemType.BigKeyGT, self.world)), + Location(self, 256+213, 0x1EB00, LocationType.Regular, "Ganon's Tower - Mini Helmasaur Room - Right", self.TowerAscend) + .Allow(lambda item, items: item.IsNot(ItemType.BigKeyGT, self.world)), + Location(self, 256+214, 0x1EB03, LocationType.Regular, "Ganon's Tower - Pre-Moldorm Chest", self.TowerAscend) + .Allow(lambda item, items: item.IsNot(ItemType.BigKeyGT, self.world)), + Location(self, 256+215, 0x1EB06, LocationType.Regular, "Ganon's Tower - Moldorm Chest", + lambda items: items.BigKeyGT and items.KeyGT >= 4 and + items.Bow and items.CanLightTorches() and + self.CanBeatMoldorm(items) and items.Hookshot) + .Allow(lambda item, items: all(item.IsNot(type, self.world) for type in [ ItemType.KeyGT, ItemType.BigKeyGT ])) + ] + + def LeftSide(self, items: Progression, locations: List[Location]): + return items.Hammer and items.Hookshot and items.KeyGT >= (3 if any(l.ItemIs(ItemType.BigKeyGT, self.world) for l in locations) else 4) + + def RightSide(self, items: Progression, locations: List[Location]): + return items.Somaria and items.Firerod and items.KeyGT >= (3 if any(l.ItemIs(ItemType.BigKeyGT, self.world) for l in locations) else 4) + + def BigKeyRoom(self, items: Progression): + return items.KeyGT >= 3 and self.CanBeatArmos(items) \ + and (items.Hammer and items.Hookshot or items.Firerod and items.Somaria) + + def TowerAscend(self, items: Progression): + return items.BigKeyGT and items.KeyGT >= 3 and items.Bow and items.CanLightTorches() + + def CanBeatArmos(self, items: Progression): + return items.Sword or items.Hammer or items.Bow or \ + items.CanExtendMagic(2) and (items.Somaria or items.Byrna) or \ + items.CanExtendMagic(4) and (items.Firerod or items.Icerod) + + def CanBeatMoldorm(self, items: Progression): + return items.Sword or items.Hammer + + def CanEnter(self, items: Progression): + return items.MoonPearl and self.world.CanEnter("Dark World Death Mountain East", items) and \ + self.world.CanAquireAll(items, RewardType.CrystalBlue, RewardType.CrystalRed, RewardType.GoldenFourBoss) + + def CanFill(self, item: Item): + if (self.Config.GameMode == GameMode.Multiworld): + if (item.World != self.world or item.Progression): + return False + if (self.Config.KeyShuffle == KeyShuffle.Keysanity and not ((item.Type == ItemType.BigKeyGT or item.Type == ItemType.KeyGT) and item.World == self.world) and (item.IsKey() or item.IsBigKey() or item.IsKeycard())): + return False + return super().CanFill(item) + diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/HyruleCastle.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/HyruleCastle.py new file mode 100644 index 00000000..20a68a3f --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/HyruleCastle.py @@ -0,0 +1,34 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import ItemType + +class HyruleCastle(Z3Region): + Name = "Hyrule Castle" + Area = "Hyrule Castle" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyHC, ItemType.MapHC] + sphereOne = -10 + self.Locations = [ + Location(self, 256+91, 0x1EA79, LocationType.Regular, "Sanctuary").Weighted(sphereOne), + Location(self, 256+92, 0x1EB5D, LocationType.Regular, "Sewers - Secret Room - Left", + lambda items: items.CanLiftLight() or items.Lamp and items.KeyHC), + Location(self, 256+93, 0x1EB60, LocationType.Regular, "Sewers - Secret Room - Middle", + lambda items: items.CanLiftLight() or items.Lamp and items.KeyHC), + Location(self, 256+94, 0x1EB63, LocationType.Regular, "Sewers - Secret Room - Right", + lambda items: items.CanLiftLight() or items.Lamp and items.KeyHC), + Location(self, 256+95, 0x1E96E, LocationType.Regular, "Sewers - Dark Cross", + lambda items: items.Lamp), + Location(self, 256+96, 0x1EB0C, LocationType.Regular, "Hyrule Castle - Map Chest").Weighted(sphereOne), + Location(self, 256+97, 0x1E974, LocationType.Regular, "Hyrule Castle - Boomerang Chest", + lambda items: items.KeyHC).Weighted(sphereOne), + Location(self, 256+98, 0x1EB09, LocationType.Regular, "Hyrule Castle - Zelda's Cell", + lambda items: items.KeyHC).Weighted(sphereOne), + Location(self, 256+99, 0x5DF45, LocationType.NotInDungeon, "Link's Uncle") + .Allow(lambda item, items: self.Config.Keysanity or not item.IsDungeonItem()).Weighted(sphereOne), + Location(self, 256+100, 0x1E971, LocationType.NotInDungeon, "Secret Passage") + .Allow(lambda item, items: self.Config.Keysanity or not item.IsDungeonItem()).Weighted(sphereOne), + ] \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/IcePalace.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/IcePalace.py new file mode 100644 index 00000000..6543017c --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/IcePalace.py @@ -0,0 +1,52 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class IcePalace(Z3Region, IReward): + Name = "Ice Palace" + Area = "Ice Palace" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyIP, ItemType.BigKeyIP, ItemType.MapIP, ItemType.CompassIP] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+161, 0x1E9D4, LocationType.Regular, "Ice Palace - Compass Chest"), + Location(self, 256+162, 0x1E9E0, LocationType.Regular, "Ice Palace - Spike Room", + lambda items: items.Hookshot or items.KeyIP >= 1 and self.CanNotWasteKeysBeforeAccessible(items, [ + self.GetLocation("Ice Palace - Map Chest"), + self.GetLocation("Ice Palace - Big Key Chest") + ])), + Location(self, 256+163, 0x1E9DD, LocationType.Regular, "Ice Palace - Map Chest", + lambda items: items.Hammer and items.CanLiftLight() and ( + items.Hookshot or items.KeyIP >= 1 and self.CanNotWasteKeysBeforeAccessible(items, [ + self.GetLocation("Ice Palace - Spike Room"), + self.GetLocation("Ice Palace - Big Key Chest") + ]) + )), + Location(self, 256+164, 0x1E9A4, LocationType.Regular, "Ice Palace - Big Key Chest", + lambda items: items.Hammer and items.CanLiftLight() and ( + items.Hookshot or items.KeyIP >= 1 and self.CanNotWasteKeysBeforeAccessible(items, [ + self.GetLocation("Ice Palace - Spike Room"), + self.GetLocation("Ice Palace - Map Chest") + ]) + )), + Location(self, 256+165, 0x1E9E3, LocationType.Regular, "Ice Palace - Iced T Room"), + Location(self, 256+166, 0x1E995, LocationType.Regular, "Ice Palace - Freezor Chest"), + Location(self, 256+167, 0x1E9AA, LocationType.Regular, "Ice Palace - Big Chest", + lambda items: items.BigKeyIP), + Location(self, 256+168, 0x308157, LocationType.Regular, "Ice Palace - Kholdstare", + lambda items: items.BigKeyIP and items.Hammer and items.CanLiftLight() and + items.KeyIP >= (1 if items.Somaria else 2)) + ] + + def CanNotWasteKeysBeforeAccessible(self, items: Progression, locations: List[Location]): + return not items.BigKeyIP or any(l.ItemIs(ItemType.BigKeyIP, self.world) for l in locations) + + def CanEnter(self, items: Progression): + return items.MoonPearl and items.Flippers and items.CanLiftHeavy() and items.CanMeltFreezors() + + def CanComplete(self, items: Progression): + return self.GetLocation("Ice Palace - Kholdstare").Available(items) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/East.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/East.py new file mode 100644 index 00000000..10cd333a --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/East.py @@ -0,0 +1,30 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class East(Z3Region): + Name = "Light World Death Mountain East" + Area = "Death Mountain" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+4, 0x308141, LocationType.Regular, "Floating Island", + lambda items: items.Mirror and items.MoonPearl and items.CanLiftHeavy()), + Location(self, 256+5, 0x1E9BF, LocationType.Regular, "Spiral Cave"), + Location(self, 256+6, 0x1EB39, LocationType.Regular, "Paradox Cave Upper - Left"), + Location(self, 256+7, 0x1EB3C, LocationType.Regular, "Paradox Cave Upper - Right"), + Location(self, 256+8, 0x1EB2A, LocationType.Regular, "Paradox Cave Lower - Far Left"), + Location(self, 256+9, 0x1EB2D, LocationType.Regular, "Paradox Cave Lower - Left"), + Location(self, 256+10, 0x1EB36, LocationType.Regular, "Paradox Cave Lower - Middle"), + Location(self, 256+11, 0x1EB30, LocationType.Regular, "Paradox Cave Lower - Right"), + Location(self, 256+12, 0x1EB33, LocationType.Regular, "Paradox Cave Lower - Far Right"), + Location(self, 256+13, 0x1E9C5, LocationType.Regular, "Mimic Cave", + lambda items: items.Mirror and items.KeyTR >= 2 and self.world.CanEnter("Turtle Rock", items)) + ] + + def CanEnter(self, items: Progression): + return self.world.CanEnter("Light World Death Mountain West", items) and ( + items.Hammer and items.Mirror or + items.Hookshot) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/West.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/West.py new file mode 100644 index 00000000..47f20f5e --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/West.py @@ -0,0 +1,23 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression + +class West(Z3Region): + Name = "Light World Death Mountain West" + Area = "Death Mountain" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.Locations = [ + Location(self, 256+0, 0x308016, LocationType.Ether, "Ether Tablet", + lambda items: items.Book and items.MasterSword and (items.Mirror or items.Hammer and items.Hookshot)), + Location(self, 256+1, 0x308140, LocationType.Regular, "Spectacle Rock", + lambda items: items.Mirror), + Location(self, 256+2, 0x308002, LocationType.Regular, "Spectacle Rock Cave"), + Location(self, 256+3, 0x1EE9FA, LocationType.Regular, "Old Man", + lambda items: items.Lamp) + ] + + def CanEnter(self, items: Progression): + return items.Flute or items.CanLiftLight() and items.Lamp or items.CanAccessDeathMountainPortal() diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/__init__.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/DeathMountain/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py new file mode 100644 index 00000000..0edf93f3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthEast.py @@ -0,0 +1,28 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class NorthEast(Z3Region): + Name = "Light World North East" + Area = "Light World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + sphereOne = -10 + self.Locations = [ + Location(self, 256+36, 0x1DE1C3, LocationType.Regular, "King Zora", + lambda items: items.CanLiftLight() or items.Flippers), + Location(self, 256+37, 0x308149, LocationType.Regular, "Zora's Ledge", + lambda items: items.Flippers), + Location(self, 256+254, 0x1E9B0, LocationType.Regular, "Waterfall Fairy - Left", + lambda items: items.Flippers), + Location(self, 256+39, 0x1E9D1, LocationType.Regular, "Waterfall Fairy - Right", + lambda items: items.Flippers), + Location(self, 256+40, 0x308014, LocationType.Regular, "Potion Shop", + lambda items: items.Mushroom), + Location(self, 256+41, 0x1EA82, LocationType.Regular, "Sahasrahla's Hut - Left").Weighted(sphereOne), + Location(self, 256+42, 0x1EA85, LocationType.Regular, "Sahasrahla's Hut - Middle").Weighted(sphereOne), + Location(self, 256+43, 0x1EA88, LocationType.Regular, "Sahasrahla's Hut - Right").Weighted(sphereOne), + Location(self, 256+44, 0x5F1FC, LocationType.Regular, "Sahasrahla", + lambda items: self.world.CanAquire(items, RewardType.PendantGreen)) + ] diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py new file mode 100644 index 00000000..f35cbad3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/NorthWest.py @@ -0,0 +1,44 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class NorthWest(Z3Region): + Name = "Light World North West" + Area = "Light World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + sphereOne = -14 + self.Locations = [ + Location(self, 256+14, 0x589B0, LocationType.Pedestal, "Master Sword Pedestal", + lambda items: self.world.CanAquireAll(items, RewardType.PendantGreen, RewardType.PendantNonGreen)), + Location(self, 256+15, 0x308013, LocationType.Regular, "Mushroom").Weighted(sphereOne), + Location(self, 256+16, 0x308000, LocationType.Regular, "Lost Woods Hideout").Weighted(sphereOne), + Location(self, 256+17, 0x308001, LocationType.Regular, "Lumberjack Tree", + lambda items: self.world.CanAquire(items, RewardType.Agahnim) and items.Boots), + Location(self, 256+18, 0x1EB3F, LocationType.Regular, "Pegasus Rocks", + lambda items: items.Boots), + Location(self, 256+19, 0x308004, LocationType.Regular, "Graveyard Ledge", + lambda items: items.Mirror and items.MoonPearl and self.world.CanEnter("Dark World North West", items)), + Location(self, 256+20, 0x1E97A, LocationType.Regular, "King's Tomb", + lambda items: items.Boots and ( + items.CanLiftHeavy() or + items.Mirror and items.MoonPearl and self.world.CanEnter("Dark World North West", items))), + Location(self, 256+21, 0x1EA8E, LocationType.Regular, "Kakariko Well - Top").Weighted(sphereOne), + Location(self, 256+22, 0x1EA91, LocationType.Regular, "Kakariko Well - Left").Weighted(sphereOne), + Location(self, 256+23, 0x1EA94, LocationType.Regular, "Kakariko Well - Middle").Weighted(sphereOne), + Location(self, 256+24, 0x1EA97, LocationType.Regular, "Kakariko Well - Right").Weighted(sphereOne), + Location(self, 256+25, 0x1EA9A, LocationType.Regular, "Kakariko Well - Bottom").Weighted(sphereOne), + Location(self, 256+26, 0x1EB0F, LocationType.Regular, "Blind's Hideout - Top").Weighted(sphereOne), + Location(self, 256+27, 0x1EB18, LocationType.Regular, "Blind's Hideout - Far Left").Weighted(sphereOne), + Location(self, 256+28, 0x1EB12, LocationType.Regular, "Blind's Hideout - Left").Weighted(sphereOne), + Location(self, 256+29, 0x1EB15, LocationType.Regular, "Blind's Hideout - Right").Weighted(sphereOne), + Location(self, 256+30, 0x1EB1B, LocationType.Regular, "Blind's Hideout - Far Right").Weighted(sphereOne), + Location(self, 256+31, 0x5EB18, LocationType.Regular, "Bottle Merchant").Weighted(sphereOne), + Location(self, 256+250, 0x1E9E9, LocationType.Regular, "Chicken House").Weighted(sphereOne), + Location(self, 256+33, 0x6B9CF, LocationType.Regular, "Sick Kid", + lambda items: items.Bottle), + Location(self, 256+34, 0x1E9CE, LocationType.Regular, "Kakariko Tavern").Weighted(sphereOne), + Location(self, 256+35, 0x308015, LocationType.Regular, "Magic Bat", + lambda items: items.Powder and (items.Hammer or items.MoonPearl and items.Mirror and items.CanLiftHeavy())) + ] diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py new file mode 100644 index 00000000..50f5cee7 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/South.py @@ -0,0 +1,45 @@ +from worlds.smz3.TotalSMZ3.Region import Z3Region +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType + +class South(Z3Region): + Name = "Light World South" + Area = "Light World" + + def __init__(self, world, config: Config): + super().__init__(world, config) + sphereOne = -10 + self.Locations = [ + Location(self, 256+45, 0x308142, LocationType.Regular, "Maze Race").Weighted(sphereOne), + Location(self, 256+240, 0x308012, LocationType.Regular, "Library", + lambda items: items.Boots), + Location(self, 256+241, 0x30814A, LocationType.Regular, "Flute Spot", + lambda items: items.Shovel), + Location(self, 256+242, 0x308003, LocationType.Regular, "South of Grove", + lambda items: items.Mirror and self.world.CanEnter("Dark World South", items)), + Location(self, 256+243, 0x1E9BC, LocationType.Regular, "Link's House").Weighted(sphereOne), + Location(self, 256+244, 0x1E9F2, LocationType.Regular, "Aginah's Cave").Weighted(sphereOne), + Location(self, 256+51, 0x1EB42, LocationType.Regular, "Mini Moldorm Cave - Far Left").Weighted(sphereOne), + Location(self, 256+52, 0x1EB45, LocationType.Regular, "Mini Moldorm Cave - Left").Weighted(sphereOne), + Location(self, 256+53, 0x308010, LocationType.Regular, "Mini Moldorm Cave - NPC").Weighted(sphereOne), + Location(self, 256+54, 0x1EB48, LocationType.Regular, "Mini Moldorm Cave - Right").Weighted(sphereOne), + Location(self, 256+251, 0x1EB4B, LocationType.Regular, "Mini Moldorm Cave - Far Right").Weighted(sphereOne), + Location(self, 256+252, 0x308143, LocationType.Regular, "Desert Ledge", + lambda items: self.world.CanEnter("Desert Palace", items)), + Location(self, 256+253, 0x308005, LocationType.Regular, "Checkerboard Cave", + lambda items: items.Mirror and ( + items.Flute and items.CanLiftHeavy() or + items.CanAccessMiseryMirePortal(Config) + ) and items.CanLiftLight()), + Location(self, 256+58, 0x308017, LocationType.Bombos, "Bombos Tablet", + lambda items: items.Book and items.MasterSword and items.Mirror and self.world.CanEnter("Dark World South", items)), + Location(self, 256+59, 0x1E98C, LocationType.Regular, "Floodgate Chest").Weighted(sphereOne), + Location(self, 256+60, 0x308145, LocationType.Regular, "Sunken Treasure").Weighted(sphereOne), + Location(self, 256+61, 0x308144, LocationType.Regular, "Lake Hylia Island", + lambda items: items.Flippers and items.MoonPearl and items.Mirror and ( + self.world.CanEnter("Dark World South", items) or + self.world.CanEnter("Dark World North East", items))), + Location(self, 256+62, 0x6BE7D, LocationType.Regular, "Hobo", + lambda items: items.Flippers), + Location(self, 256+63, 0x1EB4E, LocationType.Regular, "Ice Rod Cave").Weighted(sphereOne) + ] \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/__init__.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/LightWorld/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/MiseryMire.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/MiseryMire.py new file mode 100644 index 00000000..855c326f --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/MiseryMire.py @@ -0,0 +1,43 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward, IMedallionAccess +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class MiseryMire(Z3Region, IReward, IMedallionAccess): + Name = "Misery Mire" + Area = "Misery Mire" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyMM, ItemType.BigKeyMM, ItemType.MapMM, ItemType.CompassMM] + self.Reward = RewardType.Null + self.Medallion = ItemType.Nothing + self.Locations = [ + Location(self, 256+169, 0x1EA5E, LocationType.Regular, "Misery Mire - Main Lobby", + lambda items: items.BigKeyMM or items.KeyMM >= 1), + Location(self, 256+170, 0x1EA6A, LocationType.Regular, "Misery Mire - Map Chest", + lambda items: items.BigKeyMM or items.KeyMM >= 1), + Location(self, 256+171, 0x1EA61, LocationType.Regular, "Misery Mire - Bridge Chest"), + Location(self, 256+172, 0x1E9DA, LocationType.Regular, "Misery Mire - Spike Chest"), + Location(self, 256+173, 0x1EA64, LocationType.Regular, "Misery Mire - Compass Chest", + lambda items: items.CanLightTorches() and + items.KeyMM >= (2 if self.GetLocation("Misery Mire - Big Key Chest").ItemIs(ItemType.BigKeyMM, self.world) else 3)), + Location(self, 256+174, 0x1EA6D, LocationType.Regular, "Misery Mire - Big Key Chest", + lambda items: items.CanLightTorches() and + items.KeyMM >= (2 if self.GetLocation("Misery Mire - Compass Chest").ItemIs(ItemType.BigKeyMM, self.world) else 3)), + Location(self, 256+175, 0x1EA67, LocationType.Regular, "Misery Mire - Big Chest", + lambda items: items.BigKeyMM), + Location(self, 256+176, 0x308158, LocationType.Regular, "Misery Mire - Vitreous", + lambda items: items.BigKeyMM and items.Lamp and items.Somaria) + ] + + # // Need "CanKillManyEnemies" if implementing swordless + def CanEnter(self, items: Progression): + return (items.Bombos if self.Medallion == ItemType.Bombos else ( + items.Ether if self.Medallion == ItemType.Ether else items.Quake)) and items.Sword and \ + items.MoonPearl and (items.Boots or items.Hookshot) and \ + self.world.CanEnter("Dark World Mire", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Misery Mire - Vitreous").Available(items) \ No newline at end of file diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/PalaceOfDarkness.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/PalaceOfDarkness.py new file mode 100644 index 00000000..e83126c5 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/PalaceOfDarkness.py @@ -0,0 +1,54 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class PalaceOfDarkness(Z3Region, IReward): + Name = "Palace of Darkness" + Area = "Dark Palace" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyPD, ItemType.BigKeyPD, ItemType.MapPD, ItemType.CompassPD] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+121, 0x1EA5B, LocationType.Regular, "Palace of Darkness - Shooter Room"), + Location(self, 256+122, 0x1EA37, LocationType.Regular, "Palace of Darkness - Big Key Chest", + lambda items: items.KeyPD >= (1 if self.GetLocation("Palace of Darkness - Big Key Chest").ItemIs(ItemType.KeyPD, self.world) else + 6 if (items.Hammer and items.Bow and items.Lamp) or config.Keysanity else 5)) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyPD, self.world) and items.KeyPD >= 5), + Location(self, 256+123, 0x1EA49, LocationType.Regular, "Palace of Darkness - Stalfos Basement", + lambda items: items.KeyPD >= 1 or items.Bow and items.Hammer), + Location(self, 256+124, 0x1EA3D, LocationType.Regular, "Palace of Darkness - The Arena - Bridge", + lambda items: items.KeyPD >= 1 or items.Bow and items.Hammer), + Location(self, 256+125, 0x1EA3A, LocationType.Regular, "Palace of Darkness - The Arena - Ledge", + lambda items: items.Bow), + Location(self, 256+126, 0x1EA52, LocationType.Regular, "Palace of Darkness - Map Chest", + lambda items: items.Bow), + Location(self, 256+127, 0x1EA43, LocationType.Regular, "Palace of Darkness - Compass Chest", + lambda items: items.KeyPD >= (4 if (items.Hammer and items.Bow and items.Lamp) or config.Keysanity else 3)), + Location(self, 256+128, 0x1EA46, LocationType.Regular, "Palace of Darkness - Harmless Hellway", + lambda items: items.KeyPD >= (4 if (items.Hammer and items.Bow and items.Lamp) or config.Keysanity else 3 if + self.GetLocation("Palace of Darkness - Harmless Hellway").ItemIs(ItemType.KeyPD, self.world) else + 6 if (items.Hammer and items.Bow and items.Lamp) or config.Keysanity else 5)) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyPD, self.world) and items.KeyPD >= 5), + Location(self, 256+129, 0x1EA4C, LocationType.Regular, "Palace of Darkness - Dark Basement - Left", + lambda items: items.Lamp and items.KeyPD >= (4 if (items.Hammer and items.Bow) or config.Keysanity else 3)), + Location(self, 256+130, 0x1EA4F, LocationType.Regular, "Palace of Darkness - Dark Basement - Right", + lambda items: items.Lamp and items.KeyPD >= (4 if (items.Hammer and items.Bow) or config.Keysanity else 3)), + Location(self, 256+131, 0x1EA55, LocationType.Regular, "Palace of Darkness - Dark Maze - Top", + lambda items: items.Lamp and items.KeyPD >= (6 if (items.Hammer and items.Bow) or config.Keysanity else 5)), + Location(self, 256+132, 0x1EA58, LocationType.Regular, "Palace of Darkness - Dark Maze - Bottom", + lambda items: items.Lamp and items.KeyPD >= (6 if(items.Hammer and items.Bow) or config.Keysanity else 5)), + Location(self, 256+133, 0x1EA40, LocationType.Regular, "Palace of Darkness - Big Chest", + lambda items: items.BigKeyPD and items.Lamp and items.KeyPD >= (6 if (items.Hammer and items.Bow) or config.Keysanity else 5)), + Location(self, 256+134, 0x308153, LocationType.Regular, "Palace of Darkness - Helmasaur King", + lambda items: items.Lamp and items.Hammer and items.Bow and items.BigKeyPD and items.KeyPD >= 6), + ] + + def CanEnter(self, items: Progression): + return items.MoonPearl and self.world.CanEnter("Dark World North East", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Palace of Darkness - Helmasaur King").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/SkullWoods.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/SkullWoods.py new file mode 100644 index 00000000..f991fce3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/SkullWoods.py @@ -0,0 +1,35 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class SkullWoods(Z3Region, IReward): + Name = "Skull Woods" + Area = "Skull Woods" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeySW, ItemType.BigKeySW, ItemType.MapSW, ItemType.CompassSW] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+145, 0x1E9A1, LocationType.Regular, "Skull Woods - Pot Prison"), + Location(self, 256+146, 0x1E992, LocationType.Regular, "Skull Woods - Compass Chest"), + Location(self, 256+147, 0x1E998, LocationType.Regular, "Skull Woods - Big Chest", + lambda items: items.BigKeySW) + .AlwaysAllow(lambda item, items: item.Is(ItemType.BigKeySW, self.world)), + Location(self, 256+148, 0x1E99B, LocationType.Regular, "Skull Woods - Map Chest"), + Location(self, 256+149, 0x1E9C8, LocationType.Regular, "Skull Woods - Pinball Room") + .Allow(lambda item, items: item.Is(ItemType.KeySW, self.world)), + Location(self, 256+150, 0x1E99E, LocationType.Regular, "Skull Woods - Big Key Chest"), + Location(self, 256+151, 0x1E9FE, LocationType.Regular, "Skull Woods - Bridge Room", + lambda items: items.Firerod), + Location(self, 256+152, 0x308155, LocationType.Regular, "Skull Woods - Mothula", + lambda items: items.Firerod and items.Sword and items.KeySW >= 3), + ] + + def CanEnter(self, items: Progression): + return items.MoonPearl and self.world.CanEnter("Dark World North West", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Skull Woods - Mothula").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/SwampPalace.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/SwampPalace.py new file mode 100644 index 00000000..1805e74d --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/SwampPalace.py @@ -0,0 +1,43 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class SwampPalace(Z3Region, IReward): + Name = "Swamp Palace" + Area = "Swamp Palace" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeySP, ItemType.BigKeySP, ItemType.MapSP, ItemType.CompassSP] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+135, 0x1EA9D, LocationType.Regular, "Swamp Palace - Entrance") + .Allow(lambda item, items: self.Config.Keysanity or item.Is(ItemType.KeySP, self.world)), + Location(self, 256+136, 0x1E986, LocationType.Regular, "Swamp Palace - Map Chest", + lambda items: items.KeySP), + Location(self, 256+137, 0x1E989, LocationType.Regular, "Swamp Palace - Big Chest", + lambda items: items.BigKeySP and items.KeySP and items.Hammer) + .AlwaysAllow(lambda item, items: item.Is(ItemType.BigKeySP, self.world)), + Location(self, 256+138, 0x1EAA0, LocationType.Regular, "Swamp Palace - Compass Chest", + lambda items: items.KeySP and items.Hammer), + Location(self, 256+139, 0x1EAA3, LocationType.Regular, "Swamp Palace - West Chest", + lambda items: items.KeySP and items.Hammer), + Location(self, 256+140, 0x1EAA6, LocationType.Regular, "Swamp Palace - Big Key Chest", + lambda items: items.KeySP and items.Hammer), + Location(self, 256+141, 0x1EAA9, LocationType.Regular, "Swamp Palace - Flooded Room - Left", + lambda items: items.KeySP and items.Hammer and items.Hookshot), + Location(self, 256+142, 0x1EAAC, LocationType.Regular, "Swamp Palace - Flooded Room - Right", + lambda items: items.KeySP and items.Hammer and items.Hookshot), + Location(self, 256+143, 0x1EAAF, LocationType.Regular, "Swamp Palace - Waterfall Room", + lambda items: items.KeySP and items.Hammer and items.Hookshot), + Location(self, 256+144, 0x308154, LocationType.Regular, "Swamp Palace - Arrghus", + lambda items: items.KeySP and items.Hammer and items.Hookshot) + ] + + def CanEnter(self, items: Progression): + return items.MoonPearl and items.Mirror and items.Flippers and self.world.CanEnter("Dark World South", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Swamp Palace - Arrghus").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/ThievesTown.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/ThievesTown.py new file mode 100644 index 00000000..ef68b953 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/ThievesTown.py @@ -0,0 +1,39 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class ThievesTown(Z3Region, IReward): + Name = "Thieves' Town" + Area = "Thieves' Town" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyTT, ItemType.BigKeyTT, ItemType.MapTT, ItemType.CompassTT] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+153, 0x1EA01, LocationType.Regular, "Thieves' Town - Map Chest"), + Location(self, 256+154, 0x1EA0A, LocationType.Regular, "Thieves' Town - Ambush Chest"), + Location(self, 256+155, 0x1EA07, LocationType.Regular, "Thieves' Town - Compass Chest"), + Location(self, 256+156, 0x1EA04, LocationType.Regular, "Thieves' Town - Big Key Chest"), + Location(self, 256+157, 0x1EA0D, LocationType.Regular, "Thieves' Town - Attic", + lambda items: items.BigKeyTT and items.KeyTT), + Location(self, 256+158, 0x1EA13, LocationType.Regular, "Thieves' Town - Blind's Cell", + lambda items: items.BigKeyTT), + Location(self, 256+159, 0x1EA10, LocationType.Regular, "Thieves' Town - Big Chest", + lambda items: items.BigKeyTT and items.Hammer and + (self.GetLocation("Thieves' Town - Big Chest").ItemIs(ItemType.KeyTT, self.world) or items.KeyTT)) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyTT, self.world) and items.Hammer), + Location(self, 256+160, 0x308156, LocationType.Regular, "Thieves' Town - Blind", + lambda items: items.BigKeyTT and items.KeyTT and self.CanBeatBoss(items)), + ] + + def CanBeatBoss(self, items: Progression): + return items.Sword or items.Hammer or items.Somaria or items.Byrna + + def CanEnter(self, items: Progression): + return items.MoonPearl and self.world.CanEnter("Dark World North West", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Thieves' Town - Blind").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/TowerOfHera.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/TowerOfHera.py new file mode 100644 index 00000000..45743ac3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/TowerOfHera.py @@ -0,0 +1,36 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class TowerOfHera(Z3Region, IReward): + Name = "Tower of Hera" + Area = "Tower of Hera" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyTH, ItemType.BigKeyTH, ItemType.MapTH, ItemType.CompassTH] + self.Reward = RewardType.Null + self.Locations = [ + Location(self, 256+115, 0x308162, LocationType.HeraStandingKey, "Tower of Hera - Basement Cage"), + Location(self, 256+116, 0x1E9AD, LocationType.Regular, "Tower of Hera - Map Chest"), + Location(self, 256+117, 0x1E9E6, LocationType.Regular, "Tower of Hera - Big Key Chest", + lambda items: items.KeyTH and items.CanLightTorches()) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyTH, self.world)), + Location(self, 256+118, 0x1E9FB, LocationType.Regular, "Tower of Hera - Compass Chest", + lambda items: items.BigKeyTH), + Location(self, 256+119, 0x1E9F8, LocationType.Regular, "Tower of Hera - Big Chest", + lambda items: items.BigKeyTH), + Location(self, 256+120, 0x308152, LocationType.Regular, "Tower of Hera - Moldorm", + lambda items: items.BigKeyTH and self.CanBeatBoss(items)), + ] + + def CanBeatBoss(self, items: Progression): + return items.Sword or items.Hammer + + def CanEnter(self, items: Progression): + return (items.Mirror or items.Hookshot and items.Hammer) and self.world.CanEnter("Light World Death Mountain West", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Tower of Hera - Moldorm").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/TurtleRock.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/TurtleRock.py new file mode 100644 index 00000000..c4d19bcd --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Regions/Zelda/TurtleRock.py @@ -0,0 +1,55 @@ +from typing import List +from worlds.smz3.TotalSMZ3.Region import Z3Region, RewardType, IReward, IMedallionAccess +from worlds.smz3.TotalSMZ3.Config import Config +from worlds.smz3.TotalSMZ3.Location import Location, LocationType +from worlds.smz3.TotalSMZ3.Item import Progression, ItemType + +class TurtleRock(Z3Region, IReward, IMedallionAccess): + Name = "Turtle Rock" + Area = "Turtle Rock" + + def __init__(self, world, config: Config): + super().__init__(world, config) + self.RegionItems = [ ItemType.KeyTR, ItemType.BigKeyTR, ItemType.MapTR, ItemType.CompassTR] + self.Reward = RewardType.Null + self.Medallion = ItemType.Nothing + self.Locations = [ + Location(self, 256+177, 0x1EA22, LocationType.Regular, "Turtle Rock - Compass Chest"), + Location(self, 256+178, 0x1EA1C, LocationType.Regular, "Turtle Rock - Roller Room - Left", + lambda items: items.Firerod), + Location(self, 256+179, 0x1EA1F, LocationType.Regular, "Turtle Rock - Roller Room - Right", + lambda items: items.Firerod), + Location(self, 256+180, 0x1EA16, LocationType.Regular, "Turtle Rock - Chain Chomps", + lambda items: items.KeyTR >= 1), + Location(self, 256+181, 0x1EA25, LocationType.Regular, "Turtle Rock - Big Key Chest", + lambda items: items.KeyTR >= + (2 if not self.Config.Keysanity or self.GetLocation("Turtle Rock - Big Key Chest").ItemIs(ItemType.BigKeyTR, self.world) else + 3 if self.GetLocation("Turtle Rock - Big Key Chest").ItemIs(ItemType.KeyTR, self.world) else 4)) + .AlwaysAllow(lambda item, items: item.Is(ItemType.KeyTR, self.world) and items.KeyTR >= 3), + Location(self, 256+182, 0x1EA19, LocationType.Regular, "Turtle Rock - Big Chest", + lambda items: items.BigKeyTR and items.KeyTR >= 2) + .Allow(lambda item, items: item.IsNot(ItemType.BigKeyTR, self.world)), + Location(self, 256+183, 0x1EA34, LocationType.Regular, "Turtle Rock - Crystaroller Room", + lambda items: items.BigKeyTR and items.KeyTR >= 2), + Location(self, 256+184, 0x1EA28, LocationType.Regular, "Turtle Rock - Eye Bridge - Top Right", self.LaserBridge), + Location(self, 256+185, 0x1EA2B, LocationType.Regular, "Turtle Rock - Eye Bridge - Top Left", self.LaserBridge), + Location(self, 256+186, 0x1EA2E, LocationType.Regular, "Turtle Rock - Eye Bridge - Bottom Right", self.LaserBridge), + Location(self, 256+187, 0x1EA31, LocationType.Regular, "Turtle Rock - Eye Bridge - Bottom Left", self.LaserBridge), + Location(self, 256+188, 0x308159, LocationType.Regular, "Turtle Rock - Trinexx", + lambda items: items.BigKeyTR and items.KeyTR >= 4 and items.Lamp and self.CanBeatBoss(items)), + ] + + def LaserBridge(self, items: Progression): + return items.BigKeyTR and items.KeyTR >= 3 and items.Lamp and (items.Cape or items.Byrna or items.CanBlockLasers) + + def CanBeatBoss(self, items: Progression): + return items.Firerod and items.Icerod + + def CanEnter(self, items: Progression): + return (items.Bombos if self.Medallion == ItemType.Bombos else ( + items.Ether if self.Medallion == ItemType.Ether else items.Quake)) and items.Sword and \ + items.MoonPearl and items.CanLiftHeavy() and items.Hammer and items.Somaria and \ + self.world.CanEnter("Light World Death Mountain East", items) + + def CanComplete(self, items: Progression): + return self.GetLocation("Turtle Rock - Trinexx").Available(items) diff --git a/worlds/smz3/TotalSMZ3/Regions/Zelda/__init__.py b/worlds/smz3/TotalSMZ3/Regions/Zelda/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Regions/__init__.py b/worlds/smz3/TotalSMZ3/Regions/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/Text/Dialog.py b/worlds/smz3/TotalSMZ3/Text/Dialog.py new file mode 100644 index 00000000..d465e1e2 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Dialog.py @@ -0,0 +1,323 @@ +import re + +class Dialog: + + command = re.compile(r"^\{[^}]*\}") + invalid = re.compile(r"(?<!^)\{[^}]*\}(?!$)", re.MULTILINE) + digit = re.compile(r"\d") + uppercaseLetter = re.compile(r"[A-Z]") + lowercaseLetter = re.compile(r"[a-z]") + + @staticmethod + def Simple(text: str): + maxBytes = 256 + wrap = 19 + + bytes = [] + lines = text.split('\n') + lineIndex = 0 + for line in lines: + bytes.append(0x74 if 0 else 0x75 if 1 else 0x76) + letters = line[:wrap] if len(line) > wrap else line + for letter in letters: + write = Dialog.LetterToBytes(letter) + if (write[0] == 0xFD): + bytes += write + else: + for b in write: + bytes += [ 0x00, b ] + + lineIndex += 1 + + if (lineIndex % 3 == 0 and lineIndex < len(lines)): + bytes.append(0x7E) + if (lineIndex >= 3 and lineIndex < len(lines)): + bytes.append(0x73) + + bytes.append(0x7F) + if (len(bytes) > maxBytes): + return bytes[:maxBytes - 1].append(0x7F) + + return bytes + + @staticmethod + def Compiled(text: str, pause = True): + maxBytes = 2046 + wrap = 19 + + if (Dialog.invalid.match(text)): + raise Exception("Dialog commands must be placed on separate lines", text) + + padOut = False + + bytes = [ 0xFB ] + lines = Dialog.Wordwrap(text, wrap) + lineCount = len([l for l in lines if not Dialog.command.match(l)]) + lineIndex = 0 + for line in lines: + match = Dialog.command.match(line) + if (match is not None): + if (match.string == "{NOTEXT}"): + return [ 0xFB, 0xFE, 0x6E, 0x00, 0xFE, 0x6B, 0x04 ] + if (match.string == "{INTRO}"): + padOut = True + + bytesMap = { + "{SPEED0}" : [ 0xFC, 0x00 ], + "{SPEED2}" : [ 0xFC, 0x02 ], + "{SPEED6}" : [ 0xFC, 0x06 ], + "{PAUSE1}" : [ 0xFE, 0x78, 0x01 ], + "{PAUSE3}" : [ 0xFE, 0x78, 0x03 ], + "{PAUSE5}" : [ 0xFE, 0x78, 0x05 ], + "{PAUSE7}" : [ 0xFE, 0x78, 0x07 ], + "{PAUSE9}" : [ 0xFE, 0x78, 0x09 ], + "{INPUT}" : [ 0xFA ], + "{CHOICE}" : [ 0xFE, 0x68 ], + "{ITEMSELECT}" : [ 0xFE, 0x69 ], + "{CHOICE2}" : [ 0xFE, 0x71 ], + "{CHOICE3}" : [ 0xFE, 0x72 ], + "{C:GREEN}" : [ 0xFE, 0x77, 0x07 ], + "{C:YELLOW}" : [ 0xFE, 0x77, 0x02 ], + "{HARP}" : [ 0xFE, 0x79, 0x2D ], + "{MENU}" : [ 0xFE, 0x6D, 0x00 ], + "{BOTTOM}" : [ 0xFE, 0x6D, 0x01 ], + "{NOBORDER}" : [ 0xFE, 0x6B, 0x02 ], + "{CHANGEPIC}" : [ 0xFE, 0x67, 0xFE, 0x67 ], + "{CHANGEMUSIC}" : [ 0xFE, 0x67 ], + "{INTRO}" : [ 0xFE, 0x6E, 0x00, 0xFE, 0x77, 0x07, 0xFC, 0x03, 0xFE, 0x6B, 0x02, 0xFE, 0x67 ], + "{IBOX}" : [ 0xFE, 0x6B, 0x02, 0xFE, 0x77, 0x07, 0xFC, 0x03, 0xF7 ], + } + result = bytesMap.get(match.string, None) + if (result is None): + raise Exception(f"Dialog text contained unknown command {match.string}", text) + else: + bytes += result + + if (len(bytes) > maxBytes): + raise Exception("Command overflowed maximum byte length", text) + + continue + + if (lineIndex == 1): + bytes.append(0xF8); #// row 2 + elif (lineIndex >= 3 and lineIndex < lineCount): + bytes.append(0xF6); #// scroll + elif (lineIndex >= 2): + bytes.append(0xF9); #// row 3 + + #// The first box needs to fill the full width with spaces as the palette is loaded weird. + letters = line + (" " * wrap) if padOut and lineIndex < 3 else line + for letter in letters: + bytes += Dialog.LetterToBytes(letter) + + lineIndex += 1 + + if (pause and lineIndex % 3 == 0 and lineIndex < lineCount): + bytes.append(0xFA) #// wait for input + + return bytes[:maxBytes] + + @staticmethod + def Wordwrap(text: str, width: int): + result = [] + for line in text.split('\n'): + line = line.rstrip() + if (len(line) <= width): + result.append(line) + else: + words = line.split(' ') + lines = [ "" ] + for word in words: + line = lines.pop() + if (len(line) + len(word) <= width): + line = f"{line}{word} " + else: + if (len(line) > 0): + lines.append(line) + line = word + while (len(line) > width): + lines.append(line[:width]) + line = line[width:] + line = f"{line} " + lines.append(line) + #lines.reverse() + result += [l.strip() for l in lines] + return result + + @staticmethod + def LetterToBytes(c: str): + if Dialog.digit.match(c): return [(ord(c) - ord('0') + 0xA0) ] + elif Dialog.uppercaseLetter.match(c): return [ (ord(c) - ord('A') + 0xAA) ] + elif Dialog.lowercaseLetter.match(c): return [ (ord(c) - ord('a') + 0x30) ] + else: + value = Dialog.letters.get(c, None) + return value if value else [ 0xFF ] + + #region letter bytes lookup + + letters = { + ' ' : [ 0x4F ], + '?' : [ 0xC6 ], + '!' : [ 0xC7 ], + ',' : [ 0xC8 ], + '-' : [ 0xC9 ], + '…' : [ 0xCC ], + '.' : [ 0xCD ], + '~' : [ 0xCE ], + '~' : [ 0xCE ], + '\'' : [ 0xD8 ], + '’' : [ 0xD8 ], + '"' : [ 0xD8 ], + ':' : [ 0x4A ], + '@' : [ 0x4B ], + '#' : [ 0x4C ], + '¤' : [ 0x4D, 0x4E ], #// Morphing ball + '_' : [ 0xFF ], #// Full width space + '£' : [ 0xFE, 0x6A ], #// link's name compressed + '>' : [ 0xD2, 0xD3 ], #// link face + '%' : [ 0xDD ], #// Hylian Bird + '^' : [ 0xDE ], #// Hylian Ankh + '=' : [ 0xDF ], #// Hylian Wavy lines + '↑' : [ 0xE0 ], + '↓' : [ 0xE1 ], + '→' : [ 0xE2 ], + '←' : [ 0xE3 ], + '≥' : [ 0xE4 ], #// cursor + '¼' : [ 0xE5, 0xE7 ], #// 1/4 heart + '½' : [ 0xE6, 0xE7 ], #// 1/2 heart + '¾' : [ 0xE8, 0xE9 ], #// 3/4 heart + '♥' : [ 0xEA, 0xEB ], #// full heart + 'ᚋ' : [ 0xFE, 0x6C, 0x00 ], #// var 0 + 'ᚌ' : [ 0xFE, 0x6C, 0x01 ], #// var 1 + 'ᚍ' : [ 0xFE, 0x6C, 0x02 ], #// var 2 + 'ᚎ' : [ 0xFE, 0x6C, 0x03 ], #// var 3 + + 'あ' : [ 0x00 ], + 'い' : [ 0x01 ], + 'う' : [ 0x02 ], + 'え' : [ 0x03 ], + 'お' : [ 0x04 ], + 'や' : [ 0x05 ], + 'ゆ' : [ 0x06 ], + 'よ' : [ 0x07 ], + 'か' : [ 0x08 ], + 'き' : [ 0x09 ], + 'く' : [ 0x0A ], + 'け' : [ 0x0B ], + 'こ' : [ 0x0C ], + 'わ' : [ 0x0D ], + 'を' : [ 0x0E ], + 'ん' : [ 0x0F ], + 'さ' : [ 0x10 ], + 'し' : [ 0x11 ], + 'す' : [ 0x12 ], + 'せ' : [ 0x13 ], + 'そ' : [ 0x14 ], + 'が' : [ 0x15 ], + 'ぎ' : [ 0x16 ], + 'ぐ' : [ 0x17 ], + 'た' : [ 0x18 ], + 'ち' : [ 0x19 ], + 'つ' : [ 0x1A ], + 'て' : [ 0x1B ], + 'と' : [ 0x1C ], + 'げ' : [ 0x1D ], + 'ご' : [ 0x1E ], + 'ざ' : [ 0x1F ], + 'な' : [ 0x20 ], + 'に' : [ 0x21 ], + 'ぬ' : [ 0x22 ], + 'ね' : [ 0x23 ], + 'の' : [ 0x24 ], + 'じ' : [ 0x25 ], + 'ず' : [ 0x26 ], + 'ぜ' : [ 0x27 ], + 'は' : [ 0x28 ], + 'ひ' : [ 0x29 ], + 'ふ' : [ 0x2A ], + 'へ' : [ 0x2B ], + 'ほ' : [ 0x2C ], + 'ぞ' : [ 0x2D ], + 'だ' : [ 0x2E ], + 'ぢ' : [ 0x2F ], + + 'ア' : [ 0x50 ], + 'イ' : [ 0x51 ], + 'ウ' : [ 0x52 ], + 'エ' : [ 0x53 ], + 'オ' : [ 0x54 ], + 'ヤ' : [ 0x55 ], + 'ユ' : [ 0x56 ], + 'ヨ' : [ 0x57 ], + 'カ' : [ 0x58 ], + 'キ' : [ 0x59 ], + 'ク' : [ 0x5A ], + 'ケ' : [ 0x5B ], + 'コ' : [ 0x5C ], + 'ワ' : [ 0x5D ], + 'ヲ' : [ 0x5E ], + 'ン' : [ 0x5F ], + 'サ' : [ 0x60 ], + 'シ' : [ 0x61 ], + 'ス' : [ 0x62 ], + 'セ' : [ 0x63 ], + 'ソ' : [ 0x64 ], + 'ガ' : [ 0x65 ], + 'ギ' : [ 0x66 ], + 'グ' : [ 0x67 ], + 'タ' : [ 0x68 ], + 'チ' : [ 0x69 ], + 'ツ' : [ 0x6A ], + 'テ' : [ 0x6B ], + 'ト' : [ 0x6C ], + 'ゲ' : [ 0x6D ], + 'ゴ' : [ 0x6E ], + 'ザ' : [ 0x6F ], + 'ナ' : [ 0x70 ], + 'ニ' : [ 0x71 ], + 'ヌ' : [ 0x72 ], + 'ネ' : [ 0x73 ], + 'ノ' : [ 0x74 ], + 'ジ' : [ 0x75 ], + 'ズ' : [ 0x76 ], + 'ゼ' : [ 0x77 ], + 'ハ' : [ 0x78 ], + 'ヒ' : [ 0x79 ], + 'フ' : [ 0x7A ], + 'ヘ' : [ 0x7B ], + 'ホ' : [ 0x7C ], + 'ゾ' : [ 0x7D ], + 'ダ' : [ 0x7E ], + 'マ' : [ 0x80 ], + 'ミ' : [ 0x81 ], + 'ム' : [ 0x82 ], + 'メ' : [ 0x83 ], + 'モ' : [ 0x84 ], + 'ヅ' : [ 0x85 ], + 'デ' : [ 0x86 ], + 'ド' : [ 0x87 ], + 'ラ' : [ 0x88 ], + 'リ' : [ 0x89 ], + 'ル' : [ 0x8A ], + 'レ' : [ 0x8B ], + 'ロ' : [ 0x8C ], + 'バ' : [ 0x8D ], + 'ビ' : [ 0x8E ], + 'ブ' : [ 0x8F ], + 'ベ' : [ 0x90 ], + 'ボ' : [ 0x91 ], + 'パ' : [ 0x92 ], + 'ピ' : [ 0x93 ], + 'プ' : [ 0x94 ], + 'ペ' : [ 0x95 ], + 'ポ' : [ 0x96 ], + 'ャ' : [ 0x97 ], + 'ュ' : [ 0x98 ], + 'ョ' : [ 0x99 ], + 'ッ' : [ 0x9A ], + 'ァ' : [ 0x9B ], + 'ィ' : [ 0x9C ], + 'ゥ' : [ 0x9D ], + 'ェ' : [ 0x9E ], + 'ォ' : [ 0x9F ], + } diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/Blind.txt b/worlds/smz3/TotalSMZ3/Text/Scripts/Blind.txt new file mode 100644 index 00000000..5b1407eb --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/Blind.txt @@ -0,0 +1,87 @@ +I hate insect +puns, they +really bug me. +--- +I haven't seen +the eye doctor +in years. +--- +I don't see +you having a +bright future +--- +Are you doing +a blind run +of this game? +--- +Pizza joke? No +I think it's a +bit too cheesy +--- +A novice skier +often jumps to +contusions. +--- +The beach? +I'm not shore +I can make it. +--- +Rental agents +offer quarters +for dollars. +--- +I got my tires +fixed for a +flat rate. +--- +New lightbulb +invented? +Enlighten me. +--- +A baker's job +is a piece of +cake. +--- +My optometrist +said I have +vision! +--- +When you're a +baker, don't +loaf around +--- +Mire requires +ether quake, +or bombos +--- +Broken pencils +are pointless. +--- +The food they +serve guards +lasts sentries +--- +Being crushed +by big objects +is depressing. +--- +A tap dancer's +routine runs +hot and cold. +--- +A weeknight +is a tiny +nobleman +--- +The chimney +sweep wore a +soot and tye. +--- +Gardeners like +to spring into +action. +--- +Bad at nuclear +physics. I Got +no fission. +--- diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/Ganon.txt b/worlds/smz3/TotalSMZ3/Text/Scripts/Ganon.txt new file mode 100644 index 00000000..9b7e7c5a --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/Ganon.txt @@ -0,0 +1,189 @@ +Start your day +smiling with a +delicious +wholegrain +breakfast +created for +your +incredible +insides. +--- +You drove +away my other +self, Agahnim +two times… +But, I won't +give you the +Triforce. +I'll defeat +you! +--- +Impa says that +the mark on +your hand +means that you +are the hero +chosen to +awaken Zelda. +your blood can +resurrect me. +--- +Don't stand, + +don't stand so +Don't stand so + +close to me +Don't stand so +close to me +back off buddy +--- +So ya +Thought ya +Might like to +go to the show +To feel the +warm thrill of +confusion +That space +cadet glow. +--- +Like other +pulmonate land +gastropods, +the majority +of land slugs +have two pairs +of 'feelers' +or tentacles +on their head. +--- +If you were a +burrito, what +kind of a +burrito would +you be? +Me, I fancy I +would be a +spicy barbacoa +burrito. +--- +I am your +father's +brother's +nephew's +cousin's +former +roommate. What +does that make +us, you ask? +--- +I'll be more +eager about +encouraging +thinking +outside the +box when there +is evidence of +any thinking +inside it. +--- +If we're not +meant to have +midnight +snacks, then +why is there +a light in the +fridge? + +--- +I feel like we +keep ending up +here. + +Don't you? + +It's like +deja vu +all over again +--- +Did you know? +The biggest +and heaviest +cheese ever +produced +weighed +57,518 pounds +and was 32 +feet long. +--- +Now there was +a time, When +you loved me +so. I couldn't +do wrong, +And now you +need to know. +So How you +like me now? +--- +Did you know? +Nutrition +experts +recommend that +at least half +of our daily +grains come +from whole +grain products +--- +The Hemiptera +or true bugs +are an order +of insects +covering 50k +to 80k species +like aphids, +cicadas, and +shield bugs. +--- +Thanks for +dropping in, +the first +passengers +in a hot +air balloon. +were a duck, +a sheep, +and a rooster. +--- +You think you +are so smart? + +I bet you +didn't know +You can't hum +while holding +your nose +closed. +--- +Grumble, + +grumble… +grumble, + +grumble… +Seriously you +were supposed +to bring food +--- +Join me hero, +and I shall +make your face +the greatest +in the dark +world! + +Or else you +will die! +--- diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/General.yaml b/worlds/smz3/TotalSMZ3/Text/Scripts/General.yaml new file mode 100644 index 00000000..c0eae5bb --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/General.yaml @@ -0,0 +1,385 @@ +SahasrahlaReveal: |- + Want something + for free? Go + earn the green + pendant in + <dungeon> + and I'll give + you something. + +BombShopReveal: |- + Bring me the + crystals from + <first> + and + <second> + so I can make + a big bomb! + +GanonSilversReveal: + single: + local: |- + Did you find + the arrows in + my tower? + remote: |- + Did you find + the arrows in + <region> + multi: + local: |- + Seek the + arrows in + this world + remote: |- + Seek the sage + <player> + for the arrows + +Items: + + BigKeyEP: |- + The big key + of the east + BigKeyDP: |- + Sand spills + out of this + big key + BigKeyTH: |- + The big key + to moldorm's + heart + BigKeyPD: |- + Hammeryump + with this + big key + BigKeySP: |- + The big key + to the swamp + BigKeySW: |- + The big key + of the dark + forest + BigKeyTT: |- + The big key + of rogues + BigKeyIP: |- + A frozen + big key + rests here + BigKeyMM: |- + The big key + to Vitreous + BigKeyTR: |- + The big key + of terrapins + BigKeyGT: |- + The big key + of evil's bane + + KeyHC: |- + The key to + the castle + KeyCT: |- + Agahanim + halfway + unlocked + KeyDP: |- + Sand spills + out of this + small key + KeyTH: |- + The key + to moldorm's + basement + KeyPD: |- + A small key + that steals + light + KeySP: |- + Access to + the swamp + is granted + KeySW: |- + The small key + of the dark + forest + KeyTT: |- + The small key + of rogues + KeyIP: |- + A frozen + small key + rests here + KeyMM: |- + The small key + to Vitreous + KeyTR: |- + The small key + of terrapins + KeyGT: |- + The small key + of evil's bane + + Map: |- + You can now + find your way + home! + Compass: |- + Now you know + where the boss + hides! + + ProgressiveTunic: |- + Time for a + change of + clothes? + ProgressiveShield: |- + Have a better + defense in + front of you + ProgressiveSword: |- + A better copy + of your sword + for your time + Bow: |- + You have + chosen the + archer class. + SilverArrows: |- + Do you fancy + silver tipped + arrows? + BlueBoomerang: |- + No matter what + you do, blue + returns to you + RedBoomerang: |- + No matter what + you do, red + returns to you + Hookshot: |- + BOING!!! + BOING!!! + BOING!!! + Mushroom: |- + I'm a fun guy! + + I'm a funghi! + Powder: |- + You can turn + anti-faeries + into faeries + Firerod: |- + I'm the hot + rod. I make + things burn! + Icerod: |- + I'm the cold + rod. I make + things freeze! + Bombos: |- + Burn, baby, + burn! Fear my + ring of fire! + Ether: |- + This magic + coin freezes + everything! + Quake: |- + Maxing out the + Richter scale + is what I do! + Lamp: |- + Baby, baby, + baby. + Light my way! + Hammer: |- + Stop! + Hammer time! + Shovel: |- + Can + You + Dig it? + Flute: |- + Save the duck + and fly to + freedom! + Bugnet: |- + Let's catch + some bees and + faeries! + Book: |- + This is a + paradox?! + Bottle: |- + Now you can + store potions + and stuff! + BottleWithRedPotion: |- + You see red + goo in a + bottle? + BottleWithGreenPotion: |- + You see green + goo in a + bottle? + BottleWithBluePotion: |- + You see blue + goo in a + bottle? + BottleWithBee: |- + Release me + so I can go + bzzzzz! + BottleWithFairy: |- + If you die + I will revive + you! + Somaria: |- + I make blocks + to hold down + switches! + Byrna: |- + Use this to + become + invincible! + Cape: |- + Wear this to + become + invisible! + Mirror: |- + Isn't your + reflection so + pretty? + Boots: |- + Gotta go fast! + ProgressiveGlove: |- + A way to lift + heavier things + Flippers: |- + Fancy a swim? + MoonPearl: |-2 + Bunny Link + be + gone! + HalfMagic: |- + Your magic + power has been + doubled! + HeartPiece: |- + Just a little + piece of love! + HeartContainer: |- + Maximum health + increased! + Yeah! + ThreeBombs: |- + I make things + go triple + BOOM!!! + Arrow: |- + A lonely arrow + sits here. + TenArrows: |- + This will give + you ten shots + with your bow! + PocketRupees: |- + Just pocket + change. Move + right along. + CouchRupees: |- + Just couch + cash. Move + right along. + OneHundredRupees: |- + A rupee stash! + Hell yeah! + ThreeHundredRupees: |- + A rupee hoard! + Hell yeah! + BombUpgrade: |- + Increase bomb + storage, low + low price + ArrowUpgrade: |- + Increase arrow + storage, low + low price + + Missile: |- + Some kind of + flying bomb? + Super: |- + A really big + flying bomb! + PowerBomb: |- + Big bada boom! + Grapple: |- + Some kind of + futuristic + hookshot? + XRay: |- + THIS LENS OF + TRUTH IS MADE + IN ZEBES! + ETank: |- + A heart from + the future? + ReserveTank: |- + A fairy from + the future? + Charge: |- + IM'A CHARGIN + MA LAZER! + Ice: |- + Some kind of + ice rod for + aliens? + Wave: |- + Trigonometry gun. + Spazer: |- + Even space + lasers can + be sucky. + Plasma: |- + Some kind of + fire rod for + aliens? + Varia: |- + Alien armor? + Gravity: |- + No more water + physics. + Morph: |- + Why can't + Metroid crawl? + Bombs: |- + Bombs from + the future. + SpringBall: |- + Bouncy bouncy + bouncy bouncy + bounce. + ScrewAttack: |- + U spin me right + round baby + right round + HiJump: |- + This would be + great if I + could jump. + SpaceJump: |- + I believe + I can fly. + SpeedBooster: |- + THE GREEN + BOOMERANG IS + THE FASTEST! + Keycard: |- + A key from + the future? + default: |- + Don't waste + your time! diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/StringTable.yaml b/worlds/smz3/TotalSMZ3/Text/Scripts/StringTable.yaml new file mode 100644 index 00000000..d1e5b9c3 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/StringTable.yaml @@ -0,0 +1,433 @@ +# Numbers in comments refer to US text numbers +# Except for the first few entries, JP1.0 text numbers are smaller by 2 + +# The order of the dialog entries is significant +- set_cursor: [0xFB, 0xFC, 0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xE4, 0xFE, 0x68] +- set_cursor2: [0xFB, 0xFC, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xE4, 0xFE, 0x68] +- game_over_menu: { NoPause: "{SPEED0}\nSave and Continue\nSave and Quit\nContinue" } +- var_test: { NoPause: "0= ᚋ, 1= ᚌ\n2= ᚍ, 3= ᚎ" } +- follower_no_enter: "Can't you take me some place nice." +- choice_1_3: [0xFB, 0xFC, 0x00, 0xF7, 0xE4, 0xF8, 0xFF, 0xF9, 0xFF, 0xFE, 0x71] +- choice_2_3: [0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xE4, 0xF9, 0xFF, 0xFE, 0x71] +- choice_3_3: [0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xFF, 0xF9, 0xE4, 0xFE, 0x71] +- choice_1_2: [0xFB, 0xFC, 0x00, 0xF7, 0xE4, 0xF8, 0xFF, 0xFE, 0x72] +- choice_2_2: [0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xE4, 0xFE, 0x72] +- uncle_leaving_text: "I'm just going out for a pack of smokes." +- uncle_dying_sewer: "I've fallen and I can't get up, take this." +# $10 +- tutorial_guard_1: "Only adults should travel at night." +- tutorial_guard_2: "You can press X to see the Map." +- tutorial_guard_3: "Press the A button to lift things by you." +- tutorial_guard_4: "When you has a sword, press B to slash it." +- tutorial_guard_5: "このメッセージはニホンゴでそのまま" # on purpose +- tutorial_guard_6: "Are we really still reading these?" +- tutorial_guard_7: "Jeeze! There really are a lot of things." +- priest_sanctuary_before_leave: "Go be a hero!" +- sanctuary_enter: "YAY!\nYou saved Zelda!" +- zelda_sanctuary_story: "Do you want to hear me say this again?\n{HARP}\n ≥ No\n _Yes\n{CHOICE}" +- priest_sanctuary_before_pendants: "Go'on and get them pendants so you can beat up Agahnim." +- priest_sanctuary_after_pendants_before_master_sword: "Kudos! But seriously, you should be getting the master sword, not having a kegger in here." +- priest_sanctuary_dying: "They took her to the castle! Take your sword and save her!" +- zelda_save_sewers: "You saved me!" +- priest_info: "So, I'm the dude that will protect Zelda. Don't worry, I got this covered." +- zelda_sanctuary_before_leave: "Be careful!" +- telepathic_intro: "{NOBORDER}\n{SPEED6}\nHey, come find me and help me!" +# $20 +- telepathic_reminder: "{NOBORDER}\n{SPEED6}\nI'm in the castle basement." +- zelda_go_to_throne: "Go north to the throne." +- zelda_push_throne: "Let's push it from the left!" +- zelda_switch_room_pull: "Pull this lever using A." +- zelda_save_lets_go: "Let's get out of here!" +- zelda_save_repeat: "I like talking, do you?\n ≥ No\n _Yes\n{CHOICE}" +- zelda_before_pendants: "You need to find all the pendants…\n\n\nNumpty." +- zelda_after_pendants_before_master_sword: "Very pretty pendants, but really you should be getting that sword in the forest!" +- telepathic_zelda_right_after_master_sword: "{NOBORDER}\n{SPEED6}\nHi £,\nHave you been thinking about me?\narrrrrgghh…\n… … …" +- zelda_sewers: "Just a little further to the Sanctuary." +- zelda_switch_room: "The Sanctuary!\n\nPull my finger" +- kakariko_sahasrahla_wife: "Heya, £!\nLong time no see.\nYou want a master sword?\n\nWell good luck with that." +- kakariko_sahasrahla_wife_sword_story: "It occurs to me that I like toast and jam, but cheese and crackers is better.\nYou like?\n__≥ Cheese\n___ Jam\n{CHOICE}" +- kakariko_sahasrahla_wife_closing: "Anywho, I have things to do. You see those 2 ovens?\n\nYeah, 2!\nWho has 2 ovens nowadays?!" +- kakariko_sahasrahla_after_master_sword: "Cool sword!\n\n\n…\n\n\n…\n\n\nPlease save us" +- kakariko_alert_guards: "GUARDS! HELP!\nThe creeper\n£ is here!" +# $30 +- sahasrahla_quest_have_pendants: "{BOTTOM}\nCool beans, but I think you should mosey on over to the lost woods." +- sahasrahla_quest_have_master_sword: "{BOTTOM}\nThat's a pretty sword, but I'm old, forgetful, and old. Why don't you go do all the hard work while I hang out in this hut." +- sahasrahla_quest_information: "{BOTTOM}\nSahasrahla, I am. You would do well to find the 3 pendants from the 3 dungeons in the Light World.\nUnderstand?\n ≥ Yes\n No\n{CHOICE}" +- sahasrahla_bring_courage: "{BOTTOM}\nWhile you're here, could you do me a solid and get the green pendant from that dungeon?\n{HARP}\nI'll give you a present if you do." +- sahasrahla_have_ice_rod: "{BOTTOM}\nLike, I sit here, and tell you what to do?\n\n\nAlright, go and find all the maidens, there are, like, maybe 7 of them. I dunno anymore. I'm old." +- telepathic_sahasrahla_beat_agahnim: "{NOBORDER}\n{SPEED6}\nNice, so you beat Agahnim. Now you must beat Ganon. Good Luck!" +- telepathic_sahasrahla_beat_agahnim_no_pearl: "{NOBORDER}\n{SPEED6}\nOh, also you forgot the Moon Pearl, dingus. Go back and find it!" +- sahasrahla_have_boots_no_icerod: "{BOTTOM}\nCave in South East has a cool item." +- sahasrahla_have_courage: "{BOTTOM}\nLook, you have the green pendant! I'll give you something. Go kill the other two bosses for more pendant fun!" +- sahasrahla_found: "{BOTTOM}\nYup!\n\nI'm the old man you are looking for. I'll keep it short and sweet: Go into that dungeon, then bring me the green pendant and talk to me again." +- sign_rain_north_of_links_house: "↑ Dying Uncle\n This way…" +- sign_north_of_links_house: "> Randomizer Don't read me, go beat Ganon!" +- sign_path_to_death_mountain: "Cave to lost, old man.\nGood luck." +- sign_lost_woods: "\n↑ Lost Woods" +- sign_zoras: "Danger!\nDeep water!\nZoras!" +- sign_outside_magic_shop: "Welcome to the Magic Shoppe" +# $40 +- sign_death_mountain_cave_back: "Cave away from sky cabbages" +- sign_east_of_links_house: "↓ Lake Hylia\n\n Also, a shop" +- sign_south_of_lumberjacks: "← Kakariko\n Village" +- sign_east_of_desert: "← Desert\n\n It's hot." +- sign_east_of_sanctuary: "↑→ Potions!\n\nWish Waterfall" +- sign_east_of_castle: "→ East Palace\n\n← Castle" +- sign_north_of_lake: "\n Lake Hiriah" +- sign_desert_thief: "Don't talk to me or touch my sign!" +- sign_lumberjacks_house: "Lumberjacks, Inc.\nYou see 'em, we saw 'em." +- sign_north_kakariko: "↓ Kakariko\n Village" +- witch_bring_mushroom: "Double, double toil and trouble!\nBring me a mushroom!" +- witch_brewing_the_item: "This mushroom is busy brewing. Come back later." +- witch_assistant_no_bottle: "You got to give me the mushroom, Numpty." +- witch_assistant_no_empty_bottle: "Gotta use your stuff before you can get more." +- witch_assistant_informational: "Red is life\nGreen is magic\nBlue is both\nI'll heal you for free, though." +- witch_assistant_no_bottle_buying: "If only you had something to put that in, like a bottle…" +# $50 +- potion_shop_no_empty_bottles: "Whoa, bucko!\nNo empty bottles." +- item_get_lamp: "Lamp! You can see in the dark, and light torches." +- item_get_boomerang: "Boomerang! Press START to select it." +- item_get_bow: "You're in bow mode now!" +- item_get_shovel: "This is my new mop. My friend George, he gave me this mop. It's a pretty good mop. It's not as good as my old mop. I miss my old mop. But it's still a good mop." +- item_get_magic_cape: "Finally! We get to play Invisible Man!" +- item_get_powder: "It's the powder. Let's cause some mischief!" +- item_get_flippers: "Splish! Splash! Let's go take a bath!" +- item_get_power_gloves: "Feel the power! You can now lift light rocks! Rock on!" +- item_get_pendant_courage: "We have the Pendant of Courage! How brave!" +- item_get_pendant_power: "We have the Pendant of Power! How robust!" +- item_get_pendant_wisdom: "We have the Pendant of Wisdom! How astute!" +- item_get_mushroom: "A Mushroom! Don't eat it. Find a witch." +- item_get_book: "It book! U R now litterit!" +- item_get_moonpearl: "I found a shiny marble! No more hops!" +- item_get_compass: "A compass! I can now find the boss." +# $60 +- item_get_map: "Yo! You found a MAP! Press X to see it." +- item_get_ice_rod: "It's the Ice Rod! Freeze Ray time." +- item_get_fire_rod: "A Rod that shoots fire? Let's burn all the things!" +- item_get_ether: "We can chill out with this!" +- item_get_bombos: "Let's set everything on fire, and melt things!" +- item_get_quake: "Time to make the earth shake, rattle, and roll!" +- item_get_hammer: "STOP!\n\nHammer Time!" +- item_get_ocarina: "Finally! We can play the Song of Time!" +- item_get_cane_of_somaria: "Make blocks!\nThrow blocks!\nSplode Blocks!" +- item_get_hookshot: "BOING!!!\nBOING!!!\nSay no more…" +- item_get_bombs: "BOMBS! Use A to pick 'em up, throw 'em, get hurt!" +- item_get_bottle: "It's a terrarium. I hope we find a lizard!" +- item_get_big_key: "Yo! You got a Big Key!" +- item_get_titans_mitts: "So, like, you can now lift anything.\nANYTHING!" +- item_get_magic_mirror: "We could stare at this all day or, you know, beat Ganon…" +- item_get_fake_mastersword: "It's the Master Sword! …or not…\n\n FOOL!" +# $70 +- post_item_get_mastersword: "{NOBORDER}\n{SPEED6}\n£, you got the sword!\n{CHANGEMUSIC}\nNow let's go beat up Agahnim!" +- item_get_red_potion: "Red goo to go! Nice!" +- item_get_green_potion: "Green goo to go! Nice!" +- item_get_blue_potion: "Blue goo to go! Nice!" +- item_get_bug_net: "Surprise Net! Let's catch stuff!" +- item_get_blue_mail: "Blue threads? Less damage activated!" +- item_get_red_mail: "You feel the power of the eggplant on your head." +- item_get_temperedsword: "Nice… I now have a craving for Cheetos." +- item_get_mirror_shield: "Pit would be proud!" +- item_get_cane_of_byrna: "It's the Blue Cane. You can now protect yourself with lag!" +- missing_big_key: "Something is missing…\nThe Big Key?" +- missing_magic: "Something is missing…\nMagic meter?" +- item_get_pegasus_boots: "Finally, it's bonking time!\nHold A to dash" +- talking_tree_info_start: "Whoa! I can talk again!" +- talking_tree_info_1: "Yank on the pitchfork in the center of town, ya heard it here." +- talking_tree_info_2: "Ganon is such a dingus, no one likes him, ya heard it here." +# $80 +- talking_tree_info_3: "There is a portal near the Lost Woods, ya heard it here." +- talking_tree_info_4: "Use bombs to quickly kill the Hinox, ya heard it here." +- talking_tree_other: "I can breathe!" +- item_get_pendant_power_alt: "We have the Pendant of Power! How robust!" +- item_get_pendant_wisdom_alt: "We have the Pendant of Wisdom! How astute!" +- game_shooting_choice: "20 rupees.\n5 arrows.\nWin rupees!\nWant to play?\n ≥ Yes\n _No\n{CHOICE}" +- game_shooting_yes: "Let's do this!" +- game_shooting_no: "Where are you going? Straight up!" +- game_shooting_continue: "Keep playing?\n ≥ Yes\n _No\n{CHOICE}" +- pond_of_wishing: "-Wishing Pond-\n\n On Vacation" +- pond_item_select: "Pick something\nto throw in.\n{ITEMSELECT}" +- pond_item_test: "You toss this?\n ≥ Yup\n _Wrong\n{CHOICE}" +- pond_will_upgrade: "You're honest, so I'll give you a present." +- pond_item_test_no: "You sure?\n ≥ Oh yeah\n _Um\n{CHOICE}" +- pond_item_test_no_no: "Well, I don't want it, so take it back." +- pond_item_boomerang: "I don't much like you, so have this worse Boomerang." +# $90 +- pond_item_shield: "I grant you the ability to block fireballs. Don't lose this to a Pikit!" +- pond_item_silvers: "So, wouldn't it be nice to kill Ganon? These should help in the final phase." +- pond_item_bottle_filled: "Bottle Filled!\nMoney Saved!" +- pond_item_sword: "Thank you for the sword, here is a stick of butter." +- pond_of_wishing_happiness: "Happiness up!\nYou are now\nᚌᚋ happy!" +- pond_of_wishing_choice: "Your wish?\n ≥More bombs\n _More arrows\n{CHOICE}" +- pond_of_wishing_bombs: "Woo-hoo!\nYou can now\ncarry ᚌᚋ bombs" +- pond_of_wishing_arrows: "Woo-hoo!\nYou can now\nhold ᚌᚋ arrows" +- pond_of_wishing_full_upgrades: "You have all I can give you, here are your rupees back." +- mountain_old_man_first: "Look out for holes, and monsters." +- mountain_old_man_deadend: "Oh, goody, hearts in jars! This place is creepy." +- mountain_old_man_turn_right: "Turn right. Let's get out of this place." +- mountain_old_man_lost_and_alone: "Hello. I can't see anything. Take me with you." +- mountain_old_man_drop_off: "Here's a thing to help you, good luck!" +- mountain_old_man_in_his_cave_pre_agahnim: "You need to beat the tower at the top of the mountain." +- mountain_old_man_in_his_cave: "You can find stuff in the tower at the top of this mountain.\nCome see me if you'd like to be healed." +# $A0 +- mountain_old_man_in_his_cave_post_agahnim: "You should be heading to the castle… you have a portal there now.\nSay hi anytime you like." +- tavern_old_man_awake: "Life? Love? Happiness? The question you should really ask is: Was this generated by Stoops Alu or Stoops Jet?" +- tavern_old_man_unactivated_flute: "You should play that flute for the weathervane, cause reasons." +- tavern_old_man_know_tree_unactivated_flute: "You should play that flute for the weathervane, cause reasons." +- tavern_old_man_have_flute: "Life? Love? Happiness? The question you should really ask is: Was this generated by Stoops Alu or Stoops Jet?" +- chicken_hut_lady: "This is\nChristos' hut.\n\nHe's out, searching for a bow." +- running_man: "Hi, Do you\nknow Veetorp?\n\nYou really\nshould. And\nall the other great guys who made this possible.\nGo thank them.\n\n\nIf you can catch them…" +- game_race_sign: "Why are you reading this sign? Run!!!" +- sign_bumper_cave: "You need Cape, but not Hookshot" +- sign_catfish: "Toss rocks\nToss items\nToss cookies" +- sign_north_village_of_outcasts: "↑ Skull Woods\n\n↓ Steve's Town" +- sign_south_of_bumper_cave: "\n→ Karkats cave" +- sign_east_of_pyramid: "\n→ Dark Palace" +- sign_east_of_bomb_shop: "\n← Bomb Shoppe" +- sign_east_of_mire: "\n← Misery Mire\n no way in.\n no way out." +- sign_village_of_outcasts: "Have a Trulie Awesome Day!" +# $B0 +- sign_before_wishing_pond: "waterfall\nup ahead\nmake wishes" +- sign_before_catfish_area: "→↑ Have you met Woeful Ike?" +- castle_wall_guard: "Looking for a Princess? Look downstairs." +- gate_guard: "No Lonks Allowed!" +- telepathic_tile_eastern_palace: "{NOBORDER}\nYou need a Bow to get past the red Eyegore. derpy" +- telepathic_tile_tower_of_hera_floor_4: "{NOBORDER}\nIf you find a shiny ball, you can be you in the Dark World." +- hylian_text_1: "%== %== %==\n ^ %==% ^\n%== ^%%^ ==^" +- mastersword_pedestal_translated: "A test of strength: If you have 3 pendants, I'm yours." +- telepathic_tile_spectacle_rock: "{NOBORDER}\nUse the Mirror, or the Hookshot and Hammer, to get to Tower of Hera!" +- telepathic_tile_swamp_entrance: "{NOBORDER}\nDrain the floodgate to raise the water here!" +- telepathic_tile_thieves_town_upstairs: "{NOBORDER}\nBlind hates bright light." +- telepathic_tile_misery_mire: "{NOBORDER}\nLighting 4 torches will open your way forward!" +- hylian_text_2: "%%^= %==%\n ^ =%^=\n==%= ^^%^" +- desert_entry_translated: "Kneel before this stone, and magic will move around you." +- telepathic_tile_under_ganon: "{NOBORDER}\nOnly Silver Arrows will finish off a blue Ganon, or really well timed spins in phase 4." +- telepathic_tile_palace_of_darkness: "{NOBORDER}\nThis is a funny looking Enemizer" +# $C0 +- telepathic_tile_desert_bonk_torch_room: "{NOBORDER}\nThings can be knocked down, if you fancy yourself a dashing dude." +- telepathic_tile_castle_tower: "{NOBORDER}\nYou can reflect Agahnim's energy with Sword, Bug-net or Hammer." +- telepathic_tile_ice_large_room: "{NOBORDER}\nAll right, stop collaborate and listen\nIce is back with my brand new invention." +- telepathic_tile_turtle_rock: "{NOBORDER}\nYou Shall not pass… without the red cane." +- telepathic_tile_ice_entrace: "{NOBORDER}\nYou can use Fire Rod or Bombos to pass." +- telepathic_tile_ice_stalfos_knights_room: "{NOBORDER}\nKnock 'em down and then bomb them dead." +- telepathic_tile_tower_of_hera_entrance: "{NOBORDER}\nThis is a bad place, with a guy who will make you fall…\n\n\na lot." +- houlihan_room: "My name is Chris Houlihan, but I'm sure you only care about the money. Take it, it's not like I can stop you." +- caught_a_bee: "Caught a Bee\n ≥ Keep\n _Release\n{CHOICE}" +- caught_a_fairy: "Caught Fairy!\n ≥ Keep\n _Release\n{CHOICE}" +- no_empty_bottles: "Whoa, bucko!\nNo empty bottles." +- game_race_boy_time: "Your time was\nᚎᚍ min ᚌᚋ sec." +- game_race_girl: "You have 15 seconds,\nGo… Go… Go…" +- game_race_boy_success: "Nice!\nYou can have this trash!" +- game_race_boy_failure: "Too slow!\nI keep my\nprecious!" +- game_race_boy_already_won: "You already have your prize, dingus!" +# $D0 +- game_race_boy_sneaky: "Thought you could sneak in, eh?" +- bottle_vendor_choice: "I gots bottles.\nYous gots 100 rupees?\n ≥ I want\n _No way!" +- bottle_vendor_get: "Nice! Hold it up son! Show the world what you got!" +- bottle_vendor_no: "Fine! I didn't want your money anyway." +- bottle_vendor_already_collected: "Dude! You already have it." +- bottle_vendor_bee: "Cool! A bee! Here's 100 rupees." +- bottle_vendor_fish: "Whoa! A fish! You walked this all the way here?" +- hobo_item_get_bottle: "You think life is rough? I guess you can take my last item. Except this tent. That's MY tent!" +- blacksmiths_what_you_want: "Nice of you to come back!\nWould you like us mess with your sword?\n ≥ Temper\n _It's fine\n{CHOICE}" +- blacksmiths_paywall: "It's 10 rupees\n ≥ Easy\n _Hang on…\n{CHOICE}" +- blacksmiths_extra_okay: "Are you sure you're sure?\n ≥ Ah, yup\n _Hang on…\n{CHOICE}" +- blacksmiths_tempered_already: "Whelp… We can't make this any better." +- blacksmiths_temper_no: "Oh, come by any time!" +- blacksmiths_bogart_sword: "We're going to have to take it to work on it." +- blacksmiths_get_sword: "Sword is done. Now, back to our bread!" +- blacksmiths_shop_before_saving: "I lost my friend. Help me find him!" +# $E0 +- blacksmiths_shop_saving: "You found him! Colour me happy! Come back right away and we will bang on your sword." +- blacksmiths_collect_frog: "Ribbit! Ribbit! Let's find my partner. To the shop!" +- blacksmiths_still_working: "Something this precious takes time… Come back later." +- blacksmiths_saving_bows: "Thanks!\n\nThanks!" +- blacksmiths_hammer_anvil: "Dernt Take Er Jerbs!" +- dark_flute_boy_storytime: "Hi!\nI'm Stumpy!\nI've been chillin' in this world for a while now, but I miss my flute. If I gave you a shovel, would you go digging for it?\n ≥ Sure\n _Nahh\n{CHOICE}" +- dark_flute_boy_get_shovel: "Schaweet! Here you go. Happy digging!" +- dark_flute_boy_no_get_shovel: "Oh I see, not good enough for you… FINE!" +- dark_flute_boy_flute_not_found: "Still haven't found the item? Dig in the Light World around here, dingus!" +- dark_flute_boy_after_shovel_get: "So I gave you an item, and you're still here.\n\n\n\n\n\nI mean, we can sit here and stare at each other, if you like…\n\n\n\n\n\n\n\nFine, I guess you should just go." +- shop_fortune_teller_lw_hint_0: "{BOTTOM}\nBy the black cats, the book opens the desert" +- shop_fortune_teller_lw_hint_1: "{BOTTOM}\nBy the black cats, nothing doing" +- shop_fortune_teller_lw_hint_2: "{BOTTOM}\nBy the black cats, I'm cheap" +- shop_fortune_teller_lw_hint_3: "{BOTTOM}\nBy the black cats, am I cheap?" +- shop_fortune_teller_lw_hint_4: "{BOTTOM}\nBy the black cats, Zora lives at the end of the river" +- shop_fortune_teller_lw_hint_5: "{BOTTOM}\nBy the black cats, The Cape can pass through the barrier" +# $F0 +- shop_fortune_teller_lw_hint_6: "{BOTTOM}\nBy the black cats, Spin, Hammer, or Net to hurt Agahnim" +- shop_fortune_teller_lw_hint_7: "{BOTTOM}\nBy the black cats, You can jump in the well by the blacksmiths" +- shop_fortune_teller_lw_no_rupees: "{BOTTOM}\nThe black cats are hungry, come back with rupees" +- shop_fortune_teller_lw: "{BOTTOM}\nWelcome to the Fortune Shoppe!\nFancy a read?\n ≥I must know\n _Negative\n{CHOICE}" +- shop_fortune_teller_lw_post_hint: "{BOTTOM}\nFor ᚋᚌ rupees\nIt is done.\nBe gone!" +- shop_fortune_teller_lw_no: "{BOTTOM}\nWell then, why did you even come in here?" +- shop_fortune_teller_lw_hint_8: "{BOTTOM}\nBy the black cats, why you do?" +- shop_fortune_teller_lw_hint_9: "{BOTTOM}\nBy the black cats, panda crackers" +- shop_fortune_teller_lw_hint_10: "{BOTTOM}\nBy the black cats, the missing blacksmith is south of the Village of Outcasts" +- shop_fortune_teller_lw_hint_11: "{BOTTOM}\nBy the black cats, open chests to get stuff" +- shop_fortune_teller_lw_hint_12: "{BOTTOM}\nBy the black cats, you can buy a new bomb at the Bomb Shoppe" +- shop_fortune_teller_lw_hint_13: "{BOTTOM}\nBy the black cats, big bombs blow up cracked walls in pyramids" +- shop_fortune_teller_lw_hint_14: "{BOTTOM}\nBy the black cats, you need all the crystals to open Ganon's Tower" +- shop_fortune_teller_lw_hint_15: "{BOTTOM}\nBy the black cats, Silver Arrows will defeat Ganon in his final phase" +- dark_sanctuary: "For 20 rupees I'll tell you something?\nHow about it?\n ≥ Yes\n _No\n{CHOICE}" +- dark_sanctuary_hint_0: "I once was a tea kettle, but then I moved up in the world, and now you can see me as this. Makes you wonder. What I could be next time." +# $100 +- dark_sanctuary_no: "Then go away!" +- dark_sanctuary_hint_1: "There is a thief in the desert, he can open creepy chests that follow you. But now that we have that out of the way, do you like my hair? I've spent eons getting it this way." +- dark_sanctuary_yes: "With Crystals 5&6, you can find a great fairy in the pyramid.\n\nFlomp Flomp, Whizzle Whomp" +- dark_sanctuary_hint_2: "All I can say is that my life is pretty plain,\nI like watchin' the puddles gather rain,\nAnd all I can do is just pour some tea for two,\nAnd speak my point of view but it's not sane,\nIt's not sane" +- sick_kid_no_bottle: "{BOTTOM}\nI'm sick! Show me a bottle, get something!" +- sick_kid_trade: "{BOTTOM}\nCool Bottle! Here's something for you." +- sick_kid_post_trade: "{BOTTOM}\nLeave me alone\nI'm sick. You have my item." +- desert_thief_sitting: "………………………" +- desert_thief_following: "why……………" +- desert_thief_question: "I was a thief. I open purple chests!\nKeep secret?\n ≥ Sure thing\n Never!\n{CHOICE}" +- desert_thief_question_yes: "Cool, bring me any purple chests you find." +- desert_thief_after_item_get: "You tell anyone and I will give you such a pinch!" +- desert_thief_reassure: "Bring chests. It's a secret to everyone." +- hylian_text_3: "^^ ^%=^= =%=\n=%% =%%=^\n==%^= %=^^%" +- tablet_ether_book: "Can you make things fall out of the sky? With the Master Sword, you can!" +- tablet_bombos_book: "Can you make things fall out of the sky? With the Master Sword, you can!" +# $110 +- magic_bat_wake: "You bum! I was sleeping! Where's my magic bolts?" +- magic_bat_give_half_magic: "How you like me now?" +- intro_main: { NoPause: "{INTRO}\n Episode III\n{PAUSE3}\n A Link to\n the Past\n{PAUSE3}\n Randomizer\n{PAUSE3}\nAfter mostly disregarding what happened in the first two games.\n{PAUSE3}\nLink awakens to his uncle leaving the house.\n{PAUSE3}\nHe just runs out the door,\n{PAUSE3}\ninto the rainy night.\n{PAUSE3}\n{CHANGEPIC}\nGanon has moved around all the items in Hyrule.\n{PAUSE7}\nYou will have to find all the items necessary to beat Ganon.\n{PAUSE7}\nThis is your chance to be a hero.\n{PAUSE3}\n{CHANGEPIC}\nYou must get the 7 crystals to beat Ganon.\n{PAUSE9}\n{CHANGEPIC}" } +- intro_throne_room: { NoPause: "{IBOX}\nLook at this Stalfos on the throne." } +- intro_zelda_cell: { NoPause: "{IBOX}\nIt is your time to shine!" } +- intro_agahnim: { NoPause: "{IBOX}\nAlso, you need to defeat this guy!" } +- pickup_purple_chest: "A curious box. Let's take it with us!" +- bomb_shop: "30 bombs for 100 rupees. Good deals all day!" +- bomb_shop_big_bomb: "30 bombs for 100 rupees, 100 rupees 1 BIG bomb. Good deals all day!" +- bomb_shop_big_bomb_buy: "Thanks!\nBoom goes the dynamite!" +- item_get_big_bomb: "YAY! press A to splode it!" +- kiki_second_extortion: "For 100 more, I'll open this place.\nHow about it?\n ≥ Open\n _Nah\n{CHOICE}" +- kiki_second_extortion_no: "Heh, good luck getting in." +- kiki_second_extortion_yes: "Yay! Rupees!\nOkay, let's do this!" +- kiki_first_extortion: "I'm Kiki. I like rupees, may I have 10?\nHow about it?\n ≥ Yes\n _No\n{CHOICE}" +- kiki_first_extortion_yes: "Nice. I'll tag along with you for a bit." +# $120 +- kiki_first_extortion_no: "Pfft. I have no reason to hang. See ya!" +- kiki_leaving_screen: "No no no no no! We should play by my rules! Goodbye…" +- blind_in_the_cell: "You saved me!\nPlease get me out of here!" +- blind_by_the_light: "Aaaahhhh~!\nS-so bright~!" +- blind_not_that_way: "No! Don't go that way!" +- aginah_l1sword_no_book: "I once had a fish dinner. I still remember it to this day." +- aginah_l1sword_with_pendants: "Do you remember when I was young?\n\nI sure don't." +- aginah: "So, I've been living in this cave for years, and you think you can just come along and bomb open walls?" +- aginah_need_better_sword: "Once, I farted in this cave so bad all the jazz hands guys ran away and hid in the sand." +- aginah_have_better_sword: "Pandas are very vicious animals. Never forget…\n\n\n\n\nI never will…" +- catfish: "You woke me from my nap! Take this, and get out!" +- catfish_after_item: "I don't have anything else for you!\nTake this!" +- lumberjack_right: "One of us always lies." +- lumberjack_left: "One of us always tells the truth." +- lumberjack_left_post_agahnim: "One of us likes peanut butter." +- fighting_brothers_right: "I walled off my brother Leo\n\nWhat a dingus." +# $130 +- fighting_brothers_right_opened: "Now I should probably talk to him…" +- fighting_brothers_left: "Did you come from my brothers room?\n\nAre we cool?" +- maiden_crystal_1: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty red dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_2: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty blue dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_3: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty gold dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_4: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty redder dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_5: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_6: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED2}\nJust thought I would tell you." +- maiden_crystal_7: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED2}\nDo you know how long I've been waiting?!" +- maiden_ending: "May the way of the hero lead to the Triforce" +- maiden_confirm_undersood: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nCapisce?\n ≥ Yes\n _No\n{CHOICE}" +- barrier_breaking: "What did the seven crystals say to Ganon's Tower?" +- maiden_crystal_7_again: "{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED2}\nDo you know how long I've been waiting?!" +- agahnim_zelda_teleport: "I am a magician, and this is my act. Watch as I make this girl disappear" +- agahnim_magic_running_away: "And now, the end is near\nAnd so I face the final curtain\nMy friend, I'll say it clear\nI'll state my case, of which I'm certain\nI've lived a life that's full\nI've traveled each and every highway\nBut more, much more than this\nI did it my way" +- agahnim_hide_and_seek_found: "Peek-a-boo!" +# $140 +- agahnim_defeated: "Arrrgggghhh. Well you're coming with me!" +- agahnim_final_meeting: "You have done well to come this far. Now, die!" +# $142 +- zora_meeting: "What do you want?\n ≥ Flippers\n _Nothin'\n{CHOICE}" +- zora_tells_cost: "Fine! But they aren't cheap. You got 500 rupees?\n ≥ Duh\n _Oh carp\n{CHOICE}" +- zora_get_flippers: "Here's some Flippers for you! Swim little fish, swim." +- zora_no_cash: "Fine!\nGo get some more money first." +- zora_no_buy_item: "Wah hoo! Well, whenever you want to see these gills, stop on by." +- kakariko_sahasrahla_grandson: "My grandpa is over in the East. I'm bad with directions. I'll mark your map. Best of luck!\n{HARP}" +- kakariko_sahasrahla_grandson_next: "Someday I'll be in a high school band!" +- dark_palace_tree_dude: "Did you know…\n\n\nA tree typically has many secondary branches supported clear of the ground by the trunk. This trunk typically contains woody tissue for strength, and vascular tissue to carry materials from one part of the tree to another." +- fairy_wishing_ponds: "\n-Wishing pond-\n\nThrow item in?\n ≥ Yesh\n _No\n{CHOICE}" +- fairy_wishing_ponds_no: "\n Stop it!" +- pond_of_wishing_no: "\n Fine then!" +- pond_of_wishing_return_item: "Okay. Here's your item back, cause I can't use it. I'm stuck in this fountain." +- pond_of_wishing_throw: "How many?\n ≥ᚌᚋ rupees\n _ᚎᚍ rupees\n{CHOICE}" +- pond_pre_item_silvers: "I like you, so here's a thing you can use to beat up Ganon." +# $150 +- pond_of_wishing_great_luck: "\n is great luck" +- pond_of_wishing_good_luck: "\n is good luck" +- pond_of_wishing_meh_luck: "\n is meh luck" +# Repurposed to no items in Randomizer +- pond_of_wishing_bad_luck: "Why you come in here and pretend like you have something this fountain wants? Come back with bottles!" +- pond_of_wishing_fortune: "by the way, your fortune," +- item_get_14_heart: "3 more to go\n ¼\nYay!" +- item_get_24_heart: "2 more to go\n ½\nWhee!" +- item_get_34_heart: "1 more to go\n ¾\nGood job!" +- item_get_whole_heart: "You got a whole ♥!!\nGo you!" +- item_get_sanc_heart: "You got a whole ♥!\nGo you!" +- fairy_fountain_refill: "Well done, lettuce have a cup of tea…" +- death_mountain_bullied_no_pearl: "I wrote a word. Just one. On a stone and threw it into the ocean. It was my word. It was what would save me. I hope someday someone finds that word and brings it to me. The word is the beginning of my song." +- death_mountain_bullied_with_pearl: "I wrote a song. Just one. On a guitar and threw it into the sky. It was my song. It could tame beasts and free minds. It flitters on the wind and lurks in our minds. It is the song of nature, of humanity, of dreams and dreamers." +- death_mountain_bully_no_pearl: "Add garlic, ginger and apple and cook for 2 minutes. Add carrots, potatoes, garam masala and curry powder and stir well. Add tomato paste, stir well and slowly add red wine and bring to a boil. Add sugar, soy sauce and water, stir and bring to a boil again." +- death_mountain_bully_with_pearl: "I think I forgot how to smile…" +- shop_darkworld_enter: "It's dangerous outside, buy my crap for safety." +# $160 +- game_chest_village_of_outcasts: "Pay 30 rupees, open 2 chests. Are you lucky?\nSo, Play game?\n ≥ Play\n _Never!\n{CHOICE}" +- game_chest_no_cash: "So, like, you need 30 rupees.\nSilly!" +- game_chest_not_played: "You want to play a game?\nTalk to me." +- game_chest_played: "You've opened the chests!\nTime to go." +- game_chest_village_of_outcasts_play: "Alright, brother!\nGo play!" +- shop_first_time: "Welcome to my shop! Select stuff with A.\nDO IT NOW!" +- shop_already_have: "So, like, you already have one of those." +- shop_buy_shield: "Thanks! Now you can block fire balls." +- shop_buy_red_potion: "Red goo, so good! It's like a fairy in a bottle, except you have to activate it yourself." +- shop_buy_arrows: "Arrows! Cause you were too lazy to look under some pots!" +- shop_buy_bombs: "You bought bombs. What, couldn't find any under bushes?" +- shop_buy_bee: "He's my best friend. Please take care of him, and never lose him." +- shop_buy_heart: "You really just bought this?" +- shop_first_no_bottle_buy: "Why does no one own bottles? Go find one first!" +- shop_buy_no_space: "You are carrying to much crap, go use some of it first!" +- ganon_fall_in: "You drove\naway my other\nself, Agahnim,\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!" +# $170 +- ganon_phase_3: "Can you beat\nmy darkness\ntechnique?" +- lost_woods_thief: "Have you seen Andy?\n\nHe was out looking for our prized Ether medallion.\nI wonder when he will be back?" +- blinds_hut_dude: "I'm just some dude. This is Blind's hut." +- end_triforce: "{SPEED2}\n{MENU}\n{NOBORDER}\n G G" +# $174 +- toppi_fallen: "Ouch!\n\nYou Jerk!" +- kakariko_tavern_fisherman: "Don't argue\nwith a frozen\nDeadrock.\nHe'll never\nchange his\nposition!" +- thief_money: "It's a secret to everyone." +- thief_desert_rupee_cave: "So you, like, busted down my door, and are being a jerk by talking to me? Normally I would be angry and make you pay for it, but I bet you're just going to break all my pots and steal my 50 rupees." +- thief_ice_rupee_cave: "I'm a rupee pot farmer. One day I will take over the world with my skillz. Have you met my brother in the desert? He's way richer than I am." +- telepathic_tile_south_east_darkworld_cave: "~~ Dev cave ~~\n No farming\n required" +# $17A +- cukeman: "Did you hear that Veetorp beat ajneb174 in a 1 on 1 race at AGDQ?" +- cukeman_2: "You found Shabadoo, huh?\nNiiiiice." +- potion_shop_no_cash: "Yo! I'm not running a charity here." +- kakariko_powdered_chicken: "Smallhacker…\n\n\nWas hiding, you found me!\n\n\nOkay, you can leave now." +- game_chest_south_of_kakariko: "Pay 20 rupees, open 1 chest. Are you lucky?\nSo, Play game?\n ≥ Play\n _Never!\n{CHOICE}" +- game_chest_play_yes: "Good luck then" +# $180 +- game_chest_play_no: "Well fine, I didn't want your rupees." +- game_chest_lost_woods: "Pay 100 rupees, open 1 chest. Are you lucky?\nSo, Play game?\n ≥ Play\n Never!\n{CHOICE}" +- kakariko_flophouse_man_no_flippers: "I sure do have a lot of beds.\n\nZora is a cheapskate and will try to sell you his trash for 500 rupees…" +- kakariko_flophouse_man: "I sure do have a lot of beds.\n\nDid you know if you played the flute in the center of town things could happen?" +- menu_start_2: { NoPause: "{MENU}\n{SPEED0}\n≥£'s House\n_Sanctuary\n{CHOICE3}" } +- menu_start_3: { NoPause: "{MENU}\n{SPEED0}\n≥£'s House\n_Sanctuary\n_Mountain Cave\n{CHOICE2}" } +- menu_pause: { NoPause: "{SPEED0}\n≥Continue Game\n_Save and Quit\n{CHOICE3}" } +- game_digging_choice: "Have 80 Rupees? Want to play digging game?\n ≥Yes\n _No\n{CHOICE}" +- game_digging_start: "Okay, use the shovel with Y!" +- game_digging_no_cash: "Shovel rental is 80 rupees.\nI have all day" +- game_digging_end_time: "Time's up!\nTime for you to go." +- game_digging_come_back_later: "Come back later, I have to bury things." +- game_digging_no_follower: "Something is following you. I don't like." +- menu_start_4: { NoPause: "{MENU}\n{SPEED0}\n≥£'s House\n_Mountain Cave\n{CHOICE3}" } +- ganon_fall_in_alt: "You think you\nare ready to\nface me?\n\nI will not die\n\nunless you\ncomplete your\ngoals. Dingus!" +- ganon_phase_3_alt: "Got wax in your ears? I cannot die!" +# $190 +- sign_east_death_mountain_bridge: "How did you get up here?" +- fish_money: "It's a secret to everyone." +- end_pad_data: "" diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/TavernMan.txt b/worlds/smz3/TotalSMZ3/Text/Scripts/TavernMan.txt new file mode 100644 index 00000000..5ef85012 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/TavernMan.txt @@ -0,0 +1,354 @@ +What do you +call a blind +dinosaur? +Adoyouthink- +hesaurus + +--- +A blind man +walks into +a bar. +And a table. +And a chair. + +--- +What do ducks +like to eat? + +Quackers! + +--- +How do you +set up a party +in space? + +You planet! + +--- +I'm glad I +know sign +language, +it's pretty +handy. + +--- +What did Zelda +say to Link at +a secure door? + +TRIFORCE! + +--- +I am on a +seafood diet. + +Every time +I see food, +I eat it. +--- +I've decided +to sell my +vacuum. +It was just +gathering +dust. +--- +Whats the best +time to go to +the dentist? + +Tooth-hurtie! + +--- +Why can't a +bike stand on +its own? + +It's two-tired! + +--- +If you haven't +found Quake +yet… +it's not your +fault. +--- +Why is Peter +Pan always +flying? +Because he +Neverlands! +--- +I once told a +joke to Armos. + +But he +remained +stone-faced! +--- +Lanmola was +late to our +dinner party. +He just came +for the desert +--- +Moldorm is +such a +prankster. +And I fall for +it every time! +--- +Helmasaur is +throwing a +party. +I hope it's +a masquerade! +--- +I'd like to +know Arrghus +better. +But he won't +come out of +his shell! +--- +Mothula didn't +have much fun +at the party. +He's immune to +spiked punch! +--- +Don't set me +up with that +chick from +Steve's Town. + + +I'm not +interested in +a Blind date! +--- +Kholdstare is +afraid to go +to the circus. +Hungry kids +thought he was +cotton candy! +--- +I asked who +Vitreous' best +friends are. +He said, +'Me, Myself, +and Eye!' +--- +Trinexx can be +a hothead or +he can be an +ice guy. In +the end, he's +a solid +individual! +--- +Bari thought I +had moved out +of town. +He was shocked +to see me! +--- +I can only get +Weetabix +around here. +I have to go +to Steve's +Town for Count +Chocula! +--- +Don't argue +with a frozen +Deadrock. +He'll never +change his +position! +--- +I offered a +drink to a +self-loathing +Ghini. +He said he +didn't like +spirits! +--- +I was supposed +to meet Gibdo +for lunch. +But he got +wrapped up in +something! +--- +Goriya sure +has changed +in this game. +I hope he +comes back +around! +--- +Hinox actually +wants to be a +lawyer. +Too bad he +bombed the +Bar exam! +--- +I'm surprised +Moblin's tusks +are so gross. +He always has +his Trident +with him! +--- +Don’t tell +Stalfos I’m +here. +He has a bone +to pick with +me! +--- +I got +Wallmaster to +help me move +furniture. +He was really +handy! +--- +Wizzrobe was +just here. +He always +vanishes right +before we get +the check! +--- +I shouldn't +have picked up +Zora's tab. +That guy +drinks like +a fish! +--- +I was sharing +a drink with +Poe. +For no reason, +he left in a +heartbeat! +--- +Don’t trust +horsemen on +Death Mountain +They’re Lynel +the time! +--- +Today's +special is +battered bat. +Got slapped +for offering a +lady a Keese! +--- +Don’t walk +under +propellered +pineapples. +You may end up +wearing +a pee hat! +--- +My girlfriend +burrowed under +the sand. +So I decided +to Leever! +--- +Geldman wants +to be a +Broadway star. +He’s always +practicing +Jazz Hands! +--- +Octoballoon +must be mad +at me. +He blows up +at the sight +of me! +--- +Toppo is a +total pothead. + +He hates it +when you take +away his grass +--- +I lost my +shield by +that house. +Why did they +put up a +Pikit fence?! +--- +Know that fox +in Steve’s +Town? +He’ll Pikku +pockets if you +aren't careful +--- +Dash through +Dark World +bushes. +You’ll see +Ganon is tryin +to Stal you! +--- +Eyegore! + +You gore! +We all gore +those jerks +with arrows! +--- +I like my +whiskey neat. + +Some prefer it +Octoroks! +--- +I consoled +Freezor over a +cup of coffee. +His problems +just seemed to +melt away! +--- +Magic droplets +of water don’t +shut up. +They just +Kyameron! +--- +I bought hot +wings for +Sluggula. +They gave him +explosive +diarrhea! +--- +Hardhat Beetle +won’t +Let It Be? +Tell it to Get +Back or give +it a Ticket to +Ride down +a hole! +--- diff --git a/worlds/smz3/TotalSMZ3/Text/Scripts/TriforceRoom.txt b/worlds/smz3/TotalSMZ3/Text/Scripts/TriforceRoom.txt new file mode 100644 index 00000000..219de761 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Scripts/TriforceRoom.txt @@ -0,0 +1,103 @@ + + G G +--- +All your base +are belong +to us. +--- +You have ended +the domination +of dr. wily +--- + thanks for + playing!!! +--- + + You Win! +--- + Thank you! + your quest + is over. +--- + A winner + is + you! +--- + + WINNER!! +--- + + I'm sorry + +but your +princess is in +another castle +--- + + success! +--- + Whelp… + that just + happened +--- + Oh hey… + it's you +--- + + Wheeeeee!! +--- + Time for + another one? +--- +and + + scene +--- + + GOT EM!! +--- + +THE VALUUUE!!! +--- +Cool seed, + +right? +--- + + We did it! +--- + Spam those + emotes in + wilds chat +--- + + O M G +--- + Hello. Will + you be my + friend? +--- + Beetorp + was + here! +--- +The Wind Fish +will wake +soon. Hoot! +--- +meow meow meow +meow meow meow + oh my god! +--- +Ahhhhhhhhh +Ya ya yaaaah +Ya ya yaaah +--- +.done + +.comment lol +--- +You get to +drink from +the firehose +--- diff --git a/worlds/smz3/TotalSMZ3/Text/StringTable.py b/worlds/smz3/TotalSMZ3/Text/StringTable.py new file mode 100644 index 00000000..4c198699 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/StringTable.py @@ -0,0 +1,87 @@ + +from typing import Any, List +import copy +from worlds.smz3.TotalSMZ3.Text.Dialog import Dialog +from worlds.smz3.TotalSMZ3.Text.Texts import text_folder +from yaml import load, Loader + +class StringTable: + + @staticmethod + def ParseEntries(resource: str): + with open(resource, 'rb') as f: + yaml = str(f.read(), "utf-8") + content = load(yaml, Loader) + + result = [] + for entryValue in content: + (key, value) = next(iter(entryValue.items())) + if isinstance(value, List): + result.append((key, value)) + elif isinstance(value, str): + result.append((key, Dialog.Compiled(value))) + elif isinstance(value, dict): + result.append((key, Dialog.Compiled(value["NoPause"], False))) + else: raise Exception(f"Did not expect an object of type {type(value)}") + return result + + template = ParseEntries.__func__(text_folder + "/Scripts/StringTable.yaml") + + def __init__(self): + self.entries = copy.deepcopy(StringTable.template) + + def SetSahasrahlaRevealText(self, text: str): + self.SetText("sahasrahla_quest_information", text) + + def SetBombShopRevealText(self, text: str): + self.SetText("bomb_shop", text) + + def SetBlindText(self, text: str): + self.SetText("blind_by_the_light", text) + + def SetTavernManText(self, text: str): + self.SetText("kakariko_tavern_fisherman", text) + + def SetGanonFirstPhaseText(self, text: str): + self.SetText("ganon_fall_in", text) + + def SetGanonThirdPhaseText(self, text: str): + self.SetText("ganon_phase_3", text) + + def SetTriforceRoomText(self, text: str): + self.SetText("end_triforce", "{NOBORDER}\n" + text) + + def SetPedestalText(self, text: str): + self.SetText("mastersword_pedestal_translated", text) + + def SetEtherText(self, text: str): + self.SetText("tablet_ether_book", text) + + def SetBombosText(self, text: str): + self.SetText("tablet_bombos_book", text) + + def SetText(self, name: str, text: str): + count = 0 + for key, value in self.entries: + if (key == name): + index = count + break + else: + count += 1 + self.entries[index] = (name, Dialog.Compiled(text)) + + def GetPaddedBytes(self): + return self.GetBytes(True) + + def GetBytes(self, pad = False): + maxBytes = 0x7355 + data = [] + for entry in self.entries: + data += entry[1] + + if (len(data) > maxBytes): + raise Exception(f"String Table exceeds 0x{maxBytes:X} bytes") + + if (pad and len(data) < maxBytes): + data += [0xFF] * (maxBytes - len(data)) + return data diff --git a/worlds/smz3/TotalSMZ3/Text/Texts.py b/worlds/smz3/TotalSMZ3/Text/Texts.py new file mode 100644 index 00000000..df60d19c --- /dev/null +++ b/worlds/smz3/TotalSMZ3/Text/Texts.py @@ -0,0 +1,97 @@ +from typing import Any, List +from worlds.smz3.TotalSMZ3.Region import Region +from worlds.smz3.TotalSMZ3.Regions.Zelda.GanonsTower import GanonsTower +from worlds.smz3.TotalSMZ3.Item import Item, ItemType +from yaml import load, Loader +import random +import os + +text_folder = os.path.dirname(__file__) + +class Texts: + @staticmethod + def ParseYamlScripts(resource: str): + with open(resource, 'rb') as f: + yaml = str(f.read(), "utf-8") + return load(yaml, Loader) + + @staticmethod + def ParseTextScript(resource: str): + with open(resource, 'r') as file: + return [text.rstrip('\n') for text in file.read().replace("\r", "").split("---\n") if text] + + scripts: Any = ParseYamlScripts.__func__(text_folder + "/Scripts/General.yaml") + blind: List[str] = ParseTextScript.__func__(text_folder + "/Scripts/Blind.txt") + ganon: List[str] = ParseTextScript.__func__(text_folder + "/Scripts/Ganon.txt") + tavernMan: List[str] = ParseTextScript.__func__(text_folder + "/Scripts/TavernMan.txt") + triforceRoom: List[str] = ParseTextScript.__func__(text_folder + "/Scripts/TriforceRoom.txt") + + @staticmethod + def SahasrahlaReveal(dungeon: Region): + text = Texts.scripts["SahasrahlaReveal"] + return text.replace("<dungeon>", dungeon.Area) + + @staticmethod + def BombShopReveal(dungeons: List[Region]): + text = Texts.scripts["BombShopReveal"] + return text.replace("<first>", dungeons[0].Area).replace("<second>", dungeons[1].Area) + + @staticmethod + def GanonThirdPhaseSingle(silvers: Region): + node = Texts.scripts["GanonSilversReveal"]["single"] + text = node["local" if isinstance(silvers, GanonsTower) else "remote"] + return text.replace("<region>", silvers.Area) + + @staticmethod + def GanonThirdPhaseMulti(silvers: Region, myWorld: int, silversWorld: int = None, silversPlayer: str = None): + node = Texts.scripts["GanonSilversReveal"]["multi"] + if silvers is None: + if (silversWorld == myWorld.Id): + return node["local"] + player = silversPlayer + else: + if (silvers.world == myWorld): + return node["local"] + player = silvers.world.Player + player = player.rjust(7 + len(player) // 2) + text = node["remote"] + return text.replace("<player>", player) + + @staticmethod + def ItemTextbox(item: Item): + nameMap = { + ItemType.BottleWithGoldBee : ItemType.BottleWithBee.name, + ItemType.HeartContainerRefill : ItemType.HeartContainer.name, + ItemType.OneRupee : "PocketRupees", + ItemType.FiveRupees : "PocketRupees", + ItemType.TwentyRupees : "CouchRupees", + ItemType.TwentyRupees2 : "CouchRupees", + ItemType.FiftyRupees : "CouchRupees", + ItemType.BombUpgrade5 : "BombUpgrade", + ItemType.BombUpgrade10 : "BombUpgrade", + ItemType.ArrowUpgrade5 : "ArrowUpgrade", + ItemType.ArrowUpgrade10 : "ArrowUpgrade", + item.Type : item.Type.name, + } + if item.IsMap(): name = "Map" + elif item.IsCompass(): name = "Compass" + elif item.IsKeycard(): name = "Keycard" + else: name = nameMap[item.Type] + + items = Texts.scripts["Items"] + return items.get(name, None) or items["default"] + + @staticmethod + def Blind(rnd: random): return Texts.RandomLine(rnd, Texts.blind) + + @staticmethod + def TavernMan(rnd: random): return Texts.RandomLine(rnd, Texts.tavernMan) + + @staticmethod + def GanonFirstPhase(rnd: random): return Texts.RandomLine(rnd, Texts.ganon) + + @staticmethod + def TriforceRoom(rnd: random): return Texts.RandomLine(rnd, Texts.triforceRoom) + + @staticmethod + def RandomLine(rnd: random, lines: List[str]): return lines[rnd.randrange(0, len(lines))] diff --git a/worlds/smz3/TotalSMZ3/Text/__init__.py b/worlds/smz3/TotalSMZ3/Text/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/TotalSMZ3/World.py b/worlds/smz3/TotalSMZ3/World.py new file mode 100644 index 00000000..14d68516 --- /dev/null +++ b/worlds/smz3/TotalSMZ3/World.py @@ -0,0 +1,166 @@ +from typing import Dict, List +import random + +import worlds.smz3.TotalSMZ3.Region as Region +import worlds.smz3.TotalSMZ3.Config as Config +import worlds.smz3.TotalSMZ3.Item as Item +import worlds.smz3.TotalSMZ3.Location as Location + +from worlds.smz3.TotalSMZ3.Regions.Zelda.CastleTower import CastleTower +from worlds.smz3.TotalSMZ3.Regions.Zelda.EasternPalace import EasternPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.DesertPalace import DesertPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.TowerOfHera import TowerOfHera +from worlds.smz3.TotalSMZ3.Regions.Zelda.PalaceOfDarkness import PalaceOfDarkness +from worlds.smz3.TotalSMZ3.Regions.Zelda.SwampPalace import SwampPalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.SkullWoods import SkullWoods +from worlds.smz3.TotalSMZ3.Regions.Zelda.ThievesTown import ThievesTown +from worlds.smz3.TotalSMZ3.Regions.Zelda.IcePalace import IcePalace +from worlds.smz3.TotalSMZ3.Regions.Zelda.MiseryMire import MiseryMire +from worlds.smz3.TotalSMZ3.Regions.Zelda.TurtleRock import TurtleRock +from worlds.smz3.TotalSMZ3.Regions.Zelda.GanonsTower import GanonsTower +from worlds.smz3.TotalSMZ3.Regions.Zelda.LightWorld.DeathMountain.West import West as LightWorldDeathMountainWest +from worlds.smz3.TotalSMZ3.Regions.Zelda.LightWorld.DeathMountain.East import East as LightWorldDeathMountainEast +from worlds.smz3.TotalSMZ3.Regions.Zelda.LightWorld.NorthWest import NorthWest as LightWorldNorthWest +from worlds.smz3.TotalSMZ3.Regions.Zelda.LightWorld.NorthEast import NorthEast as LightWorldNorthEast +from worlds.smz3.TotalSMZ3.Regions.Zelda.LightWorld.South import South as LightWorldSouth +from worlds.smz3.TotalSMZ3.Regions.Zelda.HyruleCastle import HyruleCastle +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.DeathMountain.West import West as DarkWorldDeathMountainWest +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.DeathMountain.East import East as DarkWorldDeathMountainEast +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.NorthWest import NorthWest as DarkWorldNorthWest +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.NorthEast import NorthEast as DarkWorldNorthEast +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.South import South as DarkWorldSouth +from worlds.smz3.TotalSMZ3.Regions.Zelda.DarkWorld.Mire import Mire as DarkWorldMire +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Crateria.Central import Central +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Crateria.West import West as CrateriaWest +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Crateria.East import East as CrateriaEast +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Brinstar.Blue import Blue +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Brinstar.Green import Green +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Brinstar.Kraid import Kraid +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Brinstar.Pink import Pink +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Brinstar.Red import Red +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Maridia.Outer import Outer +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.Maridia.Inner import Inner +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.NorfairUpper.West import West as NorfairUpperWest +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.NorfairUpper.East import East as NorfairUpperEast +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.NorfairUpper.Crocomire import Crocomire +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.NorfairLower.West import West as NorfairLowerWest +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.NorfairLower.East import East as NorfairLowerEast +from worlds.smz3.TotalSMZ3.Regions.SuperMetroid.WreckedShip import WreckedShip + +class World: + Locations: List[Location.Location] + Regions: List[Region.Region] + Config: Config.Config + Player: str + Guid: str + Id: int + + def Items(self): + return [l.Item for l in self.Locations if l.Item != None] + + locationLookup: Dict[str, Location.Location] + regionLookup: Dict[str, Region.Region] + + def GetLocation(self, name:str): return self.locationLookup[name] + def GetRegion(self, name:str): return self.regionLookup[name] + + def __init__(self, config: Config, player: str, id: int, guid: str): + self.Config = config + self.Player = player + self.Id = id + self.Guid = guid + + self.Regions = [ + CastleTower(self, self.Config), + EasternPalace(self, self.Config), + DesertPalace(self, self.Config), + TowerOfHera(self, self.Config), + PalaceOfDarkness(self, self.Config), + SwampPalace(self, self.Config), + SkullWoods(self, self.Config), + ThievesTown(self, self.Config), + IcePalace(self, self.Config), + MiseryMire(self, self.Config), + TurtleRock(self, self.Config), + GanonsTower(self, self.Config), + LightWorldDeathMountainWest(self, self.Config), + LightWorldDeathMountainEast(self, self.Config), + LightWorldNorthWest(self, self.Config), + LightWorldNorthEast(self, self.Config), + LightWorldSouth(self, self.Config), + HyruleCastle(self, self.Config), + DarkWorldDeathMountainWest(self, self.Config), + DarkWorldDeathMountainEast(self, self.Config), + DarkWorldNorthWest(self, self.Config), + DarkWorldNorthEast(self, self.Config), + DarkWorldSouth(self, self.Config), + DarkWorldMire(self, self.Config), + Central(self, self.Config), + CrateriaWest(self, self.Config), + CrateriaEast(self, self.Config), + Blue(self, self.Config), + Green(self, self.Config), + Kraid(self, self.Config), + Pink(self, self.Config), + Red(self, self.Config), + Outer(self, self.Config), + Inner(self, self.Config), + NorfairUpperWest(self, self.Config), + NorfairUpperEast(self, self.Config), + Crocomire(self, self.Config), + NorfairLowerWest(self, self.Config), + NorfairLowerEast(self, self.Config), + WreckedShip(self, self.Config) + ] + + self.Locations = [] + for r in self.Regions: + self.Locations = self.Locations + r.Locations + + self.regionLookup = {r.Name:r for r in self.Regions} + self.locationLookup = {loc.Name:loc for loc in self.Locations} + + for region in self.Regions: + region.GenerateLocationLookup() + + + def CanEnter(self, regionName: str, items: Item.Progression): + region = self.regionLookup[regionName] + if (region == None): + raise Exception(f"World.CanEnter: Invalid region name {regionName}", f'{regionName=}'.partition('=')[0]) + return region.CanEnter(items) + + def CanAquire(self, items: Item.Progression, reward: Region.RewardType): + return next(iter([region for region in self.Regions if isinstance(region, Region.IReward) and region.Reward == reward])).CanComplete(items) + + def CanAquireAll(self, items: Item.Progression, *rewards: Region.RewardType): + for region in self.Regions: + if issubclass(type(region), Region.IReward): + if (region.Reward in rewards): + if not region.CanComplete(items): + return False + return True + + # return all(region.CanComplete(items) for region in self.Regions if (isinstance(region, Region.IReward) and region.Reward in rewards)) + + def Setup(self, rnd: random): + self.SetMedallions(rnd) + self.SetRewards(rnd) + + def SetMedallions(self, rnd: random): + medallionMap = {0: Item.ItemType.Bombos, 1: Item.ItemType.Ether, 2: Item.ItemType.Quake} + regionList = [region for region in self.Regions if isinstance(region, Region.IMedallionAccess)] + for region in regionList: + region.Medallion = medallionMap[rnd.randint(0, 2)] + + def SetRewards(self, rnd: random): + rewards = [ + Region.RewardType.PendantGreen, Region.RewardType.PendantNonGreen, Region.RewardType.PendantNonGreen, Region.RewardType.CrystalRed, Region.RewardType.CrystalRed, + Region.RewardType.CrystalBlue, Region.RewardType.CrystalBlue, Region.RewardType.CrystalBlue, Region.RewardType.CrystalBlue, Region.RewardType.CrystalBlue + ] + rnd.shuffle(rewards) + regionList = [region for region in self.Regions if isinstance(region, Region.IReward) and region.Reward == Region.RewardType.Null] + for region in regionList: + region.Reward = rewards[0] + rewards.remove(region.Reward) + diff --git a/worlds/smz3/TotalSMZ3/__init__.py b/worlds/smz3/TotalSMZ3/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/worlds/smz3/__init__.py b/worlds/smz3/__init__.py new file mode 100644 index 00000000..adb79d11 --- /dev/null +++ b/worlds/smz3/__init__.py @@ -0,0 +1,438 @@ +import logging +import copy +import os +import random +import threading +import Patch +from typing import Dict, Set, TextIO + +from BaseClasses import Region, Entrance, Location, MultiWorld, Item, RegionType, CollectionState +from worlds.generic.Rules import add_rule, set_rule +import worlds.smz3.TotalSMZ3.Item as TotalSMZ3Item +from worlds.smz3.TotalSMZ3.World import World as TotalSMZ3World +from worlds.smz3.TotalSMZ3.Config import Config, GameMode, GanonInvincible, Goal, KeyShuffle, MorphLocation, SMLogic, SwordLocation, Z3Logic +from worlds.smz3.TotalSMZ3.Location import LocationType, locations_start_id, Location as TotalSMZ3Location +from worlds.smz3.TotalSMZ3.Patch import Patch as TotalSMZ3Patch, getWord, getWordArray +from ..AutoWorld import World, AutoLogicRegister +from .Rom import get_base_rom_bytes +from .ips import IPS_Patch +from .Options import smz3_options + +world_folder = os.path.dirname(__file__) +logger = logging.getLogger("SMZ3") + +class SMCollectionState(metaclass=AutoLogicRegister): + def init_mixin(self, parent: MultiWorld): + # for unit tests where MultiWorld is instantiated before worlds + if hasattr(parent, "state"): + self.smz3state = {player: TotalSMZ3Item.Progression([]) for player in parent.get_game_players("SMZ3")} + else: + self.smz3state = {} + + def copy_mixin(self, ret) -> CollectionState: + ret.smz3state = {player: copy.deepcopy(self.smz3state[player]) for player in self.world.get_game_players("SMZ3")} + return ret + + +class SMZ3World(World): + """ + A python port of Super Metroid & A Link To The Past Crossover Item Randomizer based on v11.2 of Total's SMZ3. + This is allowed as long as we keep features and logic as close as possible as the original. + """ + game: str = "SMZ3" + topology_present = False + data_version = 0 + options = smz3_options + item_names: Set[str] = frozenset(TotalSMZ3Item.lookup_name_to_id) + location_names: Set[str] + item_name_to_id = TotalSMZ3Item.lookup_name_to_id + location_name_to_id: Dict[str, int] = {key : locations_start_id + value.Id for key, value in TotalSMZ3World(Config({}), "", 0, "").locationLookup.items()} + + remote_items: bool = False + remote_start_inventory: bool = False + + def __init__(self, world: MultiWorld, player: int): + self.rom_name_available_event = threading.Event() + self.locations = {} + self.unreachable = [] + super().__init__(world, player) + + def generate_early(self): + config = Config({}) + config.GameMode = GameMode.Multiworld + config.Z3Logic = Z3Logic.Normal + config.SMLogic = SMLogic(self.world.sm_logic[self.player].value) + config.SwordLocation = SwordLocation(self.world.sword_location[self.player].value) + config.MorphLocation = MorphLocation(self.world.morph_location[self.player].value) + config.Goal = Goal.DefeatBoth + config.KeyShuffle = KeyShuffle(self.world.key_shuffle[self.player].value) + config.Keysanity = config.KeyShuffle != KeyShuffle.Null + config.GanonInvincible = GanonInvincible.BeforeCrystals + + self.local_random = random.Random(self.world.random.randint(0, 1000)) + self.smz3World = TotalSMZ3World(config, self.world.get_player_name(self.player), self.player, self.world.seed_name) + self.smz3DungeonItems = [] + SMZ3World.location_names = frozenset(self.smz3World.locationLookup.keys()) + + self.world.state.smz3state[self.player] = TotalSMZ3Item.Progression([]) + + def generate_basic(self): + self.smz3World.Setup(self.world.random) + self.dungeon = TotalSMZ3Item.Item.CreateDungeonPool(self.smz3World) + self.dungeon.reverse() + self.progression = TotalSMZ3Item.Item.CreateProgressionPool(self.smz3World) + self.keyCardsItems = TotalSMZ3Item.Item.CreateKeycards(self.smz3World) + + niceItems = TotalSMZ3Item.Item.CreateNicePool(self.smz3World) + junkItems = TotalSMZ3Item.Item.CreateJunkPool(self.smz3World) + allJunkItems = niceItems + junkItems + + if (self.smz3World.Config.Keysanity): + progressionItems = self.progression + self.dungeon + self.keyCardsItems + else: + progressionItems = self.progression + for item in self.keyCardsItems: + self.world.push_precollected(SMZ3Item(item.Type.name, False, item.Type, self.item_name_to_id[item.Type.name], self.player, item)) + + itemPool = [SMZ3Item(item.Type.name, True, item.Type, self.item_name_to_id[item.Type.name], self.player, item) for item in progressionItems] + \ + [SMZ3Item(item.Type.name, False, item.Type, self.item_name_to_id[item.Type.name], self.player, item) for item in allJunkItems] + self.smz3DungeonItems = [SMZ3Item(item.Type.name, True, item.Type, self.item_name_to_id[item.Type.name], self.player, item) for item in self.dungeon] + self.world.itempool += itemPool + + def set_rules(self): + # SM G4 is logically required to access Ganon's Tower in SMZ3 + self.world.completion_condition[self.player] = lambda state: \ + self.smz3World.GetRegion("Ganon's Tower").CanEnter(state.smz3state[self.player]) and \ + self.smz3World.GetRegion("Ganon's Tower").TowerAscend(state.smz3state[self.player]) + + for region in self.smz3World.Regions: + entrance = self.world.get_entrance('Menu' + "->" + region.Name, self.player) + set_rule(entrance, lambda state, region=region: region.CanEnter(state.smz3state[self.player])) + for loc in region.Locations: + l = self.locations[loc.Name] + if self.world.accessibility[self.player] != 'locations': + l.always_allow = lambda state, item, loc=loc: \ + item.game == "SMZ3" and \ + loc.alwaysAllow(TotalSMZ3Item.Item(TotalSMZ3Item.ItemType[item.name], self.smz3World), state.smz3state[self.player]) + old_rule = l.item_rule + l.item_rule = lambda item, loc=loc, region=region: (\ + item.game != "SMZ3" or \ + loc.allow(TotalSMZ3Item.Item(TotalSMZ3Item.ItemType[item.name], self.smz3World), None) and \ + region.CanFill(TotalSMZ3Item.Item(TotalSMZ3Item.ItemType[item.name], self.smz3World))) and old_rule(item) + set_rule(l, lambda state, loc=loc: loc.Available(state.smz3state[self.player])) + + def create_regions(self): + self.create_locations(self.player) + startRegion = self.create_region(self.world, self.player, 'Menu') + self.world.regions.append(startRegion) + + for region in self.smz3World.Regions: + currentRegion = self.create_region(self.world, self.player, region.Name, region.locationLookup.keys(), [region.Name + "->" + 'Menu']) + self.world.regions.append(currentRegion) + entrance = self.world.get_entrance(region.Name + "->" + 'Menu', self.player) + entrance.connect(startRegion) + exit = Entrance(self.player, 'Menu' + "->" + region.Name, startRegion) + startRegion.exits.append(exit) + exit.connect(currentRegion) + + def apply_sm_custom_sprite(self): + itemSprites = ["off_world_prog_item.bin", "off_world_item.bin"] + itemSpritesAddress = [0xF800, 0xF900] + idx = 0 + offworldSprites = {} + for fileName in itemSprites: + with open(world_folder + "/data/custom_sprite/" + fileName, 'rb') as stream: + buffer = bytearray(stream.read()) + offworldSprites[0x04Eff2 + 10*((0x6B + 0x40) + idx)] = bytearray(getWordArray(itemSpritesAddress[idx])) + buffer[0:8] + offworldSprites[0x090000 + itemSpritesAddress[idx]] = buffer[8:264] + idx += 1 + return offworldSprites + + def convert_to_sm_item_name(self, itemName): + charMap = { "A" : 0x3CE0, + "B" : 0x3CE1, + "C" : 0x3CE2, + "D" : 0x3CE3, + "E" : 0x3CE4, + "F" : 0x3CE5, + "G" : 0x3CE6, + "H" : 0x3CE7, + "I" : 0x3CE8, + "J" : 0x3CE9, + "K" : 0x3CEA, + "L" : 0x3CEB, + "M" : 0x3CEC, + "N" : 0x3CED, + "O" : 0x3CEE, + "P" : 0x3CEF, + "Q" : 0x3CF0, + "R" : 0x3CF1, + "S" : 0x3CF2, + "T" : 0x3CF3, + "U" : 0x3CF4, + "V" : 0x3CF5, + "W" : 0x3CF6, + "X" : 0x3CF7, + "Y" : 0x3CF8, + "Z" : 0x3CF9, + " " : 0x3C4E, + "!" : 0x3CFF, + "?" : 0x3CFE, + "'" : 0x3CFD, + "," : 0x3CFB, + "." : 0x3CFA, + "-" : 0x3CCF, + "_" : 0x000E, + "1" : 0x3C00, + "2" : 0x3C01, + "3" : 0x3C02, + "4" : 0x3C03, + "5" : 0x3C04, + "6" : 0x3C05, + "7" : 0x3C06, + "8" : 0x3C07, + "9" : 0x3C08, + "0" : 0x3C09, + "%" : 0x3C0A} + data = [] + + itemName = itemName.upper()[:26] + itemName = itemName.strip() + itemName = itemName.center(26, " ") + itemName = "___" + itemName + "___" + + for char in itemName: + (w0, w1) = getWord(charMap.get(char, 0x3C4E)) + data.append(w0) + data.append(w1) + return data + + def convert_to_lttp_item_name(self, itemName): + return bytearray(itemName[:19].center(19, " ") , 'utf8') + bytearray(0) + + def apply_item_names(self): + patch = {} + sm_remote_idx = 0 + lttp_remote_idx = 0 + for location in self.smz3World.Locations: + if self.world.worlds[location.APLocation.item.player].game != self.game: + if location.Type == LocationType.Visible or location.Type == LocationType.Chozo or location.Type == LocationType.Hidden: + patch[0x390000 + sm_remote_idx*64] = self.convert_to_sm_item_name(location.APLocation.item.name) + sm_remote_idx += 1 + progressionItem = (0 if location.APLocation.item.advancement else 0x8000) + sm_remote_idx + patch[0x386000 + (location.Id * 8) + 6] = bytearray(getWordArray(progressionItem)) + else: + patch[0x390000 + 100 * 64 + lttp_remote_idx * 20] = self.convert_to_lttp_item_name(location.APLocation.item.name) + lttp_remote_idx += 1 + progressionItem = (0 if location.APLocation.item.advancement else 0x8000) + lttp_remote_idx + patch[0x386000 + (location.Id * 8) + 6] = bytearray(getWordArray(progressionItem)) + + return patch + + def generate_output(self, output_directory: str): + try: + base_combined_rom = get_base_rom_bytes() + basepatch = IPS_Patch.load(world_folder + "/data/zsm.ips") + base_combined_rom = basepatch.apply(base_combined_rom) + + patcher = TotalSMZ3Patch(self.smz3World, + [world.smz3World for key, world in self.world.worlds.items() if isinstance(world, SMZ3World)], + self.world.seed_name, + self.world.seed, + self.local_random, + self.world.world_name_lookup, + next(iter(loc.player for loc in self.world.get_locations() if loc.item == self.create_item("SilverArrows")))) + patches = patcher.Create(self.smz3World.Config) + patches.update(self.apply_sm_custom_sprite()) + patches.update(self.apply_item_names()) + for addr, bytes in patches.items(): + offset = 0 + for byte in bytes: + base_combined_rom[addr + offset] = byte + offset += 1 + + outfilebase = 'AP_' + self.world.seed_name + outfilepname = f'_P{self.player}' + outfilepname += f"_{self.world.player_name[self.player].replace(' ', '_')}" \ + + filename = os.path.join(output_directory, f'{outfilebase}{outfilepname}.sfc') + with open(filename, "wb") as binary_file: + binary_file.write(base_combined_rom) + Patch.create_patch_file(filename, player=self.player, player_name=self.world.player_name[self.player], game=Patch.GAME_SMZ3) + os.remove(filename) + self.rom_name = bytearray(patcher.title, 'utf8') + except: + raise + finally: + self.rom_name_available_event.set() # make sure threading continues and errors are collected + + def modify_multidata(self, multidata: dict): + import base64 + if (not self.smz3World.Config.Keysanity): + for item_name in self.keyCardsItems: + item_id = self.item_name_to_id.get(item_name.Type.name, None) + try: + multidata["precollected_items"][self.player].remove(item_id) + except ValueError as e: + logger.warning(f"Attempted to remove nonexistent item id {item_id} from smz3 precollected items ({item_name})") + + # wait for self.rom_name to be available. + self.rom_name_available_event.wait() + rom_name = getattr(self, "rom_name", None) + # we skip in case of error, so that the original error in the output thread is the one that gets raised + if rom_name: + new_name = base64.b64encode(bytes(self.rom_name)).decode() + payload = multidata["connect_names"][self.world.player_name[self.player]] + multidata["connect_names"][new_name] = payload + del (multidata["connect_names"][self.world.player_name[self.player]]) + + def fill_slot_data(self): + slot_data = {} + return slot_data + + def collect(self, state: CollectionState, item: Item) -> bool: + state.smz3state[item.player].Add([TotalSMZ3Item.Item(TotalSMZ3Item.ItemType[item.name], self.smz3World)]) + if item.advancement: + state.prog_items[item.name, item.player] += 1 + return True # indicate that a logical state change has occured + return False + + def remove(self, state: CollectionState, item: Item) -> bool: + name = self.collect_item(state, item, True) + if name: + state.smz3state[item.player].Remove([TotalSMZ3Item.Item(TotalSMZ3Item.ItemType[item.name], self.smz3World)]) + state.prog_items[name, item.player] -= 1 + if state.prog_items[name, item.player] < 1: + del (state.prog_items[name, item.player]) + return True + return False + + def create_item(self, name: str) -> Item: + return SMZ3Item(name, True, TotalSMZ3Item.ItemType[name], self.item_name_to_id[name], player = self.player) + + def pre_fill(self): + from Fill import fill_restrictive + self.InitialFillInOwnWorld() + + if (not self.smz3World.Config.Keysanity): + locations = [loc for loc in self.locations.values() if loc.item is None] + self.world.random.shuffle(locations) + + all_state = self.world.get_all_state(False) + for item in self.smz3DungeonItems: + all_state.remove(item) + + all_dungeonItems = self.smz3DungeonItems[:] + fill_restrictive(self.world, all_state, locations, all_dungeonItems, True, True) + # some small or big keys (those always_allow) can be unreachable in-game + # while logic still collects some of them (probably to simulate the player collecting pot keys in the logic), some others don't + # so we need to remove those exceptions as progression items + if self.world.accessibility[self.player] != 'locations': + exception_item = [TotalSMZ3Item.ItemType.BigKeySW, TotalSMZ3Item.ItemType.BigKeySP, TotalSMZ3Item.ItemType.KeyTH] + for item in self.smz3DungeonItems: + if item.item.Type in exception_item and item.location.always_allow(all_state, item) and not all_state.can_reach(item.location): + item.advancement = False + item.item.Progression = False + item.location.event = False + self.unreachable.append(item.location) + + def get_pre_fill_items(self): + if (not self.smz3World.Config.Keysanity): + return self.smz3DungeonItems + else: + return [] + + def write_spoiler(self, spoiler_handle: TextIO): + self.world.spoiler.unreachables.update(self.unreachable) + + def FillItemAtLocation(self, itemPool, itemType, location): + itemToPlace = TotalSMZ3Item.Item.Get(itemPool, itemType, self.smz3World) + if (itemToPlace == None): + raise Exception(f"Tried to place item {itemType} at {location.Name}, but there is no such item in the item pool") + else: + location.Item = itemToPlace + itemFromPool = next((i for i in self.world.itempool if i.player == self.player and i.name == itemToPlace.Type.name), None) + if itemFromPool is not None: + self.world.get_location(location.Name, self.player).place_locked_item(itemFromPool) + self.world.itempool.remove(itemFromPool) + else: + itemFromPool = next((i for i in self.smz3DungeonItems if i.player == self.player and i.name == itemToPlace.Type.name), None) + if itemFromPool is not None: + self.world.get_location(location.Name, self.player).place_locked_item(itemFromPool) + self.smz3DungeonItems.remove(itemFromPool) + itemPool.remove(itemToPlace) + + def FrontFillItemInOwnWorld(self, itemPool, itemType): + item = TotalSMZ3Item.Item.Get(itemPool, itemType, self.smz3World) + location = next(iter(self.world.random.sample(TotalSMZ3Location.AvailableGlobal(TotalSMZ3Location.Empty(self.smz3World.Locations), self.smz3World.Items()), 1)), None) + if (location == None): + raise Exception(f"Tried to front fill {item.Name} in, but no location was available") + + location.Item = item + itemFromPool = next((i for i in self.world.itempool if i.player == self.player and i.name == item.Type.name), None) + if itemFromPool is not None: + self.world.get_location(location.Name, self.player).place_locked_item(itemFromPool) + self.world.itempool.remove(itemFromPool) + itemPool.remove(item) + + def InitialFillInOwnWorld(self): + self.FillItemAtLocation(self.dungeon, TotalSMZ3Item.ItemType.KeySW, self.smz3World.GetLocation("Skull Woods - Pinball Room")) + + # /* Check Swords option and place as needed */ + if self.smz3World.Config.SwordLocation == SwordLocation.Uncle: + self.FillItemAtLocation(self.progression, TotalSMZ3Item.ItemType.ProgressiveSword, self.smz3World.GetLocation("Link's Uncle")) + elif self.smz3World.Config.SwordLocation == SwordLocation.Early: + self.FrontFillItemInOwnWorld(self.progression, TotalSMZ3Item.ItemType.ProgressiveSword) + + # /* Check Morph option and place as needed */ + if self.smz3World.Config.MorphLocation == MorphLocation.Original: + self.FillItemAtLocation(self.progression, TotalSMZ3Item.ItemType.Morph, self.smz3World.GetLocation("Morphing Ball")) + elif self.smz3World.Config.MorphLocation == MorphLocation.Early: + self.FrontFillItemInOwnWorld(self.progression, TotalSMZ3Item.ItemType.Morph) + + # /* We place a PB and Super in Sphere 1 to make sure the filler + # * doesn't start locking items behind this when there are a + # * high chance of the trash fill actually making them available */ + self.FrontFillItemInOwnWorld(self.progression, TotalSMZ3Item.ItemType.Super) + self.FrontFillItemInOwnWorld(self.progression, TotalSMZ3Item.ItemType.PowerBomb) + + def create_locations(self, player: int): + for name, id in SMZ3World.location_name_to_id.items(): + newLoc = SMZ3Location(player, name, id) + self.locations[name] = newLoc + self.smz3World.locationLookup[name].APLocation = newLoc + + def create_region(self, world: MultiWorld, player: int, name: str, locations=None, exits=None): + ret = Region(name, RegionType.LightWorld, name, player) + ret.world = world + if locations: + for loc in locations: + location = self.locations[loc] + location.parent_region = ret + ret.locations.append(location) + if exits: + for exit in exits: + ret.exits.append(Entrance(player, exit, ret)) + return ret + + +class SMZ3Location(Location): + game: str = "SMZ3" + + def __init__(self, player: int, name: str, address=None, parent=None): + super(SMZ3Location, self).__init__(player, name, address, parent) + + def can_fill(self, state: CollectionState, item: Item, check_access=True) -> bool: + oldItem = self.item + self.item = item + result = self.always_allow(state, item) or (self.item_rule(item) and (not check_access or self.can_reach(state))) + self.item = oldItem + return result + +class SMZ3Item(Item): + game = "SMZ3" + + def __init__(self, name, advancement, type, code, player: int = None, item = None): + self.type = type + self.item = item + super(SMZ3Item, self).__init__(name, advancement, code, player) \ No newline at end of file diff --git a/worlds/smz3/data/custom_sprite/off_world_item.bin b/worlds/smz3/data/custom_sprite/off_world_item.bin new file mode 100644 index 0000000000000000000000000000000000000000..92e4a1d0c0b575233dd6fe4dc6304c839adf0ff3 GIT binary patch literal 264 zcmZ|IF%E)25CzabEQTvgVFHDT4JC!eL<n}4cpbCsu`D-~l%9ZM4?$&|bz`t`k}3ZD zWF8Sfx;g{{!z7Rx$e5xi%eEayYbBl>JUqM9JLmnftZN9<)b}EMkX|l)M2SNG5Q|tD z`HVesWSV0?alnd2|2Rb~Uby3g3Z3TUXG{(1e|{JJ)NlSg4@2~uYkm9m8(SxT_wjS> LpPOHO{YUcO7*RZ} literal 0 HcmV?d00001 diff --git a/worlds/smz3/data/custom_sprite/off_world_prog_item.bin b/worlds/smz3/data/custom_sprite/off_world_prog_item.bin new file mode 100644 index 0000000000000000000000000000000000000000..3af0d35096ddc9613d2f89aee49edd917d89013d GIT binary patch literal 264 zcmZQ%WME(fVjy5-U}j*JV6<Vd0dW|anc3Op<?Ze3>+9-lY&bY%rr15IKWMkePRUM5 zMy8|V&Yge%{{R061R!|{6&oiTX9;x%c?Nc%IgAoEHgz`j5_SwS3@i*xKt4$Rki-*) z9}Eu|4lpzTEvaMp$56vy!Jxq40OUjLXOdtvVbH;4e-b|XO}uo1k?l9B(}CE}3b7w3 Me+i5IJ0SK004qg9(EtDd literal 0 HcmV?d00001 diff --git a/worlds/smz3/data/zsm.ips b/worlds/smz3/data/zsm.ips new file mode 100644 index 0000000000000000000000000000000000000000..faf7443a573a49fd7eab0f80588382f043753394 GIT binary patch literal 1460417 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%0D~9zcZ&l9b0Z= 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�sHG2_B~uH8JglZjtVv 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%0AFZ}I&T3lMN2>_AH>n#T_ok&j zzKW20)4D#sijaHLx<0;&kbBd*KE8^Ody~2ma&KDd<Esd{H?8aAs|dL_t?T2f2)Q?{ z>*K2kxi_ur<Esd{H>n#T_ok&jzKW20)4D#sijaHLx<0;&kbBd*KE8^Ody~4my!t9a z?oI3ZXcZy%rgeR^ijaHLx;|P($h~P@AFU$f-lT4X+?$sAWH3VRP3!t(FhcH4>-uCc zLheoL`eZOd?oI3ZWH3VRP3lI-y=keBuOj5$w62e@BIMq*u8*%G<leNdkFO%+-lT4X z+?$sA_$or~P3!vjDnjl}>-zXALheoL`uHkB?oI3Z_$or~P3lI-y=keBuOj5$w62e@ zBIMq*u8*%G<leNdkFO%+e%iW1SIx1gN}KbQN}JP4rOo+DrOj!j(&l`n(&n^MX>-0( zX>(esv^if1Yx-!l%}XmEZdc1bTKRCh>iTHq!|kf;qm>W0tFDh$qGdB5M-g=&Uquo3 zCLHU-?W*bHD<5uGT_0chaJ%aI_{xXdH6I_XqKJDFYWQ%wTK4gk54WqXkFR{VU3GnY z<-_f&>*FgQZr9rT_$rFHH=(2tx2t6zU-@vm>iYP~huc-x$5%ewE?)QXl@GV8u1~l7 zaJ%aIXywE0s_Ubb54WqXk5)e1F3I=NDvG!_;T#`sSIa&b^x<~Z^~s<Qx2vvC27S0) zb$v4E!|l?NJ{gQ6?oBA^!|iI>$5%ewuDU+H^5J&X_3@Ptx63N{_$rFHH=%|Px2t6z zU-@vm>iYP~huc-x$5%ewuDU+H^5J$_P#<4K5%(sP^x<~3?BgpRZdY9&U-@vm>iYP~ zhuei1n)8)Po6}0A&2_s<oAZ@Qo6}0A&G|~D&1t35=6t2n=Co32bG{OO^3lqN+f~;` zD<5uGT_3G{xLtL9wDRG0)%DTJhueiFeYEo7cGdOKO31F6N1(bsTFJKi>iTFU{q3vk zqm^W|d0p|Huhb`lKHM(U?xU3tx2vX)RzBRWx;|R@aJ%aIXywE0nvaiGKHRRlK3e&3 zyXyLA<-_f&>!Xzqx2vv?R=d1><-_e-d!G#YaJ%aIWYCA(Ro5qjKHRRlJ{k1kc5$;$ z27S0)b$zt*;da&a(aMM0Ro6!=A8uD&AFX`2U9#<?l@GV8u8&qe+^)JlTKRCh>iTHq z!|kf;qm>W0OVjyi<-_f&>!Xzqx2vv?RzBRWx;|R@aJ%aIXywE0()&JI`Ea}H`e^0D z?W*gel@GV8u8&qe+^)JlTKRChtYC9mskFHrRB3ZsskFHrRB3ZsskFHrRB3ZsskFHr zRB3ZsskFHr6ejS|%7@!k*GDTKZdY9&t$es$b$zt*;da&a(aMM0g^+x-^5J&X_0h_Q z+f~;`D<5uGT_3G{xLtL9wDRG0;YA;<<Uch-^{VTml@GV8u8&s2LB4){w34m!)%DRz z`mA|f$*8Z?M=Pz8udYvD`Ea|+e6;f6cGdOK%7@!k*GH>eURwEZyXNDgl@GV8u8*&L zxLtL9eC5OKs_Ww`A8ywQ`S{9*+f~;`D<5uGT_3G{xLtL9wDRG0)%DTJhug)kK3e&3 zyXyLA<-_f&>!Xzqx2vv?RzBRWx;|R@aJ!_}M=Kw0S6v^ie7Ie8eYEo7cGdOK%7@!k z*GDTKZkI0e(aMM0Ro6!=A8uD&AFX`2U3Go5^5J&X_0h_Q+jl{!=Co32b33Tg=Co32 zb33Tg=Co32b33Tg=Co32b33Tg=Co32b2}(I=cAPmx2vwB)yIzf>)4bP|IhDy;C}<a CHoles literal 0 HcmV?d00001 diff --git a/worlds/smz3/ips.py b/worlds/smz3/ips.py new file mode 100644 index 00000000..0da2bd49 --- /dev/null +++ b/worlds/smz3/ips.py @@ -0,0 +1,252 @@ +import itertools + +def range_union(ranges): + ret = [] + for rg in sorted([[r.start, r.stop] for r in ranges]): + begin, end = rg[0], rg[-1] + if ret and ret[-1][1] > begin: + ret[-1][1] = max(ret[-1][1], end) + else: + ret.append([begin, end]) + return [range(r[0], r[1]) for r in ret] + +# adapted from ips-util for python 3.2 (https://pypi.org/project/ips-util/) +class IPS_Patch(object): + def __init__(self, patchDict=None): + self.records = [] + self.truncate_length = None + self.max_size = 0 + if patchDict is not None: + for addr, data in patchDict.items(): + byteData = bytearray(data) + self.add_record(addr, byteData) + + def toDict(self): + ret = {} + for record in self.records: + if 'rle_count' in record: + ret[record['address']] = [int.from_bytes(record['data'],'little')]*record['rle_count'] + else: + ret[record['address']] = [int(b) for b in record['data']] + return ret + + @staticmethod + def load(filename): + loaded_patch = IPS_Patch() + with open(filename, 'rb') as file: + header = file.read(5) + if header != b'PATCH': + raise Exception('Not a valid IPS patch file!') + while True: + address_bytes = file.read(3) + if address_bytes == b'EOF': + break + address = int.from_bytes(address_bytes, byteorder='big') + length = int.from_bytes(file.read(2), byteorder='big') + rle_count = 0 + if length == 0: + rle_count = int.from_bytes(file.read(2), byteorder='big') + length = 1 + data = file.read(length) + if rle_count > 0: + loaded_patch.add_rle_record(address, data, rle_count) + else: + loaded_patch.add_record(address, data) + + truncate_bytes = file.read(3) + if len(truncate_bytes) == 3: + loaded_patch.set_truncate_length(int.from_bytes(truncate_bytes, byteorder='big')) + return loaded_patch + + @staticmethod + def create(original_data, patched_data): + # The heuristics for optimizing a patch were chosen with reference to + # the source code of Flips: https://github.com/Alcaro/Flips + + patch = IPS_Patch() + + run_in_progress = False + current_run_start = 0 + current_run_data = bytearray() + + runs = [] + + if len(original_data) > len(patched_data): + patch.set_truncate_length(len(patched_data)) + original_data = original_data[:len(patched_data)] + elif len(original_data) < len(patched_data): + original_data += bytes([0] * (len(patched_data) - len(original_data))) + + if original_data[-1] == 0 and patched_data[-1] == 0: + patch.add_record(len(patched_data) - 1, bytes([0])) + + for index, (original, patched) in enumerate(zip(original_data, patched_data)): + if not run_in_progress: + if original != patched: + run_in_progress = True + current_run_start = index + current_run_data = bytearray([patched]) + else: + if original == patched: + runs.append((current_run_start, current_run_data)) + run_in_progress = False + else: + current_run_data.append(patched) + if run_in_progress: + runs.append((current_run_start, current_run_data)) + + for start, data in runs: + if start == int.from_bytes(b'EOF', byteorder='big'): + start -= 1 + data = bytes([patched_data[start - 1]]) + data + + grouped_byte_data = list([ + {'val': key, 'count': sum(1 for _ in group), 'is_last': False} + for key,group in itertools.groupby(data) + ]) + + grouped_byte_data[-1]['is_last'] = True + + record_in_progress = bytearray() + pos = start + + for group in grouped_byte_data: + if len(record_in_progress) > 0: + # We don't want to interrupt a record in progress with a new header unless + # this group is longer than two complete headers. + if group['count'] > 13: + patch.add_record(pos, record_in_progress) + pos += len(record_in_progress) + record_in_progress = bytearray() + + patch.add_rle_record(pos, bytes([group['val']]), group['count']) + pos += group['count'] + else: + record_in_progress += bytes([group['val']] * group['count']) + elif (group['count'] > 3 and group['is_last']) or group['count'] > 8: + # We benefit from making this an RLE record if the length is at least 8, + # or the length is at least 3 and we know it to be the last part of this diff. + + # Make sure not to overflow the maximum length. Split it up if necessary. + remaining_length = group['count'] + while remaining_length > 0xffff: + patch.add_rle_record(pos, bytes([group['val']]), 0xffff) + remaining_length -= 0xffff + pos += 0xffff + + patch.add_rle_record(pos, bytes([group['val']]), remaining_length) + pos += remaining_length + else: + # Just begin a new standard record. + record_in_progress += bytes([group['val']] * group['count']) + + if len(record_in_progress) > 0xffff: + patch.add_record(pos, record_in_progress[:0xffff]) + record_in_progress = record_in_progress[0xffff:] + pos += 0xffff + + # Finalize any record still in progress. + if len(record_in_progress) > 0: + patch.add_record(pos, record_in_progress) + + return patch + + def add_record(self, address, data): + if address == int.from_bytes(b'EOF', byteorder='big'): + raise RuntimeError('Start address {0:x} is invalid in the IPS format. Please shift your starting address back by one byte to avoid it.'.format(address)) + if address > 0xffffff: + raise RuntimeError('Start address {0:x} is too large for the IPS format. Addresses must fit into 3 bytes.'.format(address)) + if len(data) > 0xffff: + raise RuntimeError('Record with length {0} is too large for the IPS format. Records must be less than 65536 bytes.'.format(len(data))) + if len(data) == 0: # ignore empty records + return + record = {'address': address, 'data': data, 'size':len(data)} + self.appendRecord(record) + + def add_rle_record(self, address, data, count): + if address == int.from_bytes(b'EOF', byteorder='big'): + raise RuntimeError('Start address {0:x} is invalid in the IPS format. Please shift your starting address back by one byte to avoid it.'.format(address)) + if address > 0xffffff: + raise RuntimeError('Start address {0:x} is too large for the IPS format. Addresses must fit into 3 bytes.'.format(address)) + if count > 0xffff: + raise RuntimeError('RLE record with length {0} is too large for the IPS format. RLE records must be less than 65536 bytes.'.format(count)) + if len(data) != 1: + raise RuntimeError('Data for RLE record must be exactly one byte! Received {0}.'.format(data)) + record = {'address': address, 'data': data, 'rle_count': count, 'size': count} + self.appendRecord(record) + + def appendRecord(self, record): + sz = record['address'] + record['size'] + if sz > self.max_size: + self.max_size = sz + self.records.append(record) + + def set_truncate_length(self, truncate_length): + self.truncate_length = truncate_length + + def encode(self): + encoded_bytes = bytearray() + + encoded_bytes += 'PATCH'.encode('ascii') + + for record in self.records: + encoded_bytes += record['address'].to_bytes(3, byteorder='big') + if 'rle_count' in record: + encoded_bytes += (0).to_bytes(2, byteorder='big') + encoded_bytes += record['rle_count'].to_bytes(2, byteorder='big') + else: + encoded_bytes += len(record['data']).to_bytes(2, byteorder='big') + encoded_bytes += record['data'] + + encoded_bytes += 'EOF'.encode('ascii') + + if self.truncate_length is not None: + encoded_bytes += self.truncate_length.to_bytes(3, byteorder='big') + + return encoded_bytes + + # save patch into IPS file + def save(self, path): + with open(path, 'wb') as ipsFile: + ipsFile.write(self.encode()) + + # applies patch on an existing bytearray + def apply(self, in_data): + out_data = bytearray(in_data) + + for record in self.records: + if record['address'] >= len(out_data): + out_data += bytes([0] * (record['address'] - len(out_data) + 1)) + + if 'rle_count' in record: + out_data[record['address'] : record['address'] + record['rle_count']] = b''.join([record['data']] * record['rle_count']) + else: + out_data[record['address'] : record['address'] + len(record['data'])] = record['data'] + + if self.truncate_length is not None: + out_data = out_data[:self.truncate_length] + + return out_data + + # applies patch on an opened file + def applyFile(self, handle): + for record in self.records: + handle.seek(record['address']) + if 'rle_count' in record: + handle.write(bytearray(b'').join([record['data']]) * record['rle_count']) + else: + handle.write(record['data']) + + # appends an IPS_Patch on top of this one + def append(self, patch): + if patch.truncate_length is not None and (self.truncate_length is None or patch.truncate_length > self.truncate_length): + self.set_truncate_length(patch.truncate_length) + for record in patch.records: + if record['size'] > 0: # ignore empty records + self.appendRecord(record) + + # gets address ranges written to by this patch + def getRanges(self): + def getRange(record): + return range(record['address'], record['address']+record['size']) + return range_union([getRange(record) for record in self.records])