Merged DR v1.0.1.2
This commit is contained in:
1
Fill.py
1
Fill.py
@@ -123,7 +123,6 @@ def fill_restrictive(world, base_state, locations, itempool, key_pool=None, sing
|
|||||||
raise FillError('No more spots to place %s' % item_to_place)
|
raise FillError('No more spots to place %s' % item_to_place)
|
||||||
|
|
||||||
world.push_item(spot_to_fill, item_to_place, False)
|
world.push_item(spot_to_fill, item_to_place, False)
|
||||||
# todo: remove key item from key_pool
|
|
||||||
if item_to_place.smallkey:
|
if item_to_place.smallkey:
|
||||||
with suppress(ValueError):
|
with suppress(ValueError):
|
||||||
key_pool.remove(item_to_place)
|
key_pool.remove(item_to_place)
|
||||||
|
|||||||
24
ItemList.py
24
ItemList.py
@@ -1155,27 +1155,3 @@ def test():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
test()
|
test()
|
||||||
|
|
||||||
|
|
||||||
def fill_specific_items(world):
|
|
||||||
keypool = [item for item in world.itempool if item.smallkey]
|
|
||||||
cage = world.get_location('Tower of Hera - Basement Cage', 1)
|
|
||||||
c_dungeon = cage.parent_region.dungeon
|
|
||||||
key_item = next(x for x in keypool if c_dungeon.name in x.name or (c_dungeon.name == 'Hyrule Castle' and 'Escape' in x.name))
|
|
||||||
world.itempool.remove(key_item)
|
|
||||||
all_state = world.get_all_state(True)
|
|
||||||
fill_restrictive(world, all_state, [cage], [key_item])
|
|
||||||
|
|
||||||
location = world.get_location('Tower of Hera - Map Chest', 1)
|
|
||||||
key_item = next(x for x in world.itempool if 'Byrna' in x.name)
|
|
||||||
world.itempool.remove(key_item)
|
|
||||||
fast_fill(world, [key_item], [location])
|
|
||||||
|
|
||||||
|
|
||||||
# somaria = next(item for item in world.itempool if item.name == 'Cane of Somaria')
|
|
||||||
# shooter = world.get_location('Palace of Darkness - Shooter Room', 1)
|
|
||||||
# world.itempool.remove(somaria)
|
|
||||||
# all_state = world.get_all_state(True)
|
|
||||||
# fill_restrictive(world, all_state, [shooter], [somaria])
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
8
Main.py
8
Main.py
@@ -32,7 +32,7 @@ from Utils import output_path, parse_player_names
|
|||||||
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
||||||
from source.tools.BPS import create_bps_from_data
|
from source.tools.BPS import create_bps_from_data
|
||||||
|
|
||||||
__version__ = '1.0.1.1-u'
|
__version__ = '1.0.1.2-u'
|
||||||
|
|
||||||
from source.classes.BabelFish import BabelFish
|
from source.classes.BabelFish import BabelFish
|
||||||
|
|
||||||
@@ -695,11 +695,7 @@ def copy_dynamic_regions_and_locations(world, ret):
|
|||||||
for location in world.dynamic_locations:
|
for location in world.dynamic_locations:
|
||||||
new_reg = ret.get_region(location.parent_region.name, location.parent_region.player)
|
new_reg = ret.get_region(location.parent_region.name, location.parent_region.player)
|
||||||
new_loc = Location(location.player, location.name, location.address, location.crystal, location.hint_text, new_reg)
|
new_loc = Location(location.player, location.name, location.address, location.crystal, location.hint_text, new_reg)
|
||||||
# todo: this is potentially dangerous. later refactor so we
|
new_loc.type = location.type
|
||||||
# can apply dynamic region rules on top of copied world like other rules
|
|
||||||
new_loc.access_rule = location.access_rule
|
|
||||||
new_loc.always_allow = location.always_allow
|
|
||||||
new_loc.item_rule = location.item_rule
|
|
||||||
new_reg.locations.append(new_loc)
|
new_reg.locations.append(new_loc)
|
||||||
|
|
||||||
ret.clear_location_cache()
|
ret.clear_location_cache()
|
||||||
|
|||||||
@@ -183,6 +183,11 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
|||||||
|
|
||||||
#### Unstable
|
#### Unstable
|
||||||
|
|
||||||
|
* 1.0.1.2
|
||||||
|
* Fixed an issue with small key bias rework
|
||||||
|
* Fixed an issue where trinity goal would open pyramid unexpectedly. (No longer does so if ER mdoe is shuffling holes). Crystals goal updated to match that behavior.
|
||||||
|
* Fixed a playthrough issue that was not respecting pot rules
|
||||||
|
* Fixed an issue that was conflicting with downstream OWR project
|
||||||
* 1.0.1.1
|
* 1.0.1.1
|
||||||
* Fixed the pots in Mire Storyteller/ Dark Desert Hint to be colorized when they should be
|
* Fixed the pots in Mire Storyteller/ Dark Desert Hint to be colorized when they should be
|
||||||
* Certain pot items no longer reload when reloading the supertile (matches original pot behavior better)
|
* Certain pot items no longer reload when reloading the supertile (matches original pot behavior better)
|
||||||
|
|||||||
4
Rom.py
4
Rom.py
@@ -1695,9 +1695,9 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
rom.write_bytes(room.address(), room.rom_data())
|
rom.write_bytes(room.address(), room.rom_data())
|
||||||
|
|
||||||
if world.pottery[player] not in ['none']:
|
if world.pottery[player] not in ['none']:
|
||||||
rom.write_bytes(snes_to_pc(0x1F8375), int32_as_bytes(0x299000))
|
rom.write_bytes(snes_to_pc(0x1F8375), int32_as_bytes(0x2B8000))
|
||||||
# make hammer pegs use different tiles
|
# make hammer pegs use different tiles
|
||||||
Room0127.write_to_rom(snes_to_pc(0x299000), rom)
|
Room0127.write_to_rom(snes_to_pc(0x2B8000), rom)
|
||||||
|
|
||||||
if world.pot_contents[player]:
|
if world.pot_contents[player]:
|
||||||
colorize_pots = is_mystery or (world.pottery[player] not in ['vanilla', 'lottery']
|
colorize_pots = is_mystery or (world.pottery[player] not in ['vanilla', 'lottery']
|
||||||
|
|||||||
Reference in New Issue
Block a user