More glitched fixes

This commit is contained in:
Kris Davie
2025-03-16 07:30:41 +01:00
committed by aerinon
parent 265578dca5
commit 7cba411e45
2 changed files with 18 additions and 1 deletions

View File

@@ -368,7 +368,17 @@ def generate_itempool(world, player):
or (item.map and world.mapshuffle[player]) or (item.map and world.mapshuffle[player])
or (item.compass and world.compassshuffle[player]))]) or (item.compass and world.compassshuffle[player]))])
if world.logic[player] == 'hybridglitches' and world.pottery[player] not in ['none', 'cave']:
keys_to_remove = 2
to_remove = []
for wix, wi in enumerate(world.itempool):
if wi.name == 'Small Key (Swamp Palace)' and wi.player == player:
to_remove.append(wix)
if keys_to_remove == len(to_remove):
break
for wix in reversed(to_remove):
del world.itempool[wix]
# logic has some branches where having 4 hearts is one possible requirement (of several alternatives) # logic has some branches where having 4 hearts is one possible requirement (of several alternatives)
# rather than making all hearts/heart pieces progression items (which slows down generation considerably) # rather than making all hearts/heart pieces progression items (which slows down generation considerably)
# We mark one random heart container as an advancement item (or 4 heart pieces in expert mode) # We mark one random heart container as an advancement item (or 4 heart pieces in expert mode)

7
Rom.py
View File

@@ -463,6 +463,13 @@ def patch_rom(world, rom, player, team, is_mystery=False):
rom.write_byte(location.player_address, location.item.player) rom.write_byte(location.player_address, location.item.player)
else: else:
itemid = 0x5A itemid = 0x5A
if not location.locked and ((location.item.smallkey and world.keyshuffle[player] == 'none') or (
location.item.bigkey and world.bigkeyshuffle[player] == 'none') or (
location.item.map and world.mapshuffle[player] == 'none') or (
location.item.compass and world.compassshuffle[player] == 'none')):
itemid = handle_native_dungeon(location, itemid)
rom.write_byte(location.address, itemid) rom.write_byte(location.address, itemid)
else: else:
# crystals # crystals