Fixing generation errors
This commit is contained in:
@@ -2655,8 +2655,8 @@ def valid_entrance(builder, sector_list, builder_info):
|
|||||||
for sector in entrances:
|
for sector in entrances:
|
||||||
for region in entrance_list:
|
for region in entrance_list:
|
||||||
if region in sector.region_set():
|
if region in sector.region_set():
|
||||||
portal = next((x for x in world.dungeon_portals[player] if x.door.entrance.parent_region.name == region))
|
portal = next((x for x in world.dungeon_portals[player] if x.door.entrance.parent_region.name == region), None)
|
||||||
if not portal.deadEnd:
|
if portal and not portal.deadEnd:
|
||||||
all_dead = False
|
all_dead = False
|
||||||
break
|
break
|
||||||
if not all_dead:
|
if not all_dead:
|
||||||
@@ -2776,8 +2776,8 @@ def split_dungeon_builder(builder, split_list, builder_info):
|
|||||||
continue
|
continue
|
||||||
ents, splits, c_tuple, world, player = builder_info
|
ents, splits, c_tuple, world, player = builder_info
|
||||||
r_name = split_entrances[0]
|
r_name = split_entrances[0]
|
||||||
p = next(x for x in world.dungeon_portals[player] if x.door.entrance.parent_region.name == r_name)
|
p = next((x for x in world.dungeon_portals[player] if x.door.entrance.parent_region.name == r_name), None)
|
||||||
if not p.deadEnd:
|
if p and not p.deadEnd:
|
||||||
candidates.append(name)
|
candidates.append(name)
|
||||||
merge_keys = random.sample(candidates, merge_attempt+1) if len(candidates) >= merge_attempt+1 else []
|
merge_keys = random.sample(candidates, merge_attempt+1) if len(candidates) >= merge_attempt+1 else []
|
||||||
for name, split_entrances in split_list.items():
|
for name, split_entrances in split_list.items():
|
||||||
@@ -2950,12 +2950,13 @@ def check_for_forced_crystal_single(builder, candidate_sectors):
|
|||||||
for hook in builder_doors.keys():
|
for hook in builder_doors.keys():
|
||||||
for door in builder_doors[hook].keys():
|
for door in builder_doors[hook].keys():
|
||||||
opp = opposite_h_type(hook)
|
opp = opposite_h_type(hook)
|
||||||
for d, sector in builder_doors[opp].items():
|
if opp in builder_doors.keys():
|
||||||
if d != door and (not sector.blue_barrier or sector.c_switch):
|
for d, sector in builder_doors[opp].items():
|
||||||
return False
|
if d != door and (not sector.blue_barrier or sector.c_switch):
|
||||||
for d, sector in candidate_doors[opp].items():
|
return False
|
||||||
if not sector.blue_barrier or sector.c_switch:
|
for d, sector in candidate_doors[opp].items():
|
||||||
return False
|
if not sector.blue_barrier or sector.c_switch:
|
||||||
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user