mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Lingo: Fix edge case painting shuffle accessibility issues (#2441)
* Lingo: Fix painting shuffle logic issue in The Wise * Lingo: More generic painting cycle prevention * Lingo: okay how about now * Lingo: Consider Owl Hallway blocked painting areas in vanilla doors * Lingo: so honestly I should've seen this one coming * Lingo: Refined req_blocked for vanilla doors * Lingo: Orange Tower Basement is also owl-blocked * Lingo: Rewrite randomize_paintings to eliminate rerolls Now, mapping is done in two phases, rather than assigning everything at once and then rerolling if the mapping is non-viable.
This commit is contained in:

committed by
GitHub

parent
b5bd95771d
commit
f444d570d3
@@ -63,6 +63,8 @@ class Painting(NamedTuple):
|
||||
required_door: Optional[RoomAndDoor]
|
||||
disable: bool
|
||||
move: bool
|
||||
req_blocked: bool
|
||||
req_blocked_when_no_doors: bool
|
||||
|
||||
|
||||
class Progression(NamedTuple):
|
||||
@@ -471,6 +473,16 @@ def process_painting(room_name, painting_data):
|
||||
else:
|
||||
enter_only = False
|
||||
|
||||
if "req_blocked" in painting_data:
|
||||
req_blocked = painting_data["req_blocked"]
|
||||
else:
|
||||
req_blocked = False
|
||||
|
||||
if "req_blocked_when_no_doors" in painting_data:
|
||||
req_blocked_when_no_doors = painting_data["req_blocked_when_no_doors"]
|
||||
else:
|
||||
req_blocked_when_no_doors = False
|
||||
|
||||
required_door = None
|
||||
if "required_door" in painting_data:
|
||||
door = painting_data["required_door"]
|
||||
@@ -480,7 +492,8 @@ def process_painting(room_name, painting_data):
|
||||
)
|
||||
|
||||
painting_obj = Painting(painting_id, room_name, enter_only, exit_only, orientation,
|
||||
required_painting, rwnd, required_door, disable_painting, move_painting)
|
||||
required_painting, rwnd, required_door, disable_painting, move_painting, req_blocked,
|
||||
req_blocked_when_no_doors)
|
||||
PAINTINGS[painting_id] = painting_obj
|
||||
PAINTINGS_BY_ROOM[room_name].append(painting_obj)
|
||||
|
||||
|
Reference in New Issue
Block a user