mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
Lingo: Fix The Bearer's Pilgrimage Logic (#5005)
This commit is contained in:

committed by
GitHub

parent
e830a6d6f5
commit
4119763e23
@@ -4956,10 +4956,16 @@
|
||||
Outside The Initiated:
|
||||
room: Art Gallery
|
||||
door: Exit
|
||||
The Bearer (East): True
|
||||
The Bearer (North): True
|
||||
The Bearer (South): True
|
||||
The Bearer (West): True
|
||||
The Bearer (East):
|
||||
static_painting: True
|
||||
The Bearer (North):
|
||||
static_painting: True
|
||||
The Bearer (South):
|
||||
static_painting: True
|
||||
The Bearer (West):
|
||||
- static_painting: True
|
||||
- room: The Bearer (West)
|
||||
door: Side Area Shortcut
|
||||
Roof: True
|
||||
panels:
|
||||
Achievement:
|
||||
@@ -5053,7 +5059,8 @@
|
||||
- MIDDLE
|
||||
The Bearer (East):
|
||||
entrances:
|
||||
Cross Tower (East): True
|
||||
Cross Tower (East):
|
||||
static_painting: True
|
||||
Bearer Side Area:
|
||||
door: Side Area Access
|
||||
Roof: True
|
||||
@@ -5084,7 +5091,8 @@
|
||||
panel: SPACE
|
||||
The Bearer (North):
|
||||
entrances:
|
||||
Cross Tower (East): True
|
||||
Cross Tower (North):
|
||||
static_painting: True
|
||||
Roof: True
|
||||
panels:
|
||||
SILENT (1):
|
||||
@@ -5128,7 +5136,8 @@
|
||||
panel: POTS
|
||||
The Bearer (South):
|
||||
entrances:
|
||||
Cross Tower (North): True
|
||||
Cross Tower (South):
|
||||
static_painting: True
|
||||
Bearer Side Area:
|
||||
door: Side Area Shortcut
|
||||
Roof: True
|
||||
@@ -5162,7 +5171,10 @@
|
||||
panel: SILENT (1)
|
||||
The Bearer (West):
|
||||
entrances:
|
||||
Cross Tower (West): True
|
||||
Cross Tower (West):
|
||||
static_painting: True
|
||||
The Bearer:
|
||||
door: Side Area Shortcut
|
||||
Bearer Side Area:
|
||||
door: Side Area Shortcut
|
||||
Roof: True
|
||||
@@ -5235,6 +5247,7 @@
|
||||
The Bearer:
|
||||
room: The Bearer
|
||||
door: East Entrance
|
||||
static_painting: True
|
||||
Roof: True
|
||||
panels:
|
||||
WINTER:
|
||||
@@ -5250,6 +5263,7 @@
|
||||
The Bearer (East):
|
||||
room: The Bearer (East)
|
||||
door: North Entrance
|
||||
static_painting: True
|
||||
Roof: True
|
||||
panels:
|
||||
NORTH:
|
||||
@@ -5270,6 +5284,7 @@
|
||||
The Bearer (North):
|
||||
room: The Bearer (North)
|
||||
door: South Entrance
|
||||
static_painting: True
|
||||
panels:
|
||||
FIRE:
|
||||
id: Cross Room/Panel_fire_fire
|
||||
@@ -5284,6 +5299,7 @@
|
||||
Bearer Side Area:
|
||||
room: Bearer Side Area
|
||||
door: West Entrance
|
||||
static_painting: True
|
||||
Roof: True
|
||||
panels:
|
||||
DIAMONDS:
|
||||
@@ -7108,6 +7124,8 @@
|
||||
entrances:
|
||||
Orange Tower Third Floor:
|
||||
warp: True
|
||||
Art Gallery (First Floor):
|
||||
warp: True
|
||||
Art Gallery (Second Floor):
|
||||
warp: True
|
||||
Art Gallery (Third Floor):
|
||||
@@ -7125,22 +7143,6 @@
|
||||
required_door:
|
||||
room: Number Hunt
|
||||
door: Eights
|
||||
EON:
|
||||
id: Painting Room/Panel_eon_one
|
||||
colors: yellow
|
||||
tag: midyellow
|
||||
TRUSTWORTHY:
|
||||
id: Painting Room/Panel_to_two
|
||||
colors: red
|
||||
tag: midred
|
||||
FREE:
|
||||
id: Painting Room/Panel_free_three
|
||||
colors: purple
|
||||
tag: midpurp
|
||||
OUR:
|
||||
id: Painting Room/Panel_our_four
|
||||
colors: blue
|
||||
tag: midblue
|
||||
ORDER:
|
||||
id: Painting Room/Panel_order_onepathmanyturns
|
||||
tag: forbid
|
||||
@@ -7159,15 +7161,8 @@
|
||||
- scenery_painting_2c
|
||||
skip_location: True
|
||||
panels:
|
||||
- EON
|
||||
First Floor Puzzles:
|
||||
skip_item: True
|
||||
location_name: Art Gallery - First Floor Puzzles
|
||||
panels:
|
||||
- EON
|
||||
- TRUSTWORTHY
|
||||
- FREE
|
||||
- OUR
|
||||
- room: Art Gallery (First Floor)
|
||||
panel: EON
|
||||
Third Floor:
|
||||
painting_id:
|
||||
- scenery_painting_3b
|
||||
@@ -7227,11 +7222,42 @@
|
||||
- Third Floor
|
||||
- Fourth Floor
|
||||
- Fifth Floor
|
||||
Art Gallery (First Floor):
|
||||
entrances:
|
||||
Art Gallery:
|
||||
static_painting: True
|
||||
panels:
|
||||
EON:
|
||||
id: Painting Room/Panel_eon_one
|
||||
colors: yellow
|
||||
tag: midyellow
|
||||
TRUSTWORTHY:
|
||||
id: Painting Room/Panel_to_two
|
||||
colors: red
|
||||
tag: midred
|
||||
FREE:
|
||||
id: Painting Room/Panel_free_three
|
||||
colors: purple
|
||||
tag: midpurp
|
||||
OUR:
|
||||
id: Painting Room/Panel_our_four
|
||||
colors: blue
|
||||
tag: midblue
|
||||
doors:
|
||||
Puzzles:
|
||||
skip_item: True
|
||||
location_name: Art Gallery - First Floor Puzzles
|
||||
panels:
|
||||
- EON
|
||||
- TRUSTWORTHY
|
||||
- FREE
|
||||
- OUR
|
||||
Art Gallery (Second Floor):
|
||||
entrances:
|
||||
Art Gallery:
|
||||
room: Art Gallery
|
||||
door: Second Floor
|
||||
static_painting: True
|
||||
panels:
|
||||
HOUSE:
|
||||
id: Painting Room/Panel_house_neighborhood
|
||||
@@ -7263,6 +7289,7 @@
|
||||
Art Gallery:
|
||||
room: Art Gallery
|
||||
door: Third Floor
|
||||
static_painting: True
|
||||
panels:
|
||||
AN:
|
||||
id: Painting Room/Panel_an_many
|
||||
@@ -7294,6 +7321,7 @@
|
||||
Art Gallery:
|
||||
room: Art Gallery
|
||||
door: Fourth Floor
|
||||
static_painting: True
|
||||
panels:
|
||||
URNS:
|
||||
id: Painting Room/Panel_urns_turns
|
||||
|
Binary file not shown.
@@ -727,11 +727,12 @@ panels:
|
||||
WANDER: 444975
|
||||
Art Gallery:
|
||||
EIGHT: 444976
|
||||
ORDER: 444981
|
||||
Art Gallery (First Floor):
|
||||
EON: 444977
|
||||
TRUSTWORTHY: 444978
|
||||
FREE: 444979
|
||||
OUR: 444980
|
||||
ORDER: 444981
|
||||
Art Gallery (Second Floor):
|
||||
HOUSE: 444982
|
||||
PATH: 444983
|
||||
@@ -1382,8 +1383,6 @@ doors:
|
||||
Art Gallery:
|
||||
Second Floor:
|
||||
item: 444558
|
||||
First Floor Puzzles:
|
||||
location: 445256
|
||||
Third Floor:
|
||||
item: 444559
|
||||
Fourth Floor:
|
||||
@@ -1393,6 +1392,9 @@ doors:
|
||||
Exit:
|
||||
item: 444562
|
||||
location: 444981
|
||||
Art Gallery (First Floor):
|
||||
Puzzles:
|
||||
location: 445256
|
||||
Art Gallery (Second Floor):
|
||||
Puzzles:
|
||||
location: 445257
|
||||
|
@@ -23,6 +23,7 @@ class EntranceType(Flag):
|
||||
SUNWARP = auto()
|
||||
WARP = auto()
|
||||
CROSSROADS_ROOF_ACCESS = auto()
|
||||
STATIC_PAINTING = auto()
|
||||
|
||||
|
||||
class RoomEntrance(NamedTuple):
|
||||
|
@@ -30,7 +30,7 @@ def is_acceptable_pilgrimage_entrance(entrance_type: EntranceType, world: "Lingo
|
||||
allowed_entrance_types = EntranceType.NORMAL
|
||||
|
||||
if world.options.pilgrimage_allows_paintings:
|
||||
allowed_entrance_types |= EntranceType.PAINTING
|
||||
allowed_entrance_types |= EntranceType.PAINTING | EntranceType.STATIC_PAINTING
|
||||
|
||||
if world.options.pilgrimage_allows_roof_access:
|
||||
allowed_entrance_types |= EntranceType.CROSSROADS_ROOF_ACCESS
|
||||
@@ -105,7 +105,8 @@ def create_regions(world: "LingoWorld") -> None:
|
||||
regions[pilgrimage_region_name] = Region(pilgrimage_region_name, world.player, world.multiworld)
|
||||
|
||||
# Connect all created regions now that they exist.
|
||||
allowed_entrance_types = EntranceType.NORMAL | EntranceType.WARP | EntranceType.CROSSROADS_ROOF_ACCESS
|
||||
allowed_entrance_types = EntranceType.NORMAL | EntranceType.WARP | EntranceType.CROSSROADS_ROOF_ACCESS | \
|
||||
EntranceType.STATIC_PAINTING
|
||||
|
||||
if not painting_shuffle:
|
||||
# Don't use the vanilla painting connections if we are shuffling paintings.
|
||||
@@ -156,11 +157,11 @@ def create_regions(world: "LingoWorld") -> None:
|
||||
regions[from_room].connect(regions[to_room], f"Pilgrimage Part {i+1}")
|
||||
else:
|
||||
connect_entrance(regions, regions["Starting Room"], regions["Pilgrim Antechamber"], "Sun Painting",
|
||||
RoomAndDoor("Pilgrim Antechamber", "Sun Painting"), EntranceType.PAINTING, False, world)
|
||||
RoomAndDoor("Pilgrim Antechamber", "Sun Painting"), EntranceType.STATIC_PAINTING, False, world)
|
||||
|
||||
if early_color_hallways:
|
||||
connect_entrance(regions, regions["Starting Room"], regions["Color Hallways"], "Early Color Hallways",
|
||||
None, EntranceType.PAINTING, False, world)
|
||||
None, EntranceType.STATIC_PAINTING, False, world)
|
||||
|
||||
if painting_shuffle:
|
||||
for warp_enter, warp_exit in world.player_logic.painting_mapping.items():
|
||||
|
@@ -138,6 +138,8 @@ def process_single_entrance(source_room: str, room_name: str, door_obj) -> RoomE
|
||||
entrance_type = EntranceType.WARP
|
||||
elif source_room == "Crossroads" and room_name == "Roof":
|
||||
entrance_type = EntranceType.CROSSROADS_ROOF_ACCESS
|
||||
elif "static_painting" in door_obj and door_obj["static_painting"]:
|
||||
entrance_type = EntranceType.STATIC_PAINTING
|
||||
|
||||
if "painting" in door_obj and door_obj["painting"]:
|
||||
PAINTING_EXIT_ROOMS.add(room_name)
|
||||
|
@@ -2,7 +2,7 @@
|
||||
# the file are consistent. It also checks that the panel and door IDs mentioned
|
||||
# all exist in the map file.
|
||||
#
|
||||
# Usage: validate_config.rb [config file] [map file]
|
||||
# Usage: validate_config.rb [config file] [ids path] [map file]
|
||||
|
||||
require 'set'
|
||||
require 'yaml'
|
||||
|
Reference in New Issue
Block a user