diff options
| -rw-r--r-- | data/LL1.yaml | 13 | ||||
| -rw-r--r-- | data/generated.dat | bin | 135088 -> 136017 bytes | |||
| -rw-r--r-- | data/ids.yaml | 2 | ||||
| -rw-r--r-- | datatypes.py | 1 | ||||
| -rw-r--r-- | locations.py | 2 | ||||
| -rw-r--r-- | utils/pickle_static_data.py | 9 | ||||
| -rw-r--r-- | utils/validate_config.rb | 9 |
7 files changed, 26 insertions, 10 deletions
| diff --git a/data/LL1.yaml b/data/LL1.yaml index c33cad3..4d6771a 100644 --- a/data/LL1.yaml +++ b/data/LL1.yaml | |||
| @@ -2052,6 +2052,7 @@ | |||
| 2052 | door: Rhyme Room Entrance | 2052 | door: Rhyme Room Entrance |
| 2053 | Art Gallery: | 2053 | Art Gallery: |
| 2054 | warp: True | 2054 | warp: True |
| 2055 | Roof: True # by parkouring through the Bearer shortcut | ||
| 2055 | panels: | 2056 | panels: |
| 2056 | RED: | 2057 | RED: |
| 2057 | id: Color Arrow Room/Panel_red_afar | 2058 | id: Color Arrow Room/Panel_red_afar |
| @@ -2333,6 +2334,7 @@ | |||
| 2333 | # This is the MASTERY on the other side of THE FEARLESS. It can only be | 2334 | # This is the MASTERY on the other side of THE FEARLESS. It can only be |
| 2334 | # accessed by jumping from the top of the tower. | 2335 | # accessed by jumping from the top of the tower. |
| 2335 | id: Master Room/Panel_mastery_mastery8 | 2336 | id: Master Room/Panel_mastery_mastery8 |
| 2337 | location_name: The Fearless - MASTERY | ||
| 2336 | tag: midwhite | 2338 | tag: midwhite |
| 2337 | hunt: True | 2339 | hunt: True |
| 2338 | required_door: | 2340 | required_door: |
| @@ -4098,6 +4100,7 @@ | |||
| 4098 | Number Hunt: | 4100 | Number Hunt: |
| 4099 | room: Number Hunt | 4101 | room: Number Hunt |
| 4100 | door: Door to Directional Gallery | 4102 | door: Door to Directional Gallery |
| 4103 | Roof: True # through ceiling of sunwarp | ||
| 4101 | panels: | 4104 | panels: |
| 4102 | PEPPER: | 4105 | PEPPER: |
| 4103 | id: Backside Room/Panel_pepper_salt | 4106 | id: Backside Room/Panel_pepper_salt |
| @@ -5390,6 +5393,7 @@ | |||
| 5390 | - The Artistic (Apple) | 5393 | - The Artistic (Apple) |
| 5391 | - The Artistic (Lattice) | 5394 | - The Artistic (Lattice) |
| 5392 | check: True | 5395 | check: True |
| 5396 | location_name: The Artistic - Achievement | ||
| 5393 | achievement: The Artistic | 5397 | achievement: The Artistic |
| 5394 | FINE: | 5398 | FINE: |
| 5395 | id: Ceiling Room/Panel_yellow_top_5 | 5399 | id: Ceiling Room/Panel_yellow_top_5 |
| @@ -6046,7 +6050,7 @@ | |||
| 6046 | paintings: | 6050 | paintings: |
| 6047 | - id: symmetry_painting_a_5 | 6051 | - id: symmetry_painting_a_5 |
| 6048 | orientation: east | 6052 | orientation: east |
| 6049 | - id: symmetry_painting_a_5 | 6053 | - id: symmetry_painting_b_5 |
| 6050 | disable: True | 6054 | disable: True |
| 6051 | The Wondrous (Window): | 6055 | The Wondrous (Window): |
| 6052 | entrances: | 6056 | entrances: |
| @@ -6814,9 +6818,6 @@ | |||
| 6814 | tag: syn rhyme | 6818 | tag: syn rhyme |
| 6815 | subtag: bot | 6819 | subtag: bot |
| 6816 | link: rhyme FALL | 6820 | link: rhyme FALL |
| 6817 | LEAP: | ||
| 6818 | id: Double Room/Panel_leap_leap | ||
| 6819 | tag: midwhite | ||
| 6820 | doors: | 6821 | doors: |
| 6821 | Exit: | 6822 | Exit: |
| 6822 | id: Double Room Area Doors/Door_room_exit | 6823 | id: Double Room Area Doors/Door_room_exit |
| @@ -7065,6 +7066,9 @@ | |||
| 7065 | tag: syn rhyme | 7066 | tag: syn rhyme |
| 7066 | subtag: bot | 7067 | subtag: bot |
| 7067 | link: rhyme CREATIVE | 7068 | link: rhyme CREATIVE |
| 7069 | LEAP: | ||
| 7070 | id: Double Room/Panel_leap_leap | ||
| 7071 | tag: midwhite | ||
| 7068 | doors: | 7072 | doors: |
| 7069 | Door to Cross: | 7073 | Door to Cross: |
| 7070 | id: Double Room Area Doors/Door_room_4a | 7074 | id: Double Room Area Doors/Door_room_4a |
| @@ -7272,6 +7276,7 @@ | |||
| 7272 | MASTERY: | 7276 | MASTERY: |
| 7273 | id: Master Room/Panel_mastery_mastery | 7277 | id: Master Room/Panel_mastery_mastery |
| 7274 | tag: midwhite | 7278 | tag: midwhite |
| 7279 | hunt: True | ||
| 7275 | required_door: | 7280 | required_door: |
| 7276 | room: Orange Tower Seventh Floor | 7281 | room: Orange Tower Seventh Floor |
| 7277 | door: Mastery | 7282 | door: Mastery |
| diff --git a/data/generated.dat b/data/generated.dat index 304109c..6c8c925 100644 --- a/data/generated.dat +++ b/data/generated.dat | |||
| Binary files differ | |||
| diff --git a/data/ids.yaml b/data/ids.yaml index 918af7a..1fa06d2 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
| @@ -766,7 +766,6 @@ panels: | |||
| 766 | BOUNCE: 445010 | 766 | BOUNCE: 445010 |
| 767 | SCRAWL: 445011 | 767 | SCRAWL: 445011 |
| 768 | PLUNGE: 445012 | 768 | PLUNGE: 445012 |
| 769 | LEAP: 445013 | ||
| 770 | Rhyme Room (Circle): | 769 | Rhyme Room (Circle): |
| 771 | BIRD: 445014 | 770 | BIRD: 445014 |
| 772 | LETTER: 445015 | 771 | LETTER: 445015 |
| @@ -790,6 +789,7 @@ panels: | |||
| 790 | GEM: 445031 | 789 | GEM: 445031 |
| 791 | INNOVATIVE (Top): 445032 | 790 | INNOVATIVE (Top): 445032 |
| 792 | INNOVATIVE (Bottom): 445033 | 791 | INNOVATIVE (Bottom): 445033 |
| 792 | LEAP: 445013 | ||
| 793 | Room Room: | 793 | Room Room: |
| 794 | DOOR (1): 445034 | 794 | DOOR (1): 445034 |
| 795 | DOOR (2): 445035 | 795 | DOOR (2): 445035 |
| diff --git a/datatypes.py b/datatypes.py index e466558..36141da 100644 --- a/datatypes.py +++ b/datatypes.py | |||
| @@ -63,6 +63,7 @@ class Panel(NamedTuple): | |||
| 63 | exclude_reduce: bool | 63 | exclude_reduce: bool |
| 64 | achievement: bool | 64 | achievement: bool |
| 65 | non_counting: bool | 65 | non_counting: bool |
| 66 | location_name: Optional[str] | ||
| 66 | 67 | ||
| 67 | 68 | ||
| 68 | class Painting(NamedTuple): | 69 | class Painting(NamedTuple): |
| diff --git a/locations.py b/locations.py index 5ffedee..c527e52 100644 --- a/locations.py +++ b/locations.py | |||
| @@ -39,7 +39,7 @@ def load_location_data(): | |||
| 39 | 39 | ||
| 40 | for room_name, panels in PANELS_BY_ROOM.items(): | 40 | for room_name, panels in PANELS_BY_ROOM.items(): |
| 41 | for panel_name, panel in panels.items(): | 41 | for panel_name, panel in panels.items(): |
| 42 | location_name = f"{room_name} - {panel_name}" | 42 | location_name = f"{room_name} - {panel_name}" if panel.location_name is None else panel.location_name |
| 43 | 43 | ||
| 44 | classification = LocationClassification.insanity | 44 | classification = LocationClassification.insanity |
| 45 | if panel.check: | 45 | if panel.check: |
| diff --git a/utils/pickle_static_data.py b/utils/pickle_static_data.py index 10ec69b..e40c21c 100644 --- a/utils/pickle_static_data.py +++ b/utils/pickle_static_data.py | |||
| @@ -150,8 +150,6 @@ def process_entrance(source_room, doors, room_obj): | |||
| 150 | def process_panel(room_name, panel_name, panel_data): | 150 | def process_panel(room_name, panel_name, panel_data): |
| 151 | global PANELS_BY_ROOM | 151 | global PANELS_BY_ROOM |
| 152 | 152 | ||
| 153 | full_name = f"{room_name} - {panel_name}" | ||
| 154 | |||
| 155 | # required_room can either be a single room or a list of rooms. | 153 | # required_room can either be a single room or a list of rooms. |
| 156 | if "required_room" in panel_data: | 154 | if "required_room" in panel_data: |
| 157 | if isinstance(panel_data["required_room"], list): | 155 | if isinstance(panel_data["required_room"], list): |
| @@ -229,8 +227,13 @@ def process_panel(room_name, panel_name, panel_data): | |||
| 229 | else: | 227 | else: |
| 230 | non_counting = False | 228 | non_counting = False |
| 231 | 229 | ||
| 230 | if "location_name" in panel_data: | ||
| 231 | location_name = panel_data["location_name"] | ||
| 232 | else: | ||
| 233 | location_name = None | ||
| 234 | |||
| 232 | panel_obj = Panel(required_rooms, required_doors, required_panels, colors, check, event, exclude_reduce, | 235 | panel_obj = Panel(required_rooms, required_doors, required_panels, colors, check, event, exclude_reduce, |
| 233 | achievement, non_counting) | 236 | achievement, non_counting, location_name) |
| 234 | PANELS_BY_ROOM[room_name][panel_name] = panel_obj | 237 | PANELS_BY_ROOM[room_name][panel_name] = panel_obj |
| 235 | 238 | ||
| 236 | 239 | ||
| diff --git a/utils/validate_config.rb b/utils/validate_config.rb index 831fee2..498980b 100644 --- a/utils/validate_config.rb +++ b/utils/validate_config.rb | |||
| @@ -39,11 +39,12 @@ mentioned_doors = Set[] | |||
| 39 | mentioned_panels = Set[] | 39 | mentioned_panels = Set[] |
| 40 | mentioned_sunwarp_entrances = Set[] | 40 | mentioned_sunwarp_entrances = Set[] |
| 41 | mentioned_sunwarp_exits = Set[] | 41 | mentioned_sunwarp_exits = Set[] |
| 42 | mentioned_paintings = Set[] | ||
| 42 | 43 | ||
| 43 | door_groups = {} | 44 | door_groups = {} |
| 44 | 45 | ||
| 45 | directives = Set["entrances", "panels", "doors", "paintings", "sunwarps", "progression"] | 46 | directives = Set["entrances", "panels", "doors", "paintings", "sunwarps", "progression"] |
| 46 | panel_directives = Set["id", "required_room", "required_door", "required_panel", "colors", "check", "exclude_reduce", "tag", "link", "subtag", "achievement", "copy_to_sign", "non_counting", "hunt"] | 47 | panel_directives = Set["id", "required_room", "required_door", "required_panel", "colors", "check", "exclude_reduce", "tag", "link", "subtag", "achievement", "copy_to_sign", "non_counting", "hunt", "location_name"] |
| 47 | door_directives = Set["id", "painting_id", "panels", "item_name", "item_group", "location_name", "skip_location", "skip_item", "door_group", "include_reduce", "event", "warp_id"] | 48 | door_directives = Set["id", "painting_id", "panels", "item_name", "item_group", "location_name", "skip_location", "skip_item", "door_group", "include_reduce", "event", "warp_id"] |
| 48 | painting_directives = Set["id", "enter_only", "exit_only", "orientation", "required_door", "required", "required_when_no_doors", "move", "req_blocked", "req_blocked_when_no_doors"] | 49 | painting_directives = Set["id", "enter_only", "exit_only", "orientation", "required_door", "required", "required_when_no_doors", "move", "req_blocked", "req_blocked_when_no_doors"] |
| 49 | 50 | ||
| @@ -257,6 +258,12 @@ config.each do |room_name, room| | |||
| 257 | unless paintings.include? painting["id"] then | 258 | unless paintings.include? painting["id"] then |
| 258 | puts "#{room_name} :::: Invalid Painting ID #{painting["id"]}" | 259 | puts "#{room_name} :::: Invalid Painting ID #{painting["id"]}" |
| 259 | end | 260 | end |
| 261 | |||
| 262 | if mentioned_paintings.include?(painting["id"]) then | ||
| 263 | puts "Painting #{painting["id"]} is mentioned more than once" | ||
| 264 | else | ||
| 265 | mentioned_paintings.add(painting["id"]) | ||
| 266 | end | ||
| 260 | else | 267 | else |
| 261 | puts "#{room_name} :::: Painting is missing an ID" | 268 | puts "#{room_name} :::: Painting is missing an ID" |
| 262 | end | 269 | end |
