diff --git a/Main.py b/Main.py index 3e9248ab..fa8b8bdf 100644 --- a/Main.py +++ b/Main.py @@ -24,7 +24,7 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute from ItemList import generate_itempool, difficulties, fill_prizes, fill_specific_items from Utils import output_path, parse_player_names -__version__ = '0.2.0.11u' +__version__ = '0.2.0.12u' class EnemizerError(RuntimeError): pass @@ -209,6 +209,9 @@ def main(args, seed=None, fish=None): or world.enemy_health[player] != 'default' or world.enemy_damage[player] != 'default' or args.shufflepots[player] or sprite_random_on_hit) + if use_enemizer: + base_patch = LocalRom(args.rom) # update base2current.json + rom = JsonRom() if args.jsonout or use_enemizer else LocalRom(args.rom) if use_enemizer and (args.enemizercli or not args.jsonout): diff --git a/README.md b/README.md index 964891e3..5a224b15 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,11 @@ Please just DM me on discord for now. I (Aerinon) can be found at the [ALTTP Ran # Installation -Clone this repository and then run ```DungeonRandomizer.py``` (requires Python 3). +Install Python 3 + +Run ```pip install python-bps-continued```. On Linux, you should use pip3. On Windows, you may need to run ```python -m pip install python-bps-continued``` or ```py -m pip install python-bps-continued```. + +Clone this repository then run ```DungeonRandomizer.py```. Alternatively, run ```Gui.py``` for a simple graphical user interface. (WIP) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 427ddb4e..b96e4fc8 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -36,13 +36,16 @@ otherwise unconnected logically can be reach using these glitches. To prevent th # Bug Fixes -* 2.0.11u +* 2.0.12u * Option to keep original palettes in crossed dungeon mode * If sanc if in a DW dungeon because of crossed+ ER, then you start in bunny form * Mirroring from sanc to the portal is now in logic * Another fix for animated tiles (fairy fountains) * GT Big Key stat fixed on credits * Todo: Standard logic fixes for lobbies +* 2.0.11u + * Fix output path setting in settings.json + * Fix trock entrances when intensity <= 2 * 2.0.10u * Fix POD, TR, GT and SKULL 3 entrance if sanc ends up in that dungeon in crossed ER+ * TR Lobbies that need a bomb and can be entered before bombing should be pre-opened diff --git a/Rom.py b/Rom.py index 0c1b0158..fb6b7fb6 100644 --- a/Rom.py +++ b/Rom.py @@ -16,6 +16,7 @@ from DoorShuffle import compass_data, DROptions, boss_indicator from Dungeons import dungeon_music_addresses from KeyDoorShuffle import count_locations_exclude_logic from Regions import location_table +from RoomData import DoorKind from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts, junk_texts from Text import KingsReturn_texts, Sanctuary_texts, Kakariko_texts, Blacksmiths_texts, DeathMountain_texts, LostWoods_texts, WishingWell_texts, DesertPalace_texts, MountainTower_texts, LinksHouse_texts, Lumberjacks_texts, SickKid_texts, FluteBoy_texts, Zora_texts, MagicShop_texts, Sahasrahla_names @@ -1414,13 +1415,11 @@ def patch_rom(world, rom, player, team, enemized): # fix trock doors for reverse entrances if world.fix_trock_doors[player]: + # do this unconditionally + world.get_room(0x23, player).change(0, DoorKind.CaveEntrance) + world.get_room(0xd5, player).change(0, DoorKind.CaveEntrance) rom.write_byte(0xFED31, 0x0E) # preopen bombable exit rom.write_byte(0xFEE41, 0x0E) # preopen bombable exit - # included unconditionally in base2current - #rom.write_byte(0xFE465, 0x1E) # remove small key door on backside of big key door - else: - rom.write_byte(0xFED31, 0x2A) # preopen bombable exit - rom.write_byte(0xFEE41, 0x2A) # preopen bombable exit if world.doorShuffle[player] != 'vanilla' or world.keydropshuffle[player]: for room in world.rooms: diff --git a/source/gui/bottom.py b/source/gui/bottom.py index 5e43b9d1..4d548adc 100644 --- a/source/gui/bottom.py +++ b/source/gui/bottom.py @@ -268,7 +268,7 @@ def create_guiargs(parent): guiargs.randomSprite = parent.randomSprite.get() # Get output path - guiargs.outputpath = parent.outputPath.get() + guiargs.outputpath = parent.settings["outputpath"] guiargs = update_deprecated_args(guiargs)