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