diff options
-rw-r--r-- | data/LL1.yaml | 296 | ||||
-rw-r--r-- | data/ids.yaml | 124 | ||||
-rw-r--r-- | player_logic.py | 2 | ||||
-rw-r--r-- | test/TestProgressive.py | 24 | ||||
-rw-r--r-- | utils/validate_config.rb | 29 |
5 files changed, 273 insertions, 202 deletions
diff --git a/data/LL1.yaml b/data/LL1.yaml index 2e18766..23afb2b 100644 --- a/data/LL1.yaml +++ b/data/LL1.yaml | |||
@@ -278,10 +278,10 @@ | |||
278 | tag: forbid | 278 | tag: forbid |
279 | check: True | 279 | check: True |
280 | achievement: The Seeker | 280 | achievement: The Seeker |
281 | BEAR: | 281 | BEAR (1): |
282 | id: Heteronym Room/Panel_bear_bear | 282 | id: Heteronym Room/Panel_bear_bear |
283 | tag: midwhite | 283 | tag: midwhite |
284 | MINE: | 284 | MINE (1): |
285 | id: Heteronym Room/Panel_mine_mine | 285 | id: Heteronym Room/Panel_mine_mine |
286 | tag: double midwhite | 286 | tag: double midwhite |
287 | subtag: left | 287 | subtag: left |
@@ -297,7 +297,7 @@ | |||
297 | DOES: | 297 | DOES: |
298 | id: Heteronym Room/Panel_does_does | 298 | id: Heteronym Room/Panel_does_does |
299 | tag: midwhite | 299 | tag: midwhite |
300 | MOBILE: | 300 | MOBILE (1): |
301 | id: Heteronym Room/Panel_mobile_mobile | 301 | id: Heteronym Room/Panel_mobile_mobile |
302 | tag: double midwhite | 302 | tag: double midwhite |
303 | subtag: left | 303 | subtag: left |
@@ -399,8 +399,7 @@ | |||
399 | door: Crossroads Entrance | 399 | door: Crossroads Entrance |
400 | The Tenacious: | 400 | The Tenacious: |
401 | door: Tenacious Entrance | 401 | door: Tenacious Entrance |
402 | Warts Straw Area: | 402 | Near Far Area: True |
403 | door: Symmetry Door | ||
404 | Hedge Maze: | 403 | Hedge Maze: |
405 | door: Shortcut to Hedge Maze | 404 | door: Shortcut to Hedge Maze |
406 | Orange Tower First Floor: | 405 | Orange Tower First Floor: |
@@ -427,14 +426,6 @@ | |||
427 | id: Palindrome Room/Panel_slaughter_laughter | 426 | id: Palindrome Room/Panel_slaughter_laughter |
428 | colors: red | 427 | colors: red |
429 | tag: midred | 428 | tag: midred |
430 | NEAR: | ||
431 | id: Symmetry Room/Panel_near_far | ||
432 | colors: black | ||
433 | tag: botblack | ||
434 | FAR: | ||
435 | id: Symmetry Room/Panel_far_near | ||
436 | colors: black | ||
437 | tag: botblack | ||
438 | TRACE: | 429 | TRACE: |
439 | id: Maze Room/Panel_trace_trace | 430 | id: Maze Room/Panel_trace_trace |
440 | tag: midwhite | 431 | tag: midwhite |
@@ -477,14 +468,6 @@ | |||
477 | group: Entrances to The Tenacious | 468 | group: Entrances to The Tenacious |
478 | panels: | 469 | panels: |
479 | - SLAUGHTER | 470 | - SLAUGHTER |
480 | Symmetry Door: | ||
481 | id: | ||
482 | - Symmetry Room Area Doors/Door_near_far | ||
483 | - Symmetry Room Area Doors/Door_far_near | ||
484 | group: Symmetry Doors | ||
485 | panels: | ||
486 | - NEAR | ||
487 | - FAR | ||
488 | Shortcut to Hedge Maze: | 471 | Shortcut to Hedge Maze: |
489 | id: Maze Area Doors/Door_trace_trace | 472 | id: Maze Area Doors/Door_trace_trace |
490 | group: Hedge Maze Doors | 473 | group: Hedge Maze Doors |
@@ -548,7 +531,7 @@ | |||
548 | id: Lingo Room/Panel_shortcut | 531 | id: Lingo Room/Panel_shortcut |
549 | colors: yellow | 532 | colors: yellow |
550 | tag: midyellow | 533 | tag: midyellow |
551 | PILGRIMAGE: | 534 | PILGRIM: |
552 | id: Lingo Room/Panel_pilgrim | 535 | id: Lingo Room/Panel_pilgrim |
553 | colors: blue | 536 | colors: blue |
554 | tag: midblue | 537 | tag: midblue |
@@ -569,7 +552,7 @@ | |||
569 | Exit: | 552 | Exit: |
570 | event: True | 553 | event: True |
571 | panels: | 554 | panels: |
572 | - PILGRIMAGE | 555 | - PILGRIM |
573 | Pilgrim Room: | 556 | Pilgrim Room: |
574 | entrances: | 557 | entrances: |
575 | The Seeker: | 558 | The Seeker: |
@@ -755,7 +738,7 @@ | |||
755 | panels: | 738 | panels: |
756 | - TURN | 739 | - TURN |
757 | - room: Orange Tower Fourth Floor | 740 | - room: Orange Tower Fourth Floor |
758 | panel: RUNT | 741 | panel: RUNT (1) |
759 | Words Sword Door: | 742 | Words Sword Door: |
760 | id: | 743 | id: |
761 | - Shuffle Room Area Doors/Door_words_shuffle_3 | 744 | - Shuffle Room Area Doors/Door_words_shuffle_3 |
@@ -962,11 +945,36 @@ | |||
962 | - LEVEL (White) | 945 | - LEVEL (White) |
963 | - RACECAR (White) | 946 | - RACECAR (White) |
964 | - SOLOS (White) | 947 | - SOLOS (White) |
948 | Near Far Area: | ||
949 | entrances: | ||
950 | Hub Room: True | ||
951 | Warts Straw Area: | ||
952 | door: Door | ||
953 | panels: | ||
954 | NEAR: | ||
955 | id: Symmetry Room/Panel_near_far | ||
956 | colors: black | ||
957 | tag: botblack | ||
958 | FAR: | ||
959 | id: Symmetry Room/Panel_far_near | ||
960 | colors: black | ||
961 | tag: botblack | ||
962 | doors: | ||
963 | Door: | ||
964 | id: | ||
965 | - Symmetry Room Area Doors/Door_near_far | ||
966 | - Symmetry Room Area Doors/Door_far_near | ||
967 | group: Symmetry Doors | ||
968 | item_name: Symmetry Room - Near Far Door | ||
969 | location_name: Symmetry Room - NEAR, FAR | ||
970 | panels: | ||
971 | - NEAR | ||
972 | - FAR | ||
965 | Warts Straw Area: | 973 | Warts Straw Area: |
966 | entrances: | 974 | entrances: |
967 | Hub Room: | 975 | Near Far Area: |
968 | room: Hub Room | 976 | room: Near Far Area |
969 | door: Symmetry Door | 977 | door: Door |
970 | Leaf Feel Area: | 978 | Leaf Feel Area: |
971 | door: Door | 979 | door: Door |
972 | panels: | 980 | panels: |
@@ -984,6 +992,8 @@ | |||
984 | - Symmetry Room Area Doors/Door_warts_straw | 992 | - Symmetry Room Area Doors/Door_warts_straw |
985 | - Symmetry Room Area Doors/Door_straw_warts | 993 | - Symmetry Room Area Doors/Door_straw_warts |
986 | group: Symmetry Doors | 994 | group: Symmetry Doors |
995 | item_name: Symmetry Room - Warts Straw Door | ||
996 | location_name: Symmetry Room - WARTS, STRAW | ||
987 | panels: | 997 | panels: |
988 | - WARTS | 998 | - WARTS |
989 | - STRAW | 999 | - STRAW |
@@ -1009,6 +1019,8 @@ | |||
1009 | - Symmetry Room Area Doors/Door_leaf_feel | 1019 | - Symmetry Room Area Doors/Door_leaf_feel |
1010 | - Symmetry Room Area Doors/Door_feel_leaf | 1020 | - Symmetry Room Area Doors/Door_feel_leaf |
1011 | group: Symmetry Doors | 1021 | group: Symmetry Doors |
1022 | item_name: Symmetry Room - Leaf Feel Door | ||
1023 | location_name: Symmetry Room - LEAF, FEEL | ||
1012 | panels: | 1024 | panels: |
1013 | - LEAF | 1025 | - LEAF |
1014 | - FEEL | 1026 | - FEEL |
@@ -1120,7 +1132,7 @@ | |||
1120 | tag: forbid | 1132 | tag: forbid |
1121 | required_panel: | 1133 | required_panel: |
1122 | - room: Outside The Bold | 1134 | - room: Outside The Bold |
1123 | panel: MOUTH | 1135 | panel: SOUND |
1124 | - room: Outside The Bold | 1136 | - room: Outside The Bold |
1125 | panel: YEAST | 1137 | panel: YEAST |
1126 | - room: Outside The Bold | 1138 | - room: Outside The Bold |
@@ -1436,7 +1448,7 @@ | |||
1436 | entrances: | 1448 | entrances: |
1437 | The Perceptive: True | 1449 | The Perceptive: True |
1438 | panels: | 1450 | panels: |
1439 | NAPS: | 1451 | SPAN: |
1440 | id: Naps Room/Panel_naps_span | 1452 | id: Naps Room/Panel_naps_span |
1441 | colors: black | 1453 | colors: black |
1442 | tag: midblack | 1454 | tag: midblack |
@@ -1462,7 +1474,7 @@ | |||
1462 | location_name: The Fearless - First Floor Puzzles | 1474 | location_name: The Fearless - First Floor Puzzles |
1463 | group: Fearless Doors | 1475 | group: Fearless Doors |
1464 | panels: | 1476 | panels: |
1465 | - NAPS | 1477 | - SPAN |
1466 | - TEAM | 1478 | - TEAM |
1467 | - TEEM | 1479 | - TEEM |
1468 | - IMPATIENT | 1480 | - IMPATIENT |
@@ -1564,11 +1576,11 @@ | |||
1564 | required_door: | 1576 | required_door: |
1565 | door: Stairs | 1577 | door: Stairs |
1566 | achievement: The Observant | 1578 | achievement: The Observant |
1567 | BACK: | 1579 | FOUR (1): |
1568 | id: Look Room/Panel_four_back | 1580 | id: Look Room/Panel_four_back |
1569 | colors: green | 1581 | colors: green |
1570 | tag: forbid | 1582 | tag: forbid |
1571 | SIDE: | 1583 | FOUR (2): |
1572 | id: Look Room/Panel_four_side | 1584 | id: Look Room/Panel_four_side |
1573 | colors: green | 1585 | colors: green |
1574 | tag: forbid | 1586 | tag: forbid |
@@ -1578,87 +1590,87 @@ | |||
1578 | hunt: True | 1590 | hunt: True |
1579 | required_door: | 1591 | required_door: |
1580 | door: Backside Door | 1592 | door: Backside Door |
1581 | STAIRS: | 1593 | SIX: |
1582 | id: Look Room/Panel_six_stairs | 1594 | id: Look Room/Panel_six_stairs |
1583 | colors: green | 1595 | colors: green |
1584 | tag: forbid | 1596 | tag: forbid |
1585 | WAYS: | 1597 | FOUR (3): |
1586 | id: Look Room/Panel_four_ways | 1598 | id: Look Room/Panel_four_ways |
1587 | colors: green | 1599 | colors: green |
1588 | tag: forbid | 1600 | tag: forbid |
1589 | "ON": | 1601 | TWO (1): |
1590 | id: Look Room/Panel_two_on | 1602 | id: Look Room/Panel_two_on |
1591 | colors: green | 1603 | colors: green |
1592 | tag: forbid | 1604 | tag: forbid |
1593 | UP: | 1605 | TWO (2): |
1594 | id: Look Room/Panel_two_up | 1606 | id: Look Room/Panel_two_up |
1595 | colors: green | 1607 | colors: green |
1596 | tag: forbid | 1608 | tag: forbid |
1597 | SWIMS: | 1609 | FIVE: |
1598 | id: Look Room/Panel_five_swims | 1610 | id: Look Room/Panel_five_swims |
1599 | colors: green | 1611 | colors: green |
1600 | tag: forbid | 1612 | tag: forbid |
1601 | UPSTAIRS: | 1613 | BELOW (1): |
1602 | id: Look Room/Panel_eight_upstairs | 1614 | id: Look Room/Panel_eight_upstairs |
1603 | colors: green | 1615 | colors: green |
1604 | tag: forbid | 1616 | tag: forbid |
1605 | required_door: | 1617 | required_door: |
1606 | door: Stairs | 1618 | door: Stairs |
1607 | TOIL: | 1619 | BLUE: |
1608 | id: Look Room/Panel_blue_toil | 1620 | id: Look Room/Panel_blue_toil |
1609 | colors: green | 1621 | colors: green |
1610 | tag: forbid | 1622 | tag: forbid |
1611 | required_door: | 1623 | required_door: |
1612 | door: Stairs | 1624 | door: Stairs |
1613 | STOP: | 1625 | BELOW (2): |
1614 | id: Look Room/Panel_four_stop | 1626 | id: Look Room/Panel_four_stop |
1615 | colors: green | 1627 | colors: green |
1616 | tag: forbid | 1628 | tag: forbid |
1617 | required_door: | 1629 | required_door: |
1618 | door: Stairs | 1630 | door: Stairs |
1619 | TOP: | 1631 | MINT (1): |
1620 | id: Look Room/Panel_aqua_top | 1632 | id: Look Room/Panel_aqua_top |
1621 | colors: green | 1633 | colors: green |
1622 | tag: forbid | 1634 | tag: forbid |
1623 | required_door: | 1635 | required_door: |
1624 | door: Stairs | 1636 | door: Stairs |
1625 | HI: | 1637 | ESACREWOL: |
1626 | id: Look Room/Panel_blue_hi | 1638 | id: Look Room/Panel_blue_hi |
1627 | colors: green | 1639 | colors: green |
1628 | tag: forbid | 1640 | tag: forbid |
1629 | required_door: | 1641 | required_door: |
1630 | door: Stairs | 1642 | door: Stairs |
1631 | HI (2): | 1643 | EULB: |
1632 | id: Look Room/Panel_blue_hi2 | 1644 | id: Look Room/Panel_blue_hi2 |
1633 | colors: green | 1645 | colors: green |
1634 | tag: forbid | 1646 | tag: forbid |
1635 | required_door: | 1647 | required_door: |
1636 | door: Stairs | 1648 | door: Stairs |
1637 | "31": | 1649 | NUMBERS (1): |
1638 | id: Look Room/Panel_numbers_31 | 1650 | id: Look Room/Panel_numbers_31 |
1639 | colors: green | 1651 | colors: green |
1640 | tag: forbid | 1652 | tag: forbid |
1641 | required_door: | 1653 | required_door: |
1642 | door: Stairs | 1654 | door: Stairs |
1643 | "52": | 1655 | NUMBERS (2): |
1644 | id: Look Room/Panel_numbers_52 | 1656 | id: Look Room/Panel_numbers_52 |
1645 | colors: green | 1657 | colors: green |
1646 | tag: forbid | 1658 | tag: forbid |
1647 | required_door: | 1659 | required_door: |
1648 | door: Stairs | 1660 | door: Stairs |
1649 | OIL: | 1661 | MINT (2): |
1650 | id: Look Room/Panel_aqua_oil | 1662 | id: Look Room/Panel_aqua_oil |
1651 | colors: green | 1663 | colors: green |
1652 | tag: forbid | 1664 | tag: forbid |
1653 | required_door: | 1665 | required_door: |
1654 | door: Stairs | 1666 | door: Stairs |
1655 | BACKSIDE (GREEN): | 1667 | GREEN (1): |
1656 | id: Look Room/Panel_eight_backside | 1668 | id: Look Room/Panel_eight_backside |
1657 | colors: green | 1669 | colors: green |
1658 | tag: forbid | 1670 | tag: forbid |
1659 | required_door: | 1671 | required_door: |
1660 | door: Stairs | 1672 | door: Stairs |
1661 | SIDEWAYS: | 1673 | GREEN (2): |
1662 | id: Look Room/Panel_eight_sideways | 1674 | id: Look Room/Panel_eight_sideways |
1663 | colors: green | 1675 | colors: green |
1664 | tag: forbid | 1676 | tag: forbid |
@@ -1669,13 +1681,13 @@ | |||
1669 | id: Maze Area Doors/Door_backside | 1681 | id: Maze Area Doors/Door_backside |
1670 | group: Backside Doors | 1682 | group: Backside Doors |
1671 | panels: | 1683 | panels: |
1672 | - BACK | 1684 | - FOUR (1) |
1673 | - SIDE | 1685 | - FOUR (2) |
1674 | Stairs: | 1686 | Stairs: |
1675 | id: Maze Area Doors/Door_stairs | 1687 | id: Maze Area Doors/Door_stairs |
1676 | group: Observant Doors | 1688 | group: Observant Doors |
1677 | panels: | 1689 | panels: |
1678 | - STAIRS | 1690 | - SIX |
1679 | The Incomparable: | 1691 | The Incomparable: |
1680 | entrances: | 1692 | entrances: |
1681 | The Observant: True # Assuming that access to The Observant includes access to the right entrance | 1693 | The Observant: True # Assuming that access to The Observant includes access to the right entrance |
@@ -2005,7 +2017,7 @@ | |||
2005 | Courtyard: True | 2017 | Courtyard: True |
2006 | Roof: True # through the sunwarp | 2018 | Roof: True # through the sunwarp |
2007 | panels: | 2019 | panels: |
2008 | RUNT: | 2020 | RUNT (1): |
2009 | id: Shuffle Room/Panel_turn_runt2 | 2021 | id: Shuffle Room/Panel_turn_runt2 |
2010 | colors: yellow | 2022 | colors: yellow |
2011 | tag: midyellow | 2023 | tag: midyellow |
@@ -2219,6 +2231,7 @@ | |||
2219 | - Master Room Doors/Door_master_down | 2231 | - Master Room Doors/Door_master_down |
2220 | - Master Room Doors/Door_master_down2 | 2232 | - Master Room Doors/Door_master_down2 |
2221 | skip_location: True | 2233 | skip_location: True |
2234 | item_name: Mastery | ||
2222 | panels: | 2235 | panels: |
2223 | - THE MASTER | 2236 | - THE MASTER |
2224 | Mastery Panels: | 2237 | Mastery Panels: |
@@ -2235,25 +2248,25 @@ | |||
2235 | panel: MASTERY | 2248 | panel: MASTERY |
2236 | - room: Hedge Maze | 2249 | - room: Hedge Maze |
2237 | panel: MASTERY (1) | 2250 | panel: MASTERY (1) |
2238 | - room: Roof | 2251 | - room: Behind A Smile |
2239 | panel: MASTERY (1) | 2252 | panel: MASTERY |
2240 | - room: Roof | 2253 | - room: Sixteen Colorful Squares |
2241 | panel: MASTERY (2) | 2254 | panel: MASTERY |
2242 | - MASTERY | 2255 | - MASTERY |
2243 | - room: Hedge Maze | 2256 | - room: Hedge Maze |
2244 | panel: MASTERY (2) | 2257 | panel: MASTERY (2) |
2245 | - room: Roof | 2258 | - room: Among Treetops |
2246 | panel: MASTERY (3) | 2259 | panel: MASTERY |
2247 | - room: Roof | 2260 | - room: Horizon's Edge |
2248 | panel: MASTERY (4) | 2261 | panel: MASTERY |
2249 | - room: Roof | 2262 | - room: Beneath The Lookout |
2250 | panel: MASTERY (5) | 2263 | panel: MASTERY |
2251 | - room: Elements Area | 2264 | - room: Elements Area |
2252 | panel: MASTERY | 2265 | panel: MASTERY |
2253 | - room: Pilgrim Antechamber | 2266 | - room: Pilgrim Antechamber |
2254 | panel: MASTERY | 2267 | panel: MASTERY |
2255 | - room: Roof | 2268 | - room: Rooftop Staircase |
2256 | panel: MASTERY (6) | 2269 | panel: MASTERY |
2257 | paintings: | 2270 | paintings: |
2258 | - id: map_painting2 | 2271 | - id: map_painting2 |
2259 | orientation: north | 2272 | orientation: north |
@@ -2265,52 +2278,75 @@ | |||
2265 | Crossroads: | 2278 | Crossroads: |
2266 | room: Crossroads | 2279 | room: Crossroads |
2267 | door: Roof Access | 2280 | door: Roof Access |
2281 | Behind A Smile: | ||
2282 | entrances: | ||
2283 | Roof: True | ||
2268 | panels: | 2284 | panels: |
2269 | MASTERY (1): | 2285 | MASTERY: |
2270 | id: Master Room/Panel_mastery_mastery6 | 2286 | id: Master Room/Panel_mastery_mastery6 |
2271 | tag: midwhite | 2287 | tag: midwhite |
2272 | hunt: True | 2288 | hunt: True |
2273 | required_door: | 2289 | required_door: |
2274 | room: Orange Tower Seventh Floor | 2290 | room: Orange Tower Seventh Floor |
2275 | door: Mastery | 2291 | door: Mastery |
2276 | MASTERY (2): | 2292 | STAIRCASE: |
2293 | id: Open Areas/Panel_staircase | ||
2294 | tag: midwhite | ||
2295 | Sixteen Colorful Squares: | ||
2296 | entrances: | ||
2297 | Roof: True | ||
2298 | panels: | ||
2299 | MASTERY: | ||
2277 | id: Master Room/Panel_mastery_mastery7 | 2300 | id: Master Room/Panel_mastery_mastery7 |
2278 | tag: midwhite | 2301 | tag: midwhite |
2279 | hunt: True | 2302 | hunt: True |
2280 | required_door: | 2303 | required_door: |
2281 | room: Orange Tower Seventh Floor | 2304 | room: Orange Tower Seventh Floor |
2282 | door: Mastery | 2305 | door: Mastery |
2283 | MASTERY (3): | 2306 | Among Treetops: |
2307 | entrances: | ||
2308 | Roof: True | ||
2309 | panels: | ||
2310 | MASTERY: | ||
2284 | id: Master Room/Panel_mastery_mastery10 | 2311 | id: Master Room/Panel_mastery_mastery10 |
2285 | tag: midwhite | 2312 | tag: midwhite |
2286 | hunt: True | 2313 | hunt: True |
2287 | required_door: | 2314 | required_door: |
2288 | room: Orange Tower Seventh Floor | 2315 | room: Orange Tower Seventh Floor |
2289 | door: Mastery | 2316 | door: Mastery |
2290 | MASTERY (4): | 2317 | Horizon's Edge: |
2318 | entrances: | ||
2319 | Roof: True | ||
2320 | panels: | ||
2321 | MASTERY: | ||
2291 | id: Master Room/Panel_mastery_mastery11 | 2322 | id: Master Room/Panel_mastery_mastery11 |
2292 | tag: midwhite | 2323 | tag: midwhite |
2293 | hunt: True | 2324 | hunt: True |
2294 | required_door: | 2325 | required_door: |
2295 | room: Orange Tower Seventh Floor | 2326 | room: Orange Tower Seventh Floor |
2296 | door: Mastery | 2327 | door: Mastery |
2297 | MASTERY (5): | 2328 | Beneath The Lookout: |
2329 | entrances: | ||
2330 | Roof: True | ||
2331 | panels: | ||
2332 | MASTERY: | ||
2298 | id: Master Room/Panel_mastery_mastery12 | 2333 | id: Master Room/Panel_mastery_mastery12 |
2299 | tag: midwhite | 2334 | tag: midwhite |
2300 | hunt: True | 2335 | hunt: True |
2301 | required_door: | 2336 | required_door: |
2302 | room: Orange Tower Seventh Floor | 2337 | room: Orange Tower Seventh Floor |
2303 | door: Mastery | 2338 | door: Mastery |
2304 | MASTERY (6): | 2339 | Rooftop Staircase: |
2340 | entrances: | ||
2341 | Roof: True | ||
2342 | panels: | ||
2343 | MASTERY: | ||
2305 | id: Master Room/Panel_mastery_mastery15 | 2344 | id: Master Room/Panel_mastery_mastery15 |
2306 | tag: midwhite | 2345 | tag: midwhite |
2307 | hunt: True | 2346 | hunt: True |
2308 | required_door: | 2347 | required_door: |
2309 | room: Orange Tower Seventh Floor | 2348 | room: Orange Tower Seventh Floor |
2310 | door: Mastery | 2349 | door: Mastery |
2311 | STAIRCASE: | ||
2312 | id: Open Areas/Panel_staircase | ||
2313 | tag: midwhite | ||
2314 | Orange Tower Basement: | 2350 | Orange Tower Basement: |
2315 | entrances: | 2351 | entrances: |
2316 | Orange Tower Sixth Floor: | 2352 | Orange Tower Sixth Floor: |
@@ -2632,9 +2668,7 @@ | |||
2632 | tag: forbid | 2668 | tag: forbid |
2633 | doors: | 2669 | doors: |
2634 | Progress Door: | 2670 | Progress Door: |
2635 | id: | 2671 | id: Doorway Room Doors/Door_gray |
2636 | - Doorway Room Doors/Door_gray | ||
2637 | - Doorway Room Doors/Door_gray2 # See comment below | ||
2638 | item_name: The Colorful - Gray Door | 2672 | item_name: The Colorful - Gray Door |
2639 | location_name: The Colorful - Gray | 2673 | location_name: The Colorful - Gray |
2640 | group: Colorful Doors | 2674 | group: Colorful Doors |
@@ -2784,6 +2818,7 @@ | |||
2784 | door: Exit | 2818 | door: Exit |
2785 | Eight Alcove: | 2819 | Eight Alcove: |
2786 | door: Eight Door | 2820 | door: Eight Door |
2821 | The Optimistic: True | ||
2787 | panels: | 2822 | panels: |
2788 | SEVEN (1): | 2823 | SEVEN (1): |
2789 | id: Backside Room/Panel_seven_seven_5 | 2824 | id: Backside Room/Panel_seven_seven_5 |
@@ -2833,21 +2868,11 @@ | |||
2833 | id: Rhyme Room/Panel_locked_knocked | 2868 | id: Rhyme Room/Panel_locked_knocked |
2834 | colors: purple | 2869 | colors: purple |
2835 | tag: midpurp | 2870 | tag: midpurp |
2836 | BACKSIDE: | 2871 | PAST (1): |
2837 | id: Backside Room/Panel_backside_1 | ||
2838 | tag: midwhite | ||
2839 | The Optimistic: | ||
2840 | id: Countdown Panels/Panel_optimistic_optimistic | ||
2841 | check: True | ||
2842 | tag: forbid | ||
2843 | required_door: | ||
2844 | door: Backsides | ||
2845 | achievement: The Optimistic | ||
2846 | PAST: | ||
2847 | id: Shuffle Room/Panel_past_present | 2872 | id: Shuffle Room/Panel_past_present |
2848 | colors: brown | 2873 | colors: brown |
2849 | tag: botbrown | 2874 | tag: botbrown |
2850 | FUTURE: | 2875 | FUTURE (1): |
2851 | id: Shuffle Room/Panel_future_present | 2876 | id: Shuffle Room/Panel_future_present |
2852 | colors: | 2877 | colors: |
2853 | - brown | 2878 | - brown |
@@ -2944,17 +2969,6 @@ | |||
2944 | panel: GREEN | 2969 | panel: GREEN |
2945 | - room: Outside The Agreeable | 2970 | - room: Outside The Agreeable |
2946 | panel: PURPLE | 2971 | panel: PURPLE |
2947 | Backsides: | ||
2948 | event: True | ||
2949 | panels: | ||
2950 | - room: The Observant | ||
2951 | panel: BACKSIDE | ||
2952 | - room: Yellow Backside Area | ||
2953 | panel: BACKSIDE | ||
2954 | - room: Directional Gallery | ||
2955 | panel: BACKSIDE | ||
2956 | - room: The Bearer | ||
2957 | panel: BACKSIDE | ||
2958 | Eight Door: | 2972 | Eight Door: |
2959 | id: Red Blue Purple Room Area Doors/Door_a_strands2 | 2973 | id: Red Blue Purple Room Area Doors/Door_a_strands2 |
2960 | skip_location: True | 2974 | skip_location: True |
@@ -3064,6 +3078,28 @@ | |||
3064 | id: Rhyme Room/Panel_bed_dead | 3078 | id: Rhyme Room/Panel_bed_dead |
3065 | colors: purple | 3079 | colors: purple |
3066 | tag: toppurp | 3080 | tag: toppurp |
3081 | The Optimistic: | ||
3082 | entrances: | ||
3083 | Outside The Initiated: True | ||
3084 | panels: | ||
3085 | BACKSIDE: | ||
3086 | id: Backside Room/Panel_backside_1 | ||
3087 | tag: midwhite | ||
3088 | Achievement: | ||
3089 | id: Countdown Panels/Panel_optimistic_optimistic | ||
3090 | check: True | ||
3091 | tag: forbid | ||
3092 | required_panel: | ||
3093 | - panel: BACKSIDE | ||
3094 | - room: The Observant | ||
3095 | panel: BACKSIDE | ||
3096 | - room: Yellow Backside Area | ||
3097 | panel: BACKSIDE | ||
3098 | - room: Directional Gallery | ||
3099 | panel: BACKSIDE | ||
3100 | - room: The Bearer | ||
3101 | panel: BACKSIDE | ||
3102 | achievement: The Optimistic | ||
3067 | The Traveled: | 3103 | The Traveled: |
3068 | entrances: | 3104 | entrances: |
3069 | Hub Room: | 3105 | Hub Room: |
@@ -3164,7 +3200,7 @@ | |||
3164 | Outside The Undeterred: True | 3200 | Outside The Undeterred: True |
3165 | Crossroads: True | 3201 | Crossroads: True |
3166 | Hedge Maze: True | 3202 | Hedge Maze: True |
3167 | Outside The Initiated: True # backside | 3203 | The Optimistic: True # backside |
3168 | Directional Gallery: True # backside | 3204 | Directional Gallery: True # backside |
3169 | Yellow Backside Area: True | 3205 | Yellow Backside Area: True |
3170 | The Bearer: | 3206 | The Bearer: |
@@ -3181,7 +3217,7 @@ | |||
3181 | door: Shortcut to The Steady | 3217 | door: Shortcut to The Steady |
3182 | The Bearer: | 3218 | The Bearer: |
3183 | room: The Bearer | 3219 | room: The Bearer |
3184 | door: Shortcut to The Bold | 3220 | door: Entrance |
3185 | Directional Gallery: | 3221 | Directional Gallery: |
3186 | # There is a painting warp here from the Directional Gallery, but it | 3222 | # There is a painting warp here from the Directional Gallery, but it |
3187 | # only appears when the sixes are revealed. It could be its own item if | 3223 | # only appears when the sixes are revealed. It could be its own item if |
@@ -3252,7 +3288,7 @@ | |||
3252 | tag: midwhite | 3288 | tag: midwhite |
3253 | required_door: | 3289 | required_door: |
3254 | door: Stargazer Door | 3290 | door: Stargazer Door |
3255 | MOUTH: | 3291 | SOUND: |
3256 | id: Cross Room/Panel_mouth_south | 3292 | id: Cross Room/Panel_mouth_south |
3257 | colors: purple | 3293 | colors: purple |
3258 | tag: midpurp | 3294 | tag: midpurp |
@@ -3596,7 +3632,7 @@ | |||
3596 | id: Blue Room/Panel_bone_skeleton | 3632 | id: Blue Room/Panel_bone_skeleton |
3597 | colors: blue | 3633 | colors: blue |
3598 | tag: botblue | 3634 | tag: botblue |
3599 | EYE: | 3635 | EYE (1): |
3600 | id: Blue Room/Panel_mouth_face | 3636 | id: Blue Room/Panel_mouth_face |
3601 | colors: blue | 3637 | colors: blue |
3602 | tag: double botblue | 3638 | tag: double botblue |
@@ -4115,7 +4151,7 @@ | |||
4115 | The Bearer: | 4151 | The Bearer: |
4116 | entrances: | 4152 | entrances: |
4117 | Outside The Bold: | 4153 | Outside The Bold: |
4118 | door: Shortcut to The Bold | 4154 | door: Entrance |
4119 | Orange Tower Fifth Floor: | 4155 | Orange Tower Fifth Floor: |
4120 | room: Art Gallery | 4156 | room: Art Gallery |
4121 | door: Exit | 4157 | door: Exit |
@@ -4192,7 +4228,7 @@ | |||
4192 | - yellow | 4228 | - yellow |
4193 | tag: mid red yellow | 4229 | tag: mid red yellow |
4194 | doors: | 4230 | doors: |
4195 | Shortcut to The Bold: | 4231 | Entrance: |
4196 | id: Red Blue Purple Room Area Doors/Door_middle_middle | 4232 | id: Red Blue Purple Room Area Doors/Door_middle_middle |
4197 | panels: | 4233 | panels: |
4198 | - MIDDLE | 4234 | - MIDDLE |
@@ -4321,21 +4357,21 @@ | |||
4321 | door: Side Area Shortcut | 4357 | door: Side Area Shortcut |
4322 | Roof: True | 4358 | Roof: True |
4323 | panels: | 4359 | panels: |
4324 | SNOW: | 4360 | SMILE: |
4325 | id: Cross Room/Panel_smile_lime | 4361 | id: Cross Room/Panel_smile_lime |
4326 | colors: | 4362 | colors: |
4327 | - red | 4363 | - red |
4328 | - yellow | 4364 | - yellow |
4329 | tag: mid yellow red | 4365 | tag: mid yellow red |
4330 | SMILE: | 4366 | required_panel: |
4367 | room: The Bearer (North) | ||
4368 | panel: WARTS | ||
4369 | SNOW: | ||
4331 | id: Cross Room/Panel_snow_won | 4370 | id: Cross Room/Panel_snow_won |
4332 | colors: | 4371 | colors: |
4333 | - red | 4372 | - red |
4334 | - yellow | 4373 | - yellow |
4335 | tag: mid red yellow | 4374 | tag: mid red yellow |
4336 | required_panel: | ||
4337 | room: The Bearer (North) | ||
4338 | panel: WARTS | ||
4339 | doors: | 4375 | doors: |
4340 | Side Area Shortcut: | 4376 | Side Area Shortcut: |
4341 | event: True | 4377 | event: True |
@@ -4414,7 +4450,7 @@ | |||
4414 | - room: The Bearer (West) | 4450 | - room: The Bearer (West) |
4415 | panel: SMILE | 4451 | panel: SMILE |
4416 | - room: Outside The Bold | 4452 | - room: Outside The Bold |
4417 | panel: MOUTH | 4453 | panel: SOUND |
4418 | - room: Outside The Bold | 4454 | - room: Outside The Bold |
4419 | panel: YEAST | 4455 | panel: YEAST |
4420 | - room: Outside The Bold | 4456 | - room: Outside The Bold |
@@ -6129,7 +6165,7 @@ | |||
6129 | id: Painting Room/Panel_our_four | 6165 | id: Painting Room/Panel_our_four |
6130 | colors: blue | 6166 | colors: blue |
6131 | tag: midblue | 6167 | tag: midblue |
6132 | ONE ROAD MANY TURNS: | 6168 | ORDER: |
6133 | id: Painting Room/Panel_order_onepathmanyturns | 6169 | id: Painting Room/Panel_order_onepathmanyturns |
6134 | tag: forbid | 6170 | tag: forbid |
6135 | colors: | 6171 | colors: |
@@ -6186,7 +6222,7 @@ | |||
6186 | include_reduce: True | 6222 | include_reduce: True |
6187 | item_name: Orange Tower Fifth Floor - Quadruple Intersection | 6223 | item_name: Orange Tower Fifth Floor - Quadruple Intersection |
6188 | panels: | 6224 | panels: |
6189 | - ONE ROAD MANY TURNS | 6225 | - ORDER |
6190 | paintings: | 6226 | paintings: |
6191 | - id: smile_painting_3 | 6227 | - id: smile_painting_3 |
6192 | orientation: west | 6228 | orientation: west |
@@ -6678,7 +6714,7 @@ | |||
6678 | - room: Rhyme Room (Target) | 6714 | - room: Rhyme Room (Target) |
6679 | panel: PISTOL | 6715 | panel: PISTOL |
6680 | - room: Rhyme Room (Target) | 6716 | - room: Rhyme Room (Target) |
6681 | panel: QUARTZ | 6717 | panel: GEM |
6682 | Rhyme Room (Target): | 6718 | Rhyme Room (Target): |
6683 | entrances: | 6719 | entrances: |
6684 | Rhyme Room (Smiley): # one-way | 6720 | Rhyme Room (Smiley): # one-way |
@@ -6706,7 +6742,7 @@ | |||
6706 | tag: syn rhyme | 6742 | tag: syn rhyme |
6707 | subtag: top | 6743 | subtag: top |
6708 | link: rhyme CRYSTAL | 6744 | link: rhyme CRYSTAL |
6709 | QUARTZ: | 6745 | GEM: |
6710 | id: Double Room/Panel_crystal_syn | 6746 | id: Double Room/Panel_crystal_syn |
6711 | colors: purple | 6747 | colors: purple |
6712 | tag: syn rhyme | 6748 | tag: syn rhyme |
@@ -6731,7 +6767,7 @@ | |||
6731 | group: Rhyme Room Doors | 6767 | group: Rhyme Room Doors |
6732 | panels: | 6768 | panels: |
6733 | - PISTOL | 6769 | - PISTOL |
6734 | - QUARTZ | 6770 | - GEM |
6735 | - INNOVATIVE (Top) | 6771 | - INNOVATIVE (Top) |
6736 | - INNOVATIVE (Bottom) | 6772 | - INNOVATIVE (Bottom) |
6737 | paintings: | 6773 | paintings: |
@@ -6789,22 +6825,18 @@ | |||
6789 | id: Panel Room/Panel_room_floor_5 | 6825 | id: Panel Room/Panel_room_floor_5 |
6790 | colors: gray | 6826 | colors: gray |
6791 | tag: forbid | 6827 | tag: forbid |
6792 | FLOOR (7): | 6828 | FLOOR (6): |
6793 | id: Panel Room/Panel_room_floor_7 | 6829 | id: Panel Room/Panel_room_floor_7 |
6794 | colors: gray | 6830 | colors: gray |
6795 | tag: forbid | 6831 | tag: forbid |
6796 | FLOOR (8): | 6832 | FLOOR (7): |
6797 | id: Panel Room/Panel_room_floor_8 | 6833 | id: Panel Room/Panel_room_floor_8 |
6798 | colors: gray | 6834 | colors: gray |
6799 | tag: forbid | 6835 | tag: forbid |
6800 | FLOOR (9): | 6836 | FLOOR (8): |
6801 | id: Panel Room/Panel_room_floor_9 | 6837 | id: Panel Room/Panel_room_floor_9 |
6802 | colors: gray | 6838 | colors: gray |
6803 | tag: forbid | 6839 | tag: forbid |
6804 | FLOOR (10): | ||
6805 | id: Panel Room/Panel_room_floor_10 | ||
6806 | colors: gray | ||
6807 | tag: forbid | ||
6808 | CEILING (1): | 6840 | CEILING (1): |
6809 | id: Panel Room/Panel_room_ceiling_1 | 6841 | id: Panel Room/Panel_room_ceiling_1 |
6810 | colors: gray | 6842 | colors: gray |
@@ -6825,6 +6857,10 @@ | |||
6825 | id: Panel Room/Panel_room_ceiling_5 | 6857 | id: Panel Room/Panel_room_ceiling_5 |
6826 | colors: gray | 6858 | colors: gray |
6827 | tag: forbid | 6859 | tag: forbid |
6860 | CEILING (6): | ||
6861 | id: Panel Room/Panel_room_floor_10 | ||
6862 | colors: gray | ||
6863 | tag: forbid | ||
6828 | WALL (1): | 6864 | WALL (1): |
6829 | id: Panel Room/Panel_room_wall_1 | 6865 | id: Panel Room/Panel_room_wall_1 |
6830 | colors: gray | 6866 | colors: gray |
@@ -7083,7 +7119,7 @@ | |||
7083 | id: Hangry Room/Panel_red_top_3 | 7119 | id: Hangry Room/Panel_red_top_3 |
7084 | colors: red | 7120 | colors: red |
7085 | tag: topred | 7121 | tag: topred |
7086 | FLUMMOXED: | 7122 | FLUSTERED: |
7087 | id: Hangry Room/Panel_red_top_4 | 7123 | id: Hangry Room/Panel_red_top_4 |
7088 | colors: red | 7124 | colors: red |
7089 | tag: topred | 7125 | tag: topred |
@@ -7586,7 +7622,7 @@ | |||
7586 | - black | 7622 | - black |
7587 | - blue | 7623 | - blue |
7588 | tag: chain mid black blue | 7624 | tag: chain mid black blue |
7589 | BREAD: | 7625 | CHEESE: |
7590 | id: Challenge Room/Panel_bread_mold | 7626 | id: Challenge Room/Panel_bread_mold |
7591 | colors: brown | 7627 | colors: brown |
7592 | tag: double botbrown | 7628 | tag: double botbrown |
@@ -7633,7 +7669,7 @@ | |||
7633 | id: Challenge Room/Panel_double_anagram_5 | 7669 | id: Challenge Room/Panel_double_anagram_5 |
7634 | colors: yellow | 7670 | colors: yellow |
7635 | tag: midyellow | 7671 | tag: midyellow |
7636 | FACTS: | 7672 | FACTS (Chain): |
7637 | id: Challenge Room/Panel_facts | 7673 | id: Challenge Room/Panel_facts |
7638 | colors: | 7674 | colors: |
7639 | - red | 7675 | - red |
@@ -7643,18 +7679,18 @@ | |||
7643 | id: Challenge Room/Panel_facts2 | 7679 | id: Challenge Room/Panel_facts2 |
7644 | colors: red | 7680 | colors: red |
7645 | tag: forbid | 7681 | tag: forbid |
7646 | FACTS (3): | 7682 | FACTS (2): |
7647 | id: Challenge Room/Panel_facts3 | 7683 | id: Challenge Room/Panel_facts3 |
7648 | tag: forbid | 7684 | tag: forbid |
7649 | FACTS (4): | 7685 | FACTS (3): |
7650 | id: Challenge Room/Panel_facts4 | 7686 | id: Challenge Room/Panel_facts4 |
7651 | colors: blue | 7687 | colors: blue |
7652 | tag: forbid | 7688 | tag: forbid |
7653 | FACTS (5): | 7689 | FACTS (4): |
7654 | id: Challenge Room/Panel_facts5 | 7690 | id: Challenge Room/Panel_facts5 |
7655 | colors: blue | 7691 | colors: blue |
7656 | tag: forbid | 7692 | tag: forbid |
7657 | FACTS (6): | 7693 | FACTS (5): |
7658 | id: Challenge Room/Panel_facts6 | 7694 | id: Challenge Room/Panel_facts6 |
7659 | colors: blue | 7695 | colors: blue |
7660 | tag: forbid | 7696 | tag: forbid |
diff --git a/data/ids.yaml b/data/ids.yaml index 56c22ad..4cad948 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
@@ -31,12 +31,12 @@ panels: | |||
31 | LIES: 444408 | 31 | LIES: 444408 |
32 | The Seeker: | 32 | The Seeker: |
33 | Achievement: 444409 | 33 | Achievement: 444409 |
34 | BEAR: 444410 | 34 | BEAR (1): 444410 |
35 | MINE: 444411 | 35 | MINE (1): 444411 |
36 | MINE (2): 444412 | 36 | MINE (2): 444412 |
37 | BOW: 444413 | 37 | BOW: 444413 |
38 | DOES: 444414 | 38 | DOES: 444414 |
39 | MOBILE: 444415 | 39 | MOBILE (1): 444415 |
40 | MOBILE (2): 444416 | 40 | MOBILE (2): 444416 |
41 | DESERT: 444417 | 41 | DESERT: 444417 |
42 | DESSERT: 444418 | 42 | DESSERT: 444418 |
@@ -57,8 +57,6 @@ panels: | |||
57 | Hub Room: | 57 | Hub Room: |
58 | ORDER: 444432 | 58 | ORDER: 444432 |
59 | SLAUGHTER: 444433 | 59 | SLAUGHTER: 444433 |
60 | NEAR: 444434 | ||
61 | FAR: 444435 | ||
62 | TRACE: 444436 | 60 | TRACE: 444436 |
63 | RAT: 444437 | 61 | RAT: 444437 |
64 | OPEN: 444438 | 62 | OPEN: 444438 |
@@ -72,7 +70,7 @@ panels: | |||
72 | EIGHT: 444445 | 70 | EIGHT: 444445 |
73 | Pilgrim Antechamber: | 71 | Pilgrim Antechamber: |
74 | HOT CRUST: 444446 | 72 | HOT CRUST: 444446 |
75 | PILGRIMAGE: 444447 | 73 | PILGRIM: 444447 |
76 | MASTERY: 444448 | 74 | MASTERY: 444448 |
77 | Pilgrim Room: | 75 | Pilgrim Room: |
78 | THIS: 444449 | 76 | THIS: 444449 |
@@ -123,6 +121,9 @@ panels: | |||
123 | RACECAR (White): 444489 | 121 | RACECAR (White): 444489 |
124 | SOLOS (White): 444490 | 122 | SOLOS (White): 444490 |
125 | Achievement: 444491 | 123 | Achievement: 444491 |
124 | Near Far Area: | ||
125 | NEAR: 444434 | ||
126 | FAR: 444435 | ||
126 | Warts Straw Area: | 127 | Warts Straw Area: |
127 | WARTS: 444492 | 128 | WARTS: 444492 |
128 | STRAW: 444493 | 129 | STRAW: 444493 |
@@ -187,7 +188,7 @@ panels: | |||
187 | Achievement: 444546 | 188 | Achievement: 444546 |
188 | GAZE: 444547 | 189 | GAZE: 444547 |
189 | The Fearless (First Floor): | 190 | The Fearless (First Floor): |
190 | NAPS: 444548 | 191 | SPAN: 444548 |
191 | TEAM: 444549 | 192 | TEAM: 444549 |
192 | TEEM: 444550 | 193 | TEEM: 444550 |
193 | IMPATIENT: 444551 | 194 | IMPATIENT: 444551 |
@@ -208,25 +209,25 @@ panels: | |||
208 | EVEN: 444564 | 209 | EVEN: 444564 |
209 | The Observant: | 210 | The Observant: |
210 | Achievement: 444565 | 211 | Achievement: 444565 |
211 | BACK: 444566 | 212 | FOUR (1): 444566 |
212 | SIDE: 444567 | 213 | FOUR (2): 444567 |
213 | BACKSIDE: 444568 | 214 | BACKSIDE: 444568 |
214 | STAIRS: 444569 | 215 | SIX: 444569 |
215 | WAYS: 444570 | 216 | FOUR (3): 444570 |
216 | 'ON': 444571 | 217 | TWO (1): 444571 |
217 | UP: 444572 | 218 | TWO (2): 444572 |
218 | SWIMS: 444573 | 219 | FIVE: 444573 |
219 | UPSTAIRS: 444574 | 220 | BELOW (1): 444574 |
220 | TOIL: 444575 | 221 | BLUE: 444575 |
221 | STOP: 444576 | 222 | BELOW (2): 444576 |
222 | TOP: 444577 | 223 | MINT (1): 444577 |
223 | HI: 444578 | 224 | ESACREWOL: 444578 |
224 | HI (2): 444579 | 225 | EULB: 444579 |
225 | '31': 444580 | 226 | NUMBERS (1): 444580 |
226 | '52': 444581 | 227 | NUMBERS (2): 444581 |
227 | OIL: 444582 | 228 | MINT (2): 444582 |
228 | BACKSIDE (GREEN): 444583 | 229 | GREEN (1): 444583 |
229 | SIDEWAYS: 444584 | 230 | GREEN (2): 444584 |
230 | The Incomparable: | 231 | The Incomparable: |
231 | Achievement: 444585 | 232 | Achievement: 444585 |
232 | A (One): 444586 | 233 | A (One): 444586 |
@@ -254,7 +255,7 @@ panels: | |||
254 | RED: 444605 | 255 | RED: 444605 |
255 | DEER + WREN: 444606 | 256 | DEER + WREN: 444606 |
256 | Orange Tower Fourth Floor: | 257 | Orange Tower Fourth Floor: |
257 | RUNT: 444607 | 258 | RUNT (1): 444607 |
258 | RUNT (2): 444608 | 259 | RUNT (2): 444608 |
259 | LEARNS + UNSEW: 444609 | 260 | LEARNS + UNSEW: 444609 |
260 | HOT CRUSTS: 444610 | 261 | HOT CRUSTS: 444610 |
@@ -279,14 +280,19 @@ panels: | |||
279 | THE END: 444620 | 280 | THE END: 444620 |
280 | THE MASTER: 444621 | 281 | THE MASTER: 444621 |
281 | MASTERY: 444622 | 282 | MASTERY: 444622 |
282 | Roof: | 283 | Behind A Smile: |
283 | MASTERY (1): 444623 | 284 | MASTERY: 444623 |
284 | MASTERY (2): 444624 | ||
285 | MASTERY (3): 444625 | ||
286 | MASTERY (4): 444626 | ||
287 | MASTERY (5): 444627 | ||
288 | MASTERY (6): 444628 | ||
289 | STAIRCASE: 444629 | 285 | STAIRCASE: 444629 |
286 | Sixteen Colorful Squares: | ||
287 | MASTERY: 444624 | ||
288 | Among Treetops: | ||
289 | MASTERY: 444625 | ||
290 | Horizon's Edge: | ||
291 | MASTERY: 444626 | ||
292 | Beneath The Lookout: | ||
293 | MASTERY: 444627 | ||
294 | Rooftop Staircase: | ||
295 | MASTERY: 444628 | ||
290 | Orange Tower Basement: | 296 | Orange Tower Basement: |
291 | MASTERY: 444630 | 297 | MASTERY: 444630 |
292 | THE LIBRARY: 444631 | 298 | THE LIBRARY: 444631 |
@@ -341,16 +347,17 @@ panels: | |||
341 | ORANGE: 444663 | 347 | ORANGE: 444663 |
342 | UNCOVER: 444664 | 348 | UNCOVER: 444664 |
343 | OXEN: 444665 | 349 | OXEN: 444665 |
344 | BACKSIDE: 444666 | 350 | PAST (1): 444668 |
345 | The Optimistic: 444667 | 351 | FUTURE (1): 444669 |
346 | PAST: 444668 | ||
347 | FUTURE: 444669 | ||
348 | FUTURE (2): 444670 | 352 | FUTURE (2): 444670 |
349 | PAST (2): 444671 | 353 | PAST (2): 444671 |
350 | PRESENT: 444672 | 354 | PRESENT: 444672 |
351 | SMILE: 444673 | 355 | SMILE: 444673 |
352 | ANGERED: 444674 | 356 | ANGERED: 444674 |
353 | VOTE: 444675 | 357 | VOTE: 444675 |
358 | The Optimistic: | ||
359 | BACKSIDE: 444666 | ||
360 | Achievement: 444667 | ||
354 | The Initiated: | 361 | The Initiated: |
355 | Achievement: 444676 | 362 | Achievement: 444676 |
356 | DAUGHTER: 444677 | 363 | DAUGHTER: 444677 |
@@ -400,7 +407,7 @@ panels: | |||
400 | ZEN: 444719 | 407 | ZEN: 444719 |
401 | SON: 444720 | 408 | SON: 444720 |
402 | STARGAZER: 444721 | 409 | STARGAZER: 444721 |
403 | MOUTH: 444722 | 410 | SOUND: 444722 |
404 | YEAST: 444723 | 411 | YEAST: 444723 |
405 | WET: 444724 | 412 | WET: 444724 |
406 | The Bold: | 413 | The Bold: |
@@ -442,7 +449,7 @@ panels: | |||
442 | The Undeterred: | 449 | The Undeterred: |
443 | Achievement: 444759 | 450 | Achievement: 444759 |
444 | BONE: 444760 | 451 | BONE: 444760 |
445 | EYE: 444761 | 452 | EYE (1): 444761 |
446 | MOUTH: 444762 | 453 | MOUTH: 444762 |
447 | IRIS: 444763 | 454 | IRIS: 444763 |
448 | EYE (2): 444764 | 455 | EYE (2): 444764 |
@@ -524,8 +531,8 @@ panels: | |||
524 | TENT: 444832 | 531 | TENT: 444832 |
525 | BOWL: 444833 | 532 | BOWL: 444833 |
526 | The Bearer (West): | 533 | The Bearer (West): |
527 | SNOW: 444834 | 534 | SMILE: 444834 |
528 | SMILE: 444835 | 535 | SNOW: 444835 |
529 | Bearer Side Area: | 536 | Bearer Side Area: |
530 | SHORTCUT: 444836 | 537 | SHORTCUT: 444836 |
531 | POTS: 444837 | 538 | POTS: 444837 |
@@ -720,7 +727,7 @@ panels: | |||
720 | TRUSTWORTHY: 444978 | 727 | TRUSTWORTHY: 444978 |
721 | FREE: 444979 | 728 | FREE: 444979 |
722 | OUR: 444980 | 729 | OUR: 444980 |
723 | ONE ROAD MANY TURNS: 444981 | 730 | ORDER: 444981 |
724 | Art Gallery (Second Floor): | 731 | Art Gallery (Second Floor): |
725 | HOUSE: 444982 | 732 | HOUSE: 444982 |
726 | PATH: 444983 | 733 | PATH: 444983 |
@@ -778,7 +785,7 @@ panels: | |||
778 | WILD: 445028 | 785 | WILD: 445028 |
779 | KID: 445029 | 786 | KID: 445029 |
780 | PISTOL: 445030 | 787 | PISTOL: 445030 |
781 | QUARTZ: 445031 | 788 | GEM: 445031 |
782 | INNOVATIVE (Top): 445032 | 789 | INNOVATIVE (Top): 445032 |
783 | INNOVATIVE (Bottom): 445033 | 790 | INNOVATIVE (Bottom): 445033 |
784 | Room Room: | 791 | Room Room: |
@@ -792,15 +799,15 @@ panels: | |||
792 | FLOOR (3): 445041 | 799 | FLOOR (3): 445041 |
793 | FLOOR (4): 445042 | 800 | FLOOR (4): 445042 |
794 | FLOOR (5): 445043 | 801 | FLOOR (5): 445043 |
795 | FLOOR (7): 445044 | 802 | FLOOR (6): 445044 |
796 | FLOOR (8): 445045 | 803 | FLOOR (7): 445045 |
797 | FLOOR (9): 445046 | 804 | FLOOR (8): 445046 |
798 | FLOOR (10): 445047 | ||
799 | CEILING (1): 445048 | 805 | CEILING (1): 445048 |
800 | CEILING (2): 445049 | 806 | CEILING (2): 445049 |
801 | CEILING (3): 445050 | 807 | CEILING (3): 445050 |
802 | CEILING (4): 445051 | 808 | CEILING (4): 445051 |
803 | CEILING (5): 445052 | 809 | CEILING (5): 445052 |
810 | CEILING (6): 445047 | ||
804 | WALL (1): 445053 | 811 | WALL (1): 445053 |
805 | WALL (2): 445054 | 812 | WALL (2): 445054 |
806 | WALL (3): 445055 | 813 | WALL (3): 445055 |
@@ -848,7 +855,7 @@ panels: | |||
848 | PANDEMIC (1): 445100 | 855 | PANDEMIC (1): 445100 |
849 | TRINITY: 445101 | 856 | TRINITY: 445101 |
850 | CHEMISTRY: 445102 | 857 | CHEMISTRY: 445102 |
851 | FLUMMOXED: 445103 | 858 | FLUSTERED: 445103 |
852 | PANDEMIC (2): 445104 | 859 | PANDEMIC (2): 445104 |
853 | COUNTERCLOCKWISE: 445105 | 860 | COUNTERCLOCKWISE: 445105 |
854 | FEARLESS: 445106 | 861 | FEARLESS: 445106 |
@@ -934,7 +941,7 @@ panels: | |||
934 | CORNER: 445182 | 941 | CORNER: 445182 |
935 | STRAWBERRIES: 445183 | 942 | STRAWBERRIES: 445183 |
936 | GRUB: 445184 | 943 | GRUB: 445184 |
937 | BREAD: 445185 | 944 | CHEESE: 445185 |
938 | COLOR: 445186 | 945 | COLOR: 445186 |
939 | WRITER: 445187 | 946 | WRITER: 445187 |
940 | '02759': 445188 | 947 | '02759': 445188 |
@@ -945,12 +952,12 @@ panels: | |||
945 | DUCK LOGO: 445193 | 952 | DUCK LOGO: 445193 |
946 | AVIAN GREEN: 445194 | 953 | AVIAN GREEN: 445194 |
947 | FEVER TEAR: 445195 | 954 | FEVER TEAR: 445195 |
948 | FACTS: 445196 | 955 | FACTS (Chain): 445196 |
949 | FACTS (1): 445197 | 956 | FACTS (1): 445197 |
950 | FACTS (3): 445198 | 957 | FACTS (2): 445198 |
951 | FACTS (4): 445199 | 958 | FACTS (3): 445199 |
952 | FACTS (5): 445200 | 959 | FACTS (4): 445200 |
953 | FACTS (6): 445201 | 960 | FACTS (5): 445201 |
954 | LAPEL SHEEP: 445202 | 961 | LAPEL SHEEP: 445202 |
955 | doors: | 962 | doors: |
956 | Starting Room: | 963 | Starting Room: |
@@ -980,9 +987,6 @@ doors: | |||
980 | Tenacious Entrance: | 987 | Tenacious Entrance: |
981 | item: 444426 | 988 | item: 444426 |
982 | location: 444433 | 989 | location: 444433 |
983 | Symmetry Door: | ||
984 | item: 444428 | ||
985 | location: 445204 | ||
986 | Shortcut to Hedge Maze: | 990 | Shortcut to Hedge Maze: |
987 | item: 444430 | 991 | item: 444430 |
988 | location: 444436 | 992 | location: 444436 |
@@ -1039,6 +1043,10 @@ doors: | |||
1039 | location: 445210 | 1043 | location: 445210 |
1040 | White Palindromes: | 1044 | White Palindromes: |
1041 | location: 445211 | 1045 | location: 445211 |
1046 | Near Far Area: | ||
1047 | Door: | ||
1048 | item: 444428 | ||
1049 | location: 445204 | ||
1042 | Warts Straw Area: | 1050 | Warts Straw Area: |
1043 | Door: | 1051 | Door: |
1044 | item: 444451 | 1052 | item: 444451 |
@@ -1292,7 +1300,7 @@ doors: | |||
1292 | item: 444539 | 1300 | item: 444539 |
1293 | location: 444806 | 1301 | location: 444806 |
1294 | The Bearer: | 1302 | The Bearer: |
1295 | Shortcut to The Bold: | 1303 | Entrance: |
1296 | item: 444540 | 1304 | item: 444540 |
1297 | location: 444820 | 1305 | location: 444820 |
1298 | Backside Door: | 1306 | Backside Door: |
diff --git a/player_logic.py b/player_logic.py index d87aa56..b2e5f77 100644 --- a/player_logic.py +++ b/player_logic.py | |||
@@ -196,7 +196,7 @@ class LingoPlayerLogic: | |||
196 | ["Orange Tower Fourth Floor", "Hot Crusts Door"], ["Outside The Initiated", "Shortcut to Hub Room"], | 196 | ["Orange Tower Fourth Floor", "Hot Crusts Door"], ["Outside The Initiated", "Shortcut to Hub Room"], |
197 | ["Orange Tower First Floor", "Shortcut to Hub Room"], ["Directional Gallery", "Shortcut to The Undeterred"], | 197 | ["Orange Tower First Floor", "Shortcut to Hub Room"], ["Directional Gallery", "Shortcut to The Undeterred"], |
198 | ["Orange Tower First Floor", "Salt Pepper Door"], ["Hub Room", "Crossroads Entrance"], | 198 | ["Orange Tower First Floor", "Salt Pepper Door"], ["Hub Room", "Crossroads Entrance"], |
199 | ["Color Hunt", "Shortcut to The Steady"], ["The Bearer", "Shortcut to The Bold"], ["Art Gallery", "Exit"], | 199 | ["Color Hunt", "Shortcut to The Steady"], ["The Bearer", "Entrance"], ["Art Gallery", "Exit"], |
200 | ["The Tenacious", "Shortcut to Hub Room"], ["Outside The Agreeable", "Tenacious Entrance"] | 200 | ["The Tenacious", "Shortcut to Hub Room"], ["Outside The Agreeable", "Tenacious Entrance"] |
201 | ] | 201 | ] |
202 | pilgrimage_reqs = AccessRequirements() | 202 | pilgrimage_reqs = AccessRequirements() |
diff --git a/test/TestProgressive.py b/test/TestProgressive.py index 0aaebe9..081d674 100644 --- a/test/TestProgressive.py +++ b/test/TestProgressive.py | |||
@@ -96,7 +96,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
96 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 96 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
97 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 97 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
98 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 98 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
99 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 99 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
100 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 100 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
101 | 101 | ||
102 | self.collect_by_name(["Second Room - Exit Door", "Crossroads - Tower Entrance", | 102 | self.collect_by_name(["Second Room - Exit Door", "Crossroads - Tower Entrance", |
@@ -105,7 +105,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
105 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 105 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
106 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 106 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
107 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 107 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
108 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 108 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
109 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 109 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
110 | 110 | ||
111 | progressive_gallery_room = self.get_items_by_name("Progressive Art Gallery") | 111 | progressive_gallery_room = self.get_items_by_name("Progressive Art Gallery") |
@@ -115,7 +115,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
115 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 115 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
116 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 116 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
117 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 117 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
118 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 118 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
119 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 119 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
120 | 120 | ||
121 | self.collect(progressive_gallery_room[1]) | 121 | self.collect(progressive_gallery_room[1]) |
@@ -123,7 +123,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
123 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 123 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
124 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 124 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
125 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 125 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
126 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 126 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
127 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 127 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
128 | 128 | ||
129 | self.collect(progressive_gallery_room[2]) | 129 | self.collect(progressive_gallery_room[2]) |
@@ -131,7 +131,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
131 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 131 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
132 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 132 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
133 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 133 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
134 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 134 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
135 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 135 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
136 | 136 | ||
137 | self.collect(progressive_gallery_room[3]) | 137 | self.collect(progressive_gallery_room[3]) |
@@ -139,7 +139,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
139 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 139 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
140 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 140 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
141 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 141 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
142 | self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 142 | self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) |
143 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 143 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
144 | 144 | ||
145 | self.collect_by_name("Orange Tower Fifth Floor - Quadruple Intersection") | 145 | self.collect_by_name("Orange Tower Fifth Floor - Quadruple Intersection") |
@@ -147,7 +147,7 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
147 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 147 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
148 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 148 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
149 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 149 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
150 | self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 150 | self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) |
151 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 151 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
152 | 152 | ||
153 | 153 | ||
@@ -162,7 +162,7 @@ class TestNoDoorsArtGallery(LingoTestBase): | |||
162 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 162 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
163 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 163 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
164 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 164 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
165 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 165 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
166 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 166 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
167 | 167 | ||
168 | self.collect_by_name("Yellow") | 168 | self.collect_by_name("Yellow") |
@@ -170,7 +170,7 @@ class TestNoDoorsArtGallery(LingoTestBase): | |||
170 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 170 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
171 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 171 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
172 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 172 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
173 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 173 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
174 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 174 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
175 | 175 | ||
176 | self.collect_by_name("Brown") | 176 | self.collect_by_name("Brown") |
@@ -178,7 +178,7 @@ class TestNoDoorsArtGallery(LingoTestBase): | |||
178 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 178 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
179 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 179 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
180 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 180 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
181 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 181 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
182 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 182 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
183 | 183 | ||
184 | self.collect_by_name("Blue") | 184 | self.collect_by_name("Blue") |
@@ -186,7 +186,7 @@ class TestNoDoorsArtGallery(LingoTestBase): | |||
186 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 186 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
187 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 187 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
188 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 188 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
189 | self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 189 | self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) |
190 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 190 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
191 | 191 | ||
192 | self.collect_by_name(["Orange", "Gray"]) | 192 | self.collect_by_name(["Orange", "Gray"]) |
@@ -194,5 +194,5 @@ class TestNoDoorsArtGallery(LingoTestBase): | |||
194 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 194 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
195 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 195 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
196 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) | 196 | self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) |
197 | self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) | 197 | self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) |
198 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) | 198 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) |
diff --git a/utils/validate_config.rb b/utils/validate_config.rb index 3ac49dc..96ed9fc 100644 --- a/utils/validate_config.rb +++ b/utils/validate_config.rb | |||
@@ -8,7 +8,8 @@ require 'set' | |||
8 | require 'yaml' | 8 | require 'yaml' |
9 | 9 | ||
10 | configpath = ARGV[0] | 10 | configpath = ARGV[0] |
11 | mappath = ARGV[1] | 11 | idspath = ARGV[1] |
12 | mappath = ARGV[2] | ||
12 | 13 | ||
13 | panels = Set["Countdown Panels/Panel_1234567890_wanderlust"] | 14 | panels = Set["Countdown Panels/Panel_1234567890_wanderlust"] |
14 | doors = Set["Naps Room Doors/Door_hider_new1", "Tower Room Area Doors/Door_wanderer_entrance"] | 15 | doors = Set["Naps Room Doors/Door_hider_new1", "Tower Room Area Doors/Door_wanderer_entrance"] |
@@ -46,6 +47,8 @@ painting_directives = Set["id", "enter_only", "exit_only", "orientation", "requi | |||
46 | 47 | ||
47 | non_counting = 0 | 48 | non_counting = 0 |
48 | 49 | ||
50 | ids = YAML.load_file(idspath) | ||
51 | |||
49 | config = YAML.load_file(configpath) | 52 | config = YAML.load_file(configpath) |
50 | config.each do |room_name, room| | 53 | config.each do |room_name, room| |
51 | configured_rooms.add(room_name) | 54 | configured_rooms.add(room_name) |
@@ -162,6 +165,10 @@ config.each do |room_name, room| | |||
162 | unless bad_subdirectives.empty? then | 165 | unless bad_subdirectives.empty? then |
163 | puts "#{room_name} - #{panel_name} :::: Panel has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" | 166 | puts "#{room_name} - #{panel_name} :::: Panel has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" |
164 | end | 167 | end |
168 | |||
169 | unless ids.include?("panels") and ids["panels"].include?(room_name) and ids["panels"][room_name].include?(panel_name) | ||
170 | puts "#{room_name} - #{panel_name} :::: Panel is missing a location ID" | ||
171 | end | ||
165 | end | 172 | end |
166 | 173 | ||
167 | (room["doors"] || {}).each do |door_name, door| | 174 | (room["doors"] || {}).each do |door_name, door| |
@@ -229,6 +236,18 @@ config.each do |room_name, room| | |||
229 | unless bad_subdirectives.empty? then | 236 | unless bad_subdirectives.empty? then |
230 | puts "#{room_name} - #{door_name} :::: Door has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" | 237 | puts "#{room_name} - #{door_name} :::: Door has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" |
231 | end | 238 | end |
239 | |||
240 | unless door["skip_item"] or door["event"] | ||
241 | unless ids.include?("doors") and ids["doors"].include?(room_name) and ids["doors"][room_name].include?(door_name) and ids["doors"][room_name][door_name].include?("item") | ||
242 | puts "#{room_name} - #{door_name} :::: Door is missing an item ID" | ||
243 | end | ||
244 | end | ||
245 | |||
246 | unless door["skip_location"] or door["event"] | ||
247 | unless ids.include?("doors") and ids["doors"].include?(room_name) and ids["doors"][room_name].include?(door_name) and ids["doors"][room_name][door_name].include?("location") | ||
248 | puts "#{room_name} - #{door_name} :::: Door is missing a location ID" | ||
249 | end | ||
250 | end | ||
232 | end | 251 | end |
233 | 252 | ||
234 | (room["paintings"] || []).each do |painting| | 253 | (room["paintings"] || []).each do |painting| |
@@ -281,6 +300,10 @@ config.each do |room_name, room| | |||
281 | mentioned_doors.add("#{room_name} - #{door}") | 300 | mentioned_doors.add("#{room_name} - #{door}") |
282 | end | 301 | end |
283 | end | 302 | end |
303 | |||
304 | unless ids.include?("progression") and ids["progression"].include?(progression_name) | ||
305 | puts "#{room_name} - #{progression_name} :::: Progression is missing an item ID" | ||
306 | end | ||
284 | end | 307 | end |
285 | end | 308 | end |
286 | 309 | ||
@@ -303,6 +326,10 @@ door_groups.each do |group,num| | |||
303 | if num == 1 then | 326 | if num == 1 then |
304 | puts "Door group \"#{group}\" only has one door in it" | 327 | puts "Door group \"#{group}\" only has one door in it" |
305 | end | 328 | end |
329 | |||
330 | unless ids.include?("door_groups") and ids["door_groups"].include?(group) | ||
331 | puts "#{group} :::: Door group is missing an item ID" | ||
332 | end | ||
306 | end | 333 | end |
307 | 334 | ||
308 | slashed_rooms = configured_rooms.select do |room| | 335 | slashed_rooms = configured_rooms.select do |room| |