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| |
