Lingo: Add item/location groups (#2789)
This commit is contained in:
parent
f4b7c28a33
commit
30a0aa2c85
|
@ -6,8 +6,8 @@ from logging import warning
|
|||
from BaseClasses import Item, ItemClassification, Tutorial
|
||||
from worlds.AutoWorld import WebWorld, World
|
||||
from .datatypes import Room, RoomEntrance
|
||||
from .items import ALL_ITEM_TABLE, LingoItem
|
||||
from .locations import ALL_LOCATION_TABLE
|
||||
from .items import ALL_ITEM_TABLE, ITEMS_BY_GROUP, LingoItem
|
||||
from .locations import ALL_LOCATION_TABLE, LOCATIONS_BY_GROUP
|
||||
from .options import LingoOptions
|
||||
from .player_logic import LingoPlayerLogic
|
||||
from .regions import create_regions
|
||||
|
@ -46,6 +46,8 @@ class LingoWorld(World):
|
|||
location_name_to_id = {
|
||||
name: data.code for name, data in ALL_LOCATION_TABLE.items()
|
||||
}
|
||||
item_name_groups = ITEMS_BY_GROUP
|
||||
location_name_groups = LOCATIONS_BY_GROUP
|
||||
|
||||
player_logic: LingoPlayerLogic
|
||||
|
||||
|
|
|
@ -63,12 +63,13 @@
|
|||
# - item_name: Overrides the name of the item generated for this door.
|
||||
# If not specified, the item name will be generated from
|
||||
# the room name and the door name.
|
||||
# - item_group: If set, this item will be in the specified item group.
|
||||
# - location_name: Overrides the name of the location generated for this
|
||||
# door. If not specified, the location name will be
|
||||
# generated using the names of the panels.
|
||||
# - skip_location: If true, no location is generated for this door.
|
||||
# - skip_item: If true, no item is generated for this door.
|
||||
# - group: When simple doors is used, all doors with the same group
|
||||
# - door_group: When simple doors is used, all doors with the same group
|
||||
# will be covered by a single item.
|
||||
# - include_reduce: Door checks are assumed to be EXCLUDED when reduce checks
|
||||
# is on. This option includes the check anyway.
|
||||
|
@ -144,7 +145,7 @@
|
|||
- Palindrome Room Area Doors/Door_racecar_racecar_2
|
||||
- Palindrome Room Area Doors/Door_solos_solos_2
|
||||
skip_location: True
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- room: The Tenacious
|
||||
panel: LEVEL (Black)
|
||||
|
@ -231,7 +232,7 @@
|
|||
Dead End Door:
|
||||
id: Appendix Room Area Doors/Door_rat_tar_2
|
||||
skip_location: true
|
||||
group: Dead End Area Access
|
||||
door_group: Dead End Area Access
|
||||
panels:
|
||||
- room: Hub Room
|
||||
panel: RAT
|
||||
|
@ -244,6 +245,7 @@
|
|||
Seeker Entrance:
|
||||
id: Entry Room Area Doors/Door_entrance_entrance
|
||||
item_name: The Seeker - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- OPEN
|
||||
Rhyme Room Entrance:
|
||||
|
@ -251,7 +253,7 @@
|
|||
- Appendix Room Area Doors/Door_rat_tar_3
|
||||
- Double Room Area Doors/Door_room_entry_stairs
|
||||
skip_location: True
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- room: The Tenacious
|
||||
panel: LEVEL (Black)
|
||||
|
@ -466,25 +468,27 @@
|
|||
- ORDER
|
||||
Tenacious Entrance:
|
||||
id: Palindrome Room Area Doors/Door_slaughter_laughter
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- SLAUGHTER
|
||||
Shortcut to Hedge Maze:
|
||||
id: Maze Area Doors/Door_trace_trace
|
||||
group: Hedge Maze Doors
|
||||
door_group: Hedge Maze Doors
|
||||
panels:
|
||||
- TRACE
|
||||
Near RAT Door:
|
||||
id: Appendix Room Area Doors/Door_deadend_deadened
|
||||
skip_location: True
|
||||
group: Dead End Area Access
|
||||
door_group: Dead End Area Access
|
||||
panels:
|
||||
- room: Hidden Room
|
||||
panel: DEAD END
|
||||
Traveled Entrance:
|
||||
id: Appendix Room Area Doors/Door_open_open
|
||||
item_name: The Traveled - Entrance
|
||||
group: Entrance to The Traveled
|
||||
door_group: Entrance to The Traveled
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- OPEN
|
||||
Lost Door:
|
||||
|
@ -546,6 +550,7 @@
|
|||
doors:
|
||||
Sun Painting:
|
||||
item_name: Pilgrim Room - Sun Painting
|
||||
item_group: Paintings
|
||||
location_name: Pilgrim Room - HOT CRUST
|
||||
painting_id: pilgrim_painting2
|
||||
panels:
|
||||
|
@ -715,12 +720,14 @@
|
|||
doors:
|
||||
Tenacious Entrance:
|
||||
id: Palindrome Room Area Doors/Door_decay_day
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- DECAY
|
||||
Discerning Entrance:
|
||||
id: Shuffle Room Area Doors/Door_nope_open
|
||||
item_name: The Discerning - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- NOPE
|
||||
Tower Entrance:
|
||||
|
@ -729,13 +736,13 @@
|
|||
- Shuffle Room Area Doors/Door_tower2
|
||||
- Shuffle Room Area Doors/Door_tower3
|
||||
- Shuffle Room Area Doors/Door_tower4
|
||||
group: Crossroads - Tower Entrances
|
||||
door_group: Crossroads - Tower Entrances
|
||||
panels:
|
||||
- WE ROT
|
||||
Tower Back Entrance:
|
||||
id: Shuffle Room Area Doors/Door_runt
|
||||
location_name: Crossroads - TURN/RUNT
|
||||
group: Crossroads - Tower Entrances
|
||||
door_group: Crossroads - Tower Entrances
|
||||
panels:
|
||||
- TURN
|
||||
- room: Orange Tower Fourth Floor
|
||||
|
@ -744,20 +751,20 @@
|
|||
id:
|
||||
- Shuffle Room Area Doors/Door_words_shuffle_3
|
||||
- Shuffle Room Area Doors/Door_words_shuffle_4
|
||||
group: Crossroads Doors
|
||||
door_group: Crossroads Doors
|
||||
panels:
|
||||
- WORDS
|
||||
- SWORD
|
||||
Eye Wall:
|
||||
id: Shuffle Room Area Doors/Door_behind
|
||||
junk_item: True
|
||||
group: Crossroads Doors
|
||||
door_group: Crossroads Doors
|
||||
panels:
|
||||
- BEND HI
|
||||
Hollow Hallway:
|
||||
id: Shuffle Room Area Doors/Door_crossroads6
|
||||
skip_location: True
|
||||
group: Crossroads Doors
|
||||
door_group: Crossroads Doors
|
||||
panels:
|
||||
- BEND HI
|
||||
Roof Access:
|
||||
|
@ -934,7 +941,7 @@
|
|||
- Palindrome Room Area Doors/Door_racecar_racecar_1
|
||||
- Palindrome Room Area Doors/Door_solos_solos_1
|
||||
location_name: The Tenacious - Palindromes
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
panels:
|
||||
- LEVEL (Black)
|
||||
- RACECAR (Black)
|
||||
|
@ -965,7 +972,7 @@
|
|||
id:
|
||||
- Symmetry Room Area Doors/Door_near_far
|
||||
- Symmetry Room Area Doors/Door_far_near
|
||||
group: Symmetry Doors
|
||||
door_group: Symmetry Doors
|
||||
item_name: Symmetry Room - Near Far Door
|
||||
location_name: Symmetry Room - NEAR, FAR
|
||||
panels:
|
||||
|
@ -992,7 +999,7 @@
|
|||
id:
|
||||
- Symmetry Room Area Doors/Door_warts_straw
|
||||
- Symmetry Room Area Doors/Door_straw_warts
|
||||
group: Symmetry Doors
|
||||
door_group: Symmetry Doors
|
||||
item_name: Symmetry Room - Warts Straw Door
|
||||
location_name: Symmetry Room - WARTS, STRAW
|
||||
panels:
|
||||
|
@ -1019,7 +1026,7 @@
|
|||
id:
|
||||
- Symmetry Room Area Doors/Door_leaf_feel
|
||||
- Symmetry Room Area Doors/Door_feel_leaf
|
||||
group: Symmetry Doors
|
||||
door_group: Symmetry Doors
|
||||
item_name: Symmetry Room - Leaf Feel Door
|
||||
location_name: Symmetry Room - LEAF, FEEL
|
||||
panels:
|
||||
|
@ -1156,34 +1163,37 @@
|
|||
doors:
|
||||
Tenacious Entrance:
|
||||
id: Palindrome Room Area Doors/Door_massacred_sacred
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- MASSACRED
|
||||
Black Door:
|
||||
id: Symmetry Room Area Doors/Door_black_white
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
panels:
|
||||
- BLACK
|
||||
Agreeable Entrance:
|
||||
id: Symmetry Room Area Doors/Door_close_open
|
||||
item_name: The Agreeable - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- CLOSE
|
||||
Painting Shortcut:
|
||||
item_name: Starting Room - Street Painting
|
||||
item_group: Paintings
|
||||
painting_id: eyes_yellow_painting2
|
||||
panels:
|
||||
- RIGHT
|
||||
Purple Barrier:
|
||||
id: Color Arrow Room Doors/Door_purple_3
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
panel: PURPLE
|
||||
Hallway Door:
|
||||
id: Red Blue Purple Room Area Doors/Door_room_2
|
||||
group: Hallway Room Doors
|
||||
door_group: Hallway Room Doors
|
||||
location_name: Hallway Room - First Room
|
||||
panels:
|
||||
- WALL
|
||||
|
@ -1229,7 +1239,8 @@
|
|||
doors:
|
||||
Tenacious Entrance:
|
||||
id: Palindrome Room Area Doors/Door_dread_dead
|
||||
group: Entrances to The Tenacious
|
||||
door_group: Entrances to The Tenacious
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- DREAD
|
||||
The Agreeable:
|
||||
|
@ -1298,7 +1309,8 @@
|
|||
doors:
|
||||
Shortcut to Hedge Maze:
|
||||
id: Symmetry Room Area Doors/Door_bye_hi
|
||||
group: Hedge Maze Doors
|
||||
item_group: Achievement Room Entrances
|
||||
door_group: Hedge Maze Doors
|
||||
panels:
|
||||
- BYE
|
||||
Hedge Maze:
|
||||
|
@ -1391,12 +1403,14 @@
|
|||
Perceptive Entrance:
|
||||
id: Maze Area Doors/Door_maze_maze
|
||||
item_name: The Perceptive - Entrance
|
||||
group: Hedge Maze Doors
|
||||
door_group: Hedge Maze Doors
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- DOWN
|
||||
Painting Shortcut:
|
||||
painting_id: garden_painting_tower2
|
||||
item_name: Starting Room - Hedge Maze Painting
|
||||
item_group: Paintings
|
||||
skip_location: True
|
||||
panels:
|
||||
- DOWN
|
||||
|
@ -1407,7 +1421,8 @@
|
|||
- Maze Area Doors/Door_look_room_3
|
||||
skip_location: True
|
||||
item_name: The Observant - Entrance
|
||||
group: Observant Doors
|
||||
door_group: Observant Doors
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- room: The Perceptive
|
||||
panel: GAZE
|
||||
|
@ -1473,7 +1488,7 @@
|
|||
Second Floor:
|
||||
id: Naps Room Doors/Door_hider_5
|
||||
location_name: The Fearless - First Floor Puzzles
|
||||
group: Fearless Doors
|
||||
door_group: Fearless Doors
|
||||
panels:
|
||||
- SPAN
|
||||
- TEAM
|
||||
|
@ -1525,7 +1540,7 @@
|
|||
- Naps Room Doors/Door_hider_1b2
|
||||
- Naps Room Doors/Door_hider_new1
|
||||
location_name: The Fearless - Second Floor Puzzles
|
||||
group: Fearless Doors
|
||||
door_group: Fearless Doors
|
||||
panels:
|
||||
- NONE
|
||||
- SUM
|
||||
|
@ -1680,13 +1695,13 @@
|
|||
doors:
|
||||
Backside Door:
|
||||
id: Maze Area Doors/Door_backside
|
||||
group: Backside Doors
|
||||
door_group: Backside Doors
|
||||
panels:
|
||||
- FOUR (1)
|
||||
- FOUR (2)
|
||||
Stairs:
|
||||
id: Maze Area Doors/Door_stairs
|
||||
group: Observant Doors
|
||||
door_group: Observant Doors
|
||||
panels:
|
||||
- SIX
|
||||
The Incomparable:
|
||||
|
@ -1764,7 +1779,7 @@
|
|||
Eight Door:
|
||||
id: Red Blue Purple Room Area Doors/Door_a_strands
|
||||
location_name: Giant Sevens
|
||||
group: Observant Doors
|
||||
door_group: Observant Doors
|
||||
panels:
|
||||
- I (Seven)
|
||||
- room: Courtyard
|
||||
|
@ -1915,13 +1930,13 @@
|
|||
doors:
|
||||
Shortcut to Hub Room:
|
||||
id: Shuffle Room Area Doors/Door_secret_secret
|
||||
group: Orange Tower First Floor - Shortcuts
|
||||
door_group: Orange Tower First Floor - Shortcuts
|
||||
panels:
|
||||
- SECRET
|
||||
Salt Pepper Door:
|
||||
id: Count Up Room Area Doors/Door_salt_pepper
|
||||
location_name: Orange Tower First Floor - Salt Pepper Door
|
||||
group: Orange Tower First Floor - Shortcuts
|
||||
door_group: Orange Tower First Floor - Shortcuts
|
||||
panels:
|
||||
- SALT
|
||||
- room: Directional Gallery
|
||||
|
@ -1967,7 +1982,7 @@
|
|||
doors:
|
||||
Red Barrier:
|
||||
id: Color Arrow Room Doors/Door_red_6
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
|
@ -1975,7 +1990,7 @@
|
|||
Rhyme Room Entrance:
|
||||
id: Double Room Area Doors/Door_room_entry_stairs2
|
||||
skip_location: True
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- room: The Tenacious
|
||||
panel: LEVEL (Black)
|
||||
|
@ -1989,7 +2004,7 @@
|
|||
- Color Arrow Room Doors/Door_orange_hider_2
|
||||
- Color Arrow Room Doors/Door_orange_hider_3
|
||||
location_name: Color Barriers - RED and YELLOW
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
item_name: Color Hunt - Orange Barrier
|
||||
panels:
|
||||
- RED
|
||||
|
@ -2150,7 +2165,7 @@
|
|||
doors:
|
||||
Welcome Back:
|
||||
id: Entry Room Area Doors/Door_sizes
|
||||
group: Welcome Back Doors
|
||||
door_group: Welcome Back Doors
|
||||
panels:
|
||||
- SIZE (Small)
|
||||
- SIZE (Big)
|
||||
|
@ -2404,6 +2419,7 @@
|
|||
Painting Shortcut:
|
||||
painting_id: flower_painting_8
|
||||
item_name: Starting Room - Flower Painting
|
||||
item_group: Paintings
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: First Second Third Fourth
|
||||
|
@ -2416,7 +2432,7 @@
|
|||
panel: FOURTH
|
||||
Green Barrier:
|
||||
id: Color Arrow Room Doors/Door_green_5
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
|
@ -2470,7 +2486,7 @@
|
|||
doors:
|
||||
Backside Door:
|
||||
id: Count Up Room Area Doors/Door_yellow_backside
|
||||
group: Backside Doors
|
||||
door_group: Backside Doors
|
||||
location_name: Courtyard - FIRST, SECOND, THIRD, FOURTH
|
||||
item_name: Courtyard - Backside Door
|
||||
panels:
|
||||
|
@ -2491,7 +2507,7 @@
|
|||
Progress Door:
|
||||
id: Doorway Room Doors/Door_white
|
||||
item_name: The Colorful - White Door
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
location_name: The Colorful - White
|
||||
panels:
|
||||
- BEGIN
|
||||
|
@ -2512,7 +2528,7 @@
|
|||
id: Doorway Room Doors/Door_black
|
||||
item_name: The Colorful - Black Door
|
||||
location_name: The Colorful - Black
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- FOUND
|
||||
The Colorful (Red):
|
||||
|
@ -2532,7 +2548,7 @@
|
|||
id: Doorway Room Doors/Door_red
|
||||
item_name: The Colorful - Red Door
|
||||
location_name: The Colorful - Red
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- LOAF
|
||||
The Colorful (Yellow):
|
||||
|
@ -2552,7 +2568,7 @@
|
|||
id: Doorway Room Doors/Door_yellow
|
||||
item_name: The Colorful - Yellow Door
|
||||
location_name: The Colorful - Yellow
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- CREAM
|
||||
The Colorful (Blue):
|
||||
|
@ -2572,7 +2588,7 @@
|
|||
id: Doorway Room Doors/Door_blue
|
||||
item_name: The Colorful - Blue Door
|
||||
location_name: The Colorful - Blue
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- SUN
|
||||
The Colorful (Purple):
|
||||
|
@ -2592,7 +2608,7 @@
|
|||
id: Doorway Room Doors/Door_purple
|
||||
item_name: The Colorful - Purple Door
|
||||
location_name: The Colorful - Purple
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- SPOON
|
||||
The Colorful (Orange):
|
||||
|
@ -2612,7 +2628,7 @@
|
|||
id: Doorway Room Doors/Door_orange
|
||||
item_name: The Colorful - Orange Door
|
||||
location_name: The Colorful - Orange
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- LETTERS
|
||||
The Colorful (Green):
|
||||
|
@ -2632,7 +2648,7 @@
|
|||
id: Doorway Room Doors/Door_green
|
||||
item_name: The Colorful - Green Door
|
||||
location_name: The Colorful - Green
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- WALLS
|
||||
The Colorful (Brown):
|
||||
|
@ -2652,7 +2668,7 @@
|
|||
id: Doorway Room Doors/Door_brown
|
||||
item_name: The Colorful - Brown Door
|
||||
location_name: The Colorful - Brown
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- IRON
|
||||
The Colorful (Gray):
|
||||
|
@ -2672,7 +2688,7 @@
|
|||
id: Doorway Room Doors/Door_gray
|
||||
item_name: The Colorful - Gray Door
|
||||
location_name: The Colorful - Gray
|
||||
group: Colorful Doors
|
||||
door_group: Colorful Doors
|
||||
panels:
|
||||
- OBSTACLE
|
||||
The Colorful:
|
||||
|
@ -2768,7 +2784,7 @@
|
|||
doors:
|
||||
Shortcut to Starting Room:
|
||||
id: Entry Room Area Doors/Door_return_return
|
||||
group: Welcome Back Doors
|
||||
door_group: Welcome Back Doors
|
||||
include_reduce: True
|
||||
panels:
|
||||
- WELCOME BACK
|
||||
|
@ -2793,7 +2809,7 @@
|
|||
doors:
|
||||
Shortcut to Hedge Maze:
|
||||
id: Maze Area Doors/Door_strays_maze
|
||||
group: Hedge Maze Doors
|
||||
door_group: Hedge Maze Doors
|
||||
panels:
|
||||
- STRAYS
|
||||
paintings:
|
||||
|
@ -2916,14 +2932,14 @@
|
|||
- UNCOVER
|
||||
Blue Barrier:
|
||||
id: Color Arrow Room Doors/Door_blue_3
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
panel: BLUE
|
||||
Orange Barrier:
|
||||
id: Color Arrow Room Doors/Door_orange_3
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
|
@ -2931,6 +2947,7 @@
|
|||
Initiated Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_locked_knocked
|
||||
item_name: The Initiated - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- OXEN
|
||||
# These would be more appropriate in Champion's Rest, but as currently
|
||||
|
@ -2940,7 +2957,7 @@
|
|||
id: Color Arrow Room Doors/Door_green_hider_1
|
||||
location_name: Color Barriers - BLUE and YELLOW
|
||||
item_name: Color Hunt - Green Barrier
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
panels:
|
||||
- BLUE
|
||||
- room: Directional Gallery
|
||||
|
@ -2952,7 +2969,7 @@
|
|||
- Color Arrow Room Doors/Door_purple_hider_3
|
||||
location_name: Color Barriers - RED and BLUE
|
||||
item_name: Color Hunt - Purple Barrier
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
panels:
|
||||
- BLUE
|
||||
- room: Orange Tower Third Floor
|
||||
|
@ -2972,6 +2989,7 @@
|
|||
panel: PURPLE
|
||||
Eight Door:
|
||||
id: Red Blue Purple Room Area Doors/Door_a_strands2
|
||||
item_group: Achievement Room Entrances
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: The Incomparable
|
||||
|
@ -3189,7 +3207,8 @@
|
|||
doors:
|
||||
Color Hallways Entrance:
|
||||
id: Appendix Room Area Doors/Door_hello_hi
|
||||
group: Entrance to The Traveled
|
||||
door_group: Entrance to The Traveled
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- HELLO
|
||||
Color Hallways:
|
||||
|
@ -3305,17 +3324,20 @@
|
|||
Bold Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_unopened_open
|
||||
item_name: The Bold - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- UNOPEN
|
||||
Painting Shortcut:
|
||||
painting_id: pencil_painting6
|
||||
skip_location: True
|
||||
item_name: Starting Room - Pencil Painting
|
||||
item_group: Paintings
|
||||
panels:
|
||||
- UNOPEN
|
||||
Steady Entrance:
|
||||
id: Rock Room Doors/Door_2
|
||||
item_name: The Steady - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- BEGIN
|
||||
Lilac Entrance:
|
||||
|
@ -3536,6 +3558,7 @@
|
|||
Undeterred Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_pen_open
|
||||
item_name: The Undeterred - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- PEN
|
||||
Painting Shortcut:
|
||||
|
@ -3544,11 +3567,13 @@
|
|||
- arrows_painting3
|
||||
skip_location: True
|
||||
item_name: Starting Room - Blue Painting
|
||||
item_group: Paintings
|
||||
panels:
|
||||
- PEN
|
||||
Green Painting:
|
||||
painting_id: maze_painting_3
|
||||
skip_location: True
|
||||
item_group: Paintings
|
||||
panels:
|
||||
- FOUR
|
||||
Twos:
|
||||
|
@ -3556,6 +3581,7 @@
|
|||
- Count Up Room Area Doors/Door_two_hider
|
||||
- Count Up Room Area Doors/Door_two_hider_2
|
||||
include_reduce: True
|
||||
item_group: Numbers
|
||||
panels:
|
||||
- ONE
|
||||
Threes:
|
||||
|
@ -3565,6 +3591,7 @@
|
|||
- Count Up Room Area Doors/Door_three_hider_3
|
||||
location_name: Twos
|
||||
include_reduce: True
|
||||
item_group: Numbers
|
||||
panels:
|
||||
- TWO (1)
|
||||
- TWO (2)
|
||||
|
@ -3583,6 +3610,7 @@
|
|||
- Count Up Room Area Doors/Door_four_hider_3
|
||||
- Count Up Room Area Doors/Door_four_hider_4
|
||||
skip_location: True
|
||||
item_group: Numbers
|
||||
panels:
|
||||
- THREE (1)
|
||||
- THREE (2)
|
||||
|
@ -3594,6 +3622,7 @@
|
|||
- Count Up Room Area Doors/Door_five_hider_5
|
||||
location_name: Fours
|
||||
item_name: Number Hunt - Fives
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- FOUR
|
||||
|
@ -3606,6 +3635,7 @@
|
|||
Challenge Entrance:
|
||||
id: Count Up Room Area Doors/Door_zero_unlocked
|
||||
item_name: Number Hunt - Challenge Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- ZERO
|
||||
paintings:
|
||||
|
@ -3752,7 +3782,7 @@
|
|||
doors:
|
||||
Door to Directional Gallery:
|
||||
id: Count Up Room Area Doors/Door_five_unlocked
|
||||
group: Directional Gallery Doors
|
||||
door_group: Directional Gallery Doors
|
||||
skip_location: True
|
||||
panels:
|
||||
- FIVE
|
||||
|
@ -3766,6 +3796,7 @@
|
|||
- Count Up Room Area Doors/Door_six_hider_6
|
||||
painting_id: pencil_painting3 # See note in Outside The Bold
|
||||
location_name: Fives
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- FIVE
|
||||
|
@ -3788,6 +3819,7 @@
|
|||
- Count Up Room Area Doors/Door_seven_hider_6
|
||||
- Count Up Room Area Doors/Door_seven_hider_7
|
||||
location_name: Sixes
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- SIX
|
||||
|
@ -3813,6 +3845,7 @@
|
|||
- Count Up Room Area Doors/Door_eight_hider_7
|
||||
- Count Up Room Area Doors/Door_eight_hider_8
|
||||
location_name: Sevens
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- SEVEN
|
||||
|
@ -3840,6 +3873,7 @@
|
|||
- Count Up Room Area Doors/Door_nine_hider_8
|
||||
- Count Up Room Area Doors/Door_nine_hider_9
|
||||
location_name: Eights
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- EIGHT
|
||||
|
@ -3862,6 +3896,7 @@
|
|||
id: Count Up Room Area Doors/Door_zero_hider_2
|
||||
location_name: Nines
|
||||
item_name: Outside The Undeterred - Zero Door
|
||||
item_group: Numbers
|
||||
include_reduce: True
|
||||
panels:
|
||||
- NINE
|
||||
|
@ -4030,13 +4065,13 @@
|
|||
doors:
|
||||
Shortcut to The Undeterred:
|
||||
id: Count Up Room Area Doors/Door_return_double
|
||||
group: Directional Gallery Doors
|
||||
door_group: Directional Gallery Doors
|
||||
panels:
|
||||
- TURN
|
||||
- LEARN
|
||||
Yellow Barrier:
|
||||
id: Color Arrow Room Doors/Door_yellow_4
|
||||
group: Color Hunt Barriers
|
||||
door_group: Color Hunt Barriers
|
||||
skip_location: True
|
||||
panels:
|
||||
- room: Color Hunt
|
||||
|
@ -4231,11 +4266,12 @@
|
|||
doors:
|
||||
Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_middle_middle
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- MIDDLE
|
||||
Backside Door:
|
||||
id: Red Blue Purple Room Area Doors/Door_locked_knocked2 # yeah...
|
||||
group: Backside Doors
|
||||
door_group: Backside Doors
|
||||
panels:
|
||||
- FARTHER
|
||||
East Entrance:
|
||||
|
@ -5223,7 +5259,7 @@
|
|||
- Ceiling Room Doors/Door_blue
|
||||
- Ceiling Room Doors/Door_blue2
|
||||
location_name: The Artistic - Smiley and Panda
|
||||
group: Artistic Doors
|
||||
door_group: Artistic Doors
|
||||
panels:
|
||||
- FINE
|
||||
- BLADE
|
||||
|
@ -5333,7 +5369,7 @@
|
|||
- Ceiling Room Doors/Door_red
|
||||
- Ceiling Room Doors/Door_red2
|
||||
location_name: The Artistic - Panda and Lattice
|
||||
group: Artistic Doors
|
||||
door_group: Artistic Doors
|
||||
panels:
|
||||
- EYE (Top)
|
||||
- EYE (Bottom)
|
||||
|
@ -5444,7 +5480,7 @@
|
|||
- Ceiling Room Doors/Door_black
|
||||
- Ceiling Room Doors/Door_black2
|
||||
location_name: The Artistic - Lattice and Apple
|
||||
group: Artistic Doors
|
||||
door_group: Artistic Doors
|
||||
panels:
|
||||
- POSH
|
||||
- MALL
|
||||
|
@ -5557,7 +5593,7 @@
|
|||
- Ceiling Room Doors/Door_yellow
|
||||
- Ceiling Room Doors/Door_yellow2
|
||||
location_name: The Artistic - Apple and Smiley
|
||||
group: Artistic Doors
|
||||
door_group: Artistic Doors
|
||||
panels:
|
||||
- SPRIG
|
||||
- RELEASES
|
||||
|
@ -5721,7 +5757,7 @@
|
|||
doors:
|
||||
Exit:
|
||||
id: Count Up Room Area Doors/Door_near_near
|
||||
group: Crossroads Doors
|
||||
door_group: Crossroads Doors
|
||||
panels:
|
||||
- NEAR
|
||||
paintings:
|
||||
|
@ -5762,6 +5798,7 @@
|
|||
Wondrous Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_wonderland
|
||||
item_name: The Wondrous - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- SHRINK
|
||||
The Wondrous (Doorknob):
|
||||
|
@ -5782,6 +5819,7 @@
|
|||
- arrows_painting2
|
||||
skip_location: True
|
||||
item_name: Starting Room - Symmetry Painting
|
||||
item_group: Paintings
|
||||
panels:
|
||||
- room: Outside The Wondrous
|
||||
panel: SHRINK
|
||||
|
@ -5886,6 +5924,7 @@
|
|||
doors:
|
||||
Exit:
|
||||
id: Red Blue Purple Room Area Doors/Door_wonderland_exit
|
||||
item_group: Paintings
|
||||
painting_id: arrows_painting_9
|
||||
include_reduce: True
|
||||
panels:
|
||||
|
@ -5955,7 +5994,7 @@
|
|||
Exit:
|
||||
id: Red Blue Purple Room Area Doors/Door_room_3
|
||||
location_name: Hallway Room - Second Room
|
||||
group: Hallway Room Doors
|
||||
door_group: Hallway Room Doors
|
||||
panels:
|
||||
- WISE
|
||||
- CLOCK
|
||||
|
@ -5992,7 +6031,7 @@
|
|||
Exit:
|
||||
id: Red Blue Purple Room Area Doors/Door_room_4
|
||||
location_name: Hallway Room - Third Room
|
||||
group: Hallway Room Doors
|
||||
door_group: Hallway Room Doors
|
||||
panels:
|
||||
- TRANCE
|
||||
- FORM
|
||||
|
@ -6014,7 +6053,7 @@
|
|||
id:
|
||||
- Red Blue Purple Room Area Doors/Door_room_5
|
||||
- Red Blue Purple Room Area Doors/Door_room_6 # this is the connection to The Artistic
|
||||
group: Hallway Room Doors
|
||||
door_group: Hallway Room Doors
|
||||
location_name: Hallway Room - Fourth Room
|
||||
panels:
|
||||
- WHEEL
|
||||
|
@ -6082,6 +6121,7 @@
|
|||
Wanderer Entrance:
|
||||
id: Tower Room Area Doors/Door_wanderer_entrance
|
||||
item_name: The Wanderer - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- WANDERLUST
|
||||
Tower Entrance:
|
||||
|
@ -6222,6 +6262,7 @@
|
|||
id: Tower Room Area Doors/Door_painting_exit
|
||||
include_reduce: True
|
||||
item_name: Orange Tower Fifth Floor - Quadruple Intersection
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- ORDER
|
||||
paintings:
|
||||
|
@ -6417,7 +6458,7 @@
|
|||
- Double Room Area Doors/Door_room_3a
|
||||
- Double Room Area Doors/Door_room_3bc
|
||||
skip_location: True
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- SCHEME
|
||||
- FANTASY
|
||||
|
@ -6518,7 +6559,7 @@
|
|||
Exit:
|
||||
id: Double Room Area Doors/Door_room_exit
|
||||
location_name: Rhyme Room (Cross) - Exit Puzzles
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- PLUMP
|
||||
- BOUNCE
|
||||
|
@ -6581,7 +6622,7 @@
|
|||
- Double Room Area Doors/Door_room_2b
|
||||
- Double Room Area Doors/Door_room_3b
|
||||
location_name: Rhyme Room - Circle/Smiley Wall
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- BIRD
|
||||
- LETTER
|
||||
|
@ -6664,7 +6705,7 @@
|
|||
- Double Room Area Doors/Door_room_2a
|
||||
- Double Room Area Doors/Door_room_1c
|
||||
location_name: Rhyme Room - Circle/Looped Square Wall
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- WALKED
|
||||
- OBSTRUCTED
|
||||
|
@ -6683,7 +6724,7 @@
|
|||
- Double Room Area Doors/Door_room_1a
|
||||
- Double Room Area Doors/Door_room_5a
|
||||
location_name: Rhyme Room - Cross/Looped Square Wall
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- SKIES
|
||||
- SWELL
|
||||
|
@ -6702,7 +6743,7 @@
|
|||
- Double Room Area Doors/Door_room_1b
|
||||
- Double Room Area Doors/Door_room_4b
|
||||
location_name: Rhyme Room - Target/Looped Square Wall
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- PENNED
|
||||
- CLIMB
|
||||
|
@ -6765,7 +6806,7 @@
|
|||
Door to Cross:
|
||||
id: Double Room Area Doors/Door_room_4a
|
||||
location_name: Rhyme Room (Target) - Puzzles Toward Cross
|
||||
group: Rhyme Room Doors
|
||||
door_group: Rhyme Room Doors
|
||||
panels:
|
||||
- PISTOL
|
||||
- GEM
|
||||
|
@ -7016,6 +7057,7 @@
|
|||
Wise Entrance:
|
||||
id: Clock Room Area Doors/Door_time_start
|
||||
item_name: The Wise - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- KITTEN
|
||||
- CAT
|
||||
|
@ -7269,6 +7311,7 @@
|
|||
Scientific Entrance:
|
||||
id: Red Blue Purple Room Area Doors/Door_chemistry_lab
|
||||
item_name: The Scientific - Entrance
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- OPEN
|
||||
The Scientific:
|
||||
|
@ -7704,5 +7747,6 @@
|
|||
doors:
|
||||
Welcome Door:
|
||||
id: Entry Room Area Doors/Door_challenge_challenge
|
||||
item_group: Achievement Room Entrances
|
||||
panels:
|
||||
- WELCOME
|
||||
|
|
Binary file not shown.
|
@ -32,9 +32,10 @@ class Door(NamedTuple):
|
|||
has_doors: bool
|
||||
painting_ids: List[str]
|
||||
event: bool
|
||||
group: Optional[str]
|
||||
door_group: Optional[str]
|
||||
include_reduce: bool
|
||||
junk_item: bool
|
||||
item_group: Optional[str]
|
||||
|
||||
|
||||
class Panel(NamedTuple):
|
||||
|
|
|
@ -42,14 +42,16 @@ class LingoItem(Item):
|
|||
|
||||
|
||||
ALL_ITEM_TABLE: Dict[str, ItemData] = {}
|
||||
ITEMS_BY_GROUP: Dict[str, List[str]] = {}
|
||||
|
||||
|
||||
def load_item_data():
|
||||
global ALL_ITEM_TABLE
|
||||
global ALL_ITEM_TABLE, ITEMS_BY_GROUP
|
||||
|
||||
for color in ["Black", "Red", "Blue", "Yellow", "Green", "Orange", "Gray", "Brown", "Purple"]:
|
||||
ALL_ITEM_TABLE[color] = ItemData(get_special_item_id(color), ItemClassification.progression,
|
||||
"colors", [], [])
|
||||
ITEMS_BY_GROUP.setdefault("Colors", []).append(color)
|
||||
|
||||
door_groups: Dict[str, List[str]] = {}
|
||||
for room_name, doors in DOORS_BY_ROOM.items():
|
||||
|
@ -57,11 +59,11 @@ def load_item_data():
|
|||
if door.skip_item is True or door.event is True:
|
||||
continue
|
||||
|
||||
if door.group is None:
|
||||
if door.door_group is None:
|
||||
door_mode = "doors"
|
||||
else:
|
||||
door_mode = "complex door"
|
||||
door_groups.setdefault(door.group, [])
|
||||
door_groups.setdefault(door.door_group, [])
|
||||
|
||||
if room_name in PROGRESSION_BY_ROOM and door_name in PROGRESSION_BY_ROOM[room_name]:
|
||||
door_mode = "special"
|
||||
|
@ -70,10 +72,15 @@ def load_item_data():
|
|||
ItemData(get_door_item_id(room_name, door_name),
|
||||
ItemClassification.filler if door.junk_item else ItemClassification.progression, door_mode,
|
||||
door.has_doors, door.painting_ids)
|
||||
ITEMS_BY_GROUP.setdefault("Doors", []).append(door.item_name)
|
||||
|
||||
if door.item_group is not None:
|
||||
ITEMS_BY_GROUP.setdefault(door.item_group, []).append(door.item_name)
|
||||
|
||||
for group, group_door_ids in door_groups.items():
|
||||
ALL_ITEM_TABLE[group] = ItemData(get_door_group_item_id(group),
|
||||
ItemClassification.progression, "door group", True, [])
|
||||
ITEMS_BY_GROUP.setdefault("Doors", []).append(group)
|
||||
|
||||
special_items: Dict[str, ItemClassification] = {
|
||||
":)": ItemClassification.filler,
|
||||
|
@ -90,6 +97,11 @@ def load_item_data():
|
|||
ALL_ITEM_TABLE[item_name] = ItemData(get_special_item_id(item_name), classification,
|
||||
"special", False, [])
|
||||
|
||||
if classification == ItemClassification.filler:
|
||||
ITEMS_BY_GROUP.setdefault("Junk", []).append(item_name)
|
||||
elif classification == ItemClassification.trap:
|
||||
ITEMS_BY_GROUP.setdefault("Traps", []).append(item_name)
|
||||
|
||||
for item_name in PROGRESSIVE_ITEMS:
|
||||
ALL_ITEM_TABLE[item_name] = ItemData(get_progressive_item_id(item_name),
|
||||
ItemClassification.progression, "special", False, [])
|
||||
|
|
|
@ -30,10 +30,11 @@ class LingoLocation(Location):
|
|||
|
||||
|
||||
ALL_LOCATION_TABLE: Dict[str, LocationData] = {}
|
||||
LOCATIONS_BY_GROUP: Dict[str, List[str]] = {}
|
||||
|
||||
|
||||
def load_location_data():
|
||||
global ALL_LOCATION_TABLE
|
||||
global ALL_LOCATION_TABLE, LOCATIONS_BY_GROUP
|
||||
|
||||
for room_name, panels in PANELS_BY_ROOM.items():
|
||||
for panel_name, panel in panels.items():
|
||||
|
@ -50,6 +51,9 @@ def load_location_data():
|
|||
LocationData(get_panel_location_id(room_name, panel_name), room_name,
|
||||
[RoomAndPanel(None, panel_name)], classification)
|
||||
|
||||
if panel.achievement:
|
||||
LOCATIONS_BY_GROUP.setdefault("Achievements", []).append(location_name)
|
||||
|
||||
for room_name, doors in DOORS_BY_ROOM.items():
|
||||
for door_name, door in doors.items():
|
||||
if door.skip_location or door.event or door.panels is None:
|
||||
|
|
|
@ -150,9 +150,9 @@ class LingoPlayerLogic:
|
|||
for room_name, room_data in DOORS_BY_ROOM.items():
|
||||
for door_name, door_data in room_data.items():
|
||||
if door_data.skip_item is False and door_data.event is False:
|
||||
if door_data.group is not None and door_shuffle == ShuffleDoors.option_simple:
|
||||
if door_data.door_group is not None and door_shuffle == ShuffleDoors.option_simple:
|
||||
# Grouped doors are handled differently if shuffle doors is on simple.
|
||||
self.set_door_item(room_name, door_name, door_data.group)
|
||||
self.set_door_item(room_name, door_name, door_data.door_group)
|
||||
else:
|
||||
self.handle_non_grouped_door(room_name, door_data, world)
|
||||
|
||||
|
|
|
@ -255,10 +255,15 @@ def process_door(room_name, door_name, door_data):
|
|||
else:
|
||||
junk_item = False
|
||||
|
||||
if "group" in door_data:
|
||||
group = door_data["group"]
|
||||
if "door_group" in door_data:
|
||||
door_group = door_data["door_group"]
|
||||
else:
|
||||
group = None
|
||||
door_group = None
|
||||
|
||||
if "item_group" in door_data:
|
||||
item_group = door_data["item_group"]
|
||||
else:
|
||||
item_group = None
|
||||
|
||||
# panels is a list of panels. Each panel can either be a simple string (the name of a panel in the current room) or
|
||||
# a dictionary specifying a panel in a different room.
|
||||
|
@ -308,7 +313,7 @@ def process_door(room_name, door_name, door_data):
|
|||
painting_ids = []
|
||||
|
||||
door_obj = Door(door_name, item_name, location_name, panels, skip_location, skip_item, has_doors,
|
||||
painting_ids, event, group, include_reduce, junk_item)
|
||||
painting_ids, event, door_group, include_reduce, junk_item, item_group)
|
||||
|
||||
DOORS_BY_ROOM[room_name][door_name] = door_obj
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ door_groups = {}
|
|||
|
||||
directives = Set["entrances", "panels", "doors", "paintings", "progression"]
|
||||
panel_directives = Set["id", "required_room", "required_door", "required_panel", "colors", "check", "exclude_reduce", "tag", "link", "subtag", "achievement", "copy_to_sign", "non_counting", "hunt"]
|
||||
door_directives = Set["id", "painting_id", "panels", "item_name", "location_name", "skip_location", "skip_item", "group", "include_reduce", "junk_item", "event"]
|
||||
door_directives = Set["id", "painting_id", "panels", "item_name", "item_group", "location_name", "skip_location", "skip_item", "door_group", "include_reduce", "junk_item", "event"]
|
||||
painting_directives = Set["id", "enter_only", "exit_only", "orientation", "required_door", "required", "required_when_no_doors", "move", "req_blocked", "req_blocked_when_no_doors"]
|
||||
|
||||
non_counting = 0
|
||||
|
|
Loading…
Reference in New Issue