Rule fix for zelda to throne room
Minor fix to standard generation and spoilers
This commit is contained in:
@@ -177,6 +177,7 @@ def create_door_spoiler(world, player):
|
||||
queue = deque(world.dungeon_layouts[player].values())
|
||||
while len(queue) > 0:
|
||||
builder = queue.popleft()
|
||||
std_flag = world.mode[player] == 'standard' and builder.name == 'Hyrule Castle' and world.shuffle[player] == 'vanilla'
|
||||
done = set()
|
||||
start_regions = set(convert_regions(builder.layout_starts, world, player)) # todo: set all_entrances for basic
|
||||
reg_queue = deque(start_regions)
|
||||
@@ -205,11 +206,15 @@ def create_door_spoiler(world, player):
|
||||
logger.warning('This is a bug during door spoiler')
|
||||
elif not isinstance(door_b, Region):
|
||||
logger.warning('Door not connected: %s', door_a.name)
|
||||
if connect and connect.type == RegionType.Dungeon and connect not in visited:
|
||||
if valid_connection(connect, std_flag, world, player) and connect not in visited:
|
||||
visited.add(connect)
|
||||
reg_queue.append(connect)
|
||||
|
||||
|
||||
def valid_connection(region, std_flag, world, player):
|
||||
return region and (region.type == RegionType.Dungeon or region.name in world.inaccessible_regions[player] or
|
||||
(std_flag and region.name == 'Hyrule Castle Ledge'))
|
||||
|
||||
def vanilla_key_logic(world, player):
|
||||
builders = []
|
||||
world.dungeon_layouts[player] = {}
|
||||
@@ -3328,6 +3333,9 @@ def find_inaccessible_regions(world, player):
|
||||
ledge = world.get_region('Hyrule Castle Ledge', player)
|
||||
if any(x for x in ledge.exits if x.connected_region.name == 'Agahnims Tower Portal'):
|
||||
world.inaccessible_regions[player].append('Hyrule Castle Ledge')
|
||||
# this should be considered as part of the inaccessible regions, dungeonssimple?
|
||||
if world.mode[player] == 'standard' and world.shuffle[player] == 'vanilla':
|
||||
world.inaccessible_regions[player].append('Hyrule Castle Ledge')
|
||||
logger = logging.getLogger('')
|
||||
logger.debug('Inaccessible Regions:')
|
||||
for r in world.inaccessible_regions[player]:
|
||||
|
||||
2
Main.py
2
Main.py
@@ -34,7 +34,7 @@ from source.overworld.EntranceShuffle2 import link_entrances_new
|
||||
from source.tools.BPS import create_bps_from_data
|
||||
from source.classes.CustomSettings import CustomSettings
|
||||
|
||||
version_number = '1.2.0.20'
|
||||
version_number = '1.2.0.21'
|
||||
version_branch = '-u'
|
||||
__version__ = f'{version_number}{version_branch}'
|
||||
|
||||
|
||||
@@ -109,6 +109,10 @@ These are now independent of retro mode and have three options: None, Random, an
|
||||
|
||||
# Bug Fixes and Notes
|
||||
|
||||
* 1.2.0.21u
|
||||
* Fix that should force items needed for leaving Zelda's cell to before the throne room, so S&Q isn't mandatory
|
||||
* Small fix for Tavern Shuffle (thanks Catobat)
|
||||
* Several small generation fixes
|
||||
* 1.2.0.20u
|
||||
* New generation feature that allows Spiral Stair to link to themselves (thank Catobat)
|
||||
* Added logic for trap doors that could be opened using existing room triggers
|
||||
|
||||
2
Rom.py
2
Rom.py
@@ -37,7 +37,7 @@ from source.dungeon.RoomList import Room0127
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = '61662913cc0cb12fb870d794937d88d9'
|
||||
RANDOMIZERBASEHASH = '9b6e57f6e9d92934ce14276afd715849'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
|
||||
Binary file not shown.
14
test/customizer/zelda_escape.yaml
Normal file
14
test/customizer/zelda_escape.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
meta:
|
||||
players: 1
|
||||
settings:
|
||||
1:
|
||||
door_shuffle: crossed
|
||||
intensity: 3
|
||||
mode: standard
|
||||
pottery: keys
|
||||
dropshuffle: 'on'
|
||||
doors:
|
||||
1:
|
||||
doors:
|
||||
Hyrule Dungeon Cellblock Up Stairs:
|
||||
dest: Ice Hammer Block Down Stairs
|
||||
Reference in New Issue
Block a user