diff --git a/worlds/lingo/data/LL1.yaml b/worlds/lingo/data/LL1.yaml index 2e18766c017c..23afb2b4450d 100644 --- a/worlds/lingo/data/LL1.yaml +++ b/worlds/lingo/data/LL1.yaml @@ -278,10 +278,10 @@ tag: forbid check: True achievement: The Seeker - BEAR: + BEAR (1): id: Heteronym Room/Panel_bear_bear tag: midwhite - MINE: + MINE (1): id: Heteronym Room/Panel_mine_mine tag: double midwhite subtag: left @@ -297,7 +297,7 @@ DOES: id: Heteronym Room/Panel_does_does tag: midwhite - MOBILE: + MOBILE (1): id: Heteronym Room/Panel_mobile_mobile tag: double midwhite subtag: left @@ -399,8 +399,7 @@ door: Crossroads Entrance The Tenacious: door: Tenacious Entrance - Warts Straw Area: - door: Symmetry Door + Near Far Area: True Hedge Maze: door: Shortcut to Hedge Maze Orange Tower First Floor: @@ -427,14 +426,6 @@ id: Palindrome Room/Panel_slaughter_laughter colors: red tag: midred - NEAR: - id: Symmetry Room/Panel_near_far - colors: black - tag: botblack - FAR: - id: Symmetry Room/Panel_far_near - colors: black - tag: botblack TRACE: id: Maze Room/Panel_trace_trace tag: midwhite @@ -477,14 +468,6 @@ group: Entrances to The Tenacious panels: - SLAUGHTER - Symmetry Door: - id: - - Symmetry Room Area Doors/Door_near_far - - Symmetry Room Area Doors/Door_far_near - group: Symmetry Doors - panels: - - NEAR - - FAR Shortcut to Hedge Maze: id: Maze Area Doors/Door_trace_trace group: Hedge Maze Doors @@ -548,7 +531,7 @@ id: Lingo Room/Panel_shortcut colors: yellow tag: midyellow - PILGRIMAGE: + PILGRIM: id: Lingo Room/Panel_pilgrim colors: blue tag: midblue @@ -569,7 +552,7 @@ Exit: event: True panels: - - PILGRIMAGE + - PILGRIM Pilgrim Room: entrances: The Seeker: @@ -755,7 +738,7 @@ panels: - TURN - room: Orange Tower Fourth Floor - panel: RUNT + panel: RUNT (1) Words Sword Door: id: - Shuffle Room Area Doors/Door_words_shuffle_3 @@ -962,11 +945,36 @@ - LEVEL (White) - RACECAR (White) - SOLOS (White) + Near Far Area: + entrances: + Hub Room: True + Warts Straw Area: + door: Door + panels: + NEAR: + id: Symmetry Room/Panel_near_far + colors: black + tag: botblack + FAR: + id: Symmetry Room/Panel_far_near + colors: black + tag: botblack + doors: + Door: + id: + - Symmetry Room Area Doors/Door_near_far + - Symmetry Room Area Doors/Door_far_near + group: Symmetry Doors + item_name: Symmetry Room - Near Far Door + location_name: Symmetry Room - NEAR, FAR + panels: + - NEAR + - FAR Warts Straw Area: entrances: - Hub Room: - room: Hub Room - door: Symmetry Door + Near Far Area: + room: Near Far Area + door: Door Leaf Feel Area: door: Door panels: @@ -984,6 +992,8 @@ - Symmetry Room Area Doors/Door_warts_straw - Symmetry Room Area Doors/Door_straw_warts group: Symmetry Doors + item_name: Symmetry Room - Warts Straw Door + location_name: Symmetry Room - WARTS, STRAW panels: - WARTS - STRAW @@ -1009,6 +1019,8 @@ - Symmetry Room Area Doors/Door_leaf_feel - Symmetry Room Area Doors/Door_feel_leaf group: Symmetry Doors + item_name: Symmetry Room - Leaf Feel Door + location_name: Symmetry Room - LEAF, FEEL panels: - LEAF - FEEL @@ -1120,7 +1132,7 @@ tag: forbid required_panel: - room: Outside The Bold - panel: MOUTH + panel: SOUND - room: Outside The Bold panel: YEAST - room: Outside The Bold @@ -1436,7 +1448,7 @@ entrances: The Perceptive: True panels: - NAPS: + SPAN: id: Naps Room/Panel_naps_span colors: black tag: midblack @@ -1462,7 +1474,7 @@ location_name: The Fearless - First Floor Puzzles group: Fearless Doors panels: - - NAPS + - SPAN - TEAM - TEEM - IMPATIENT @@ -1564,11 +1576,11 @@ required_door: door: Stairs achievement: The Observant - BACK: + FOUR (1): id: Look Room/Panel_four_back colors: green tag: forbid - SIDE: + FOUR (2): id: Look Room/Panel_four_side colors: green tag: forbid @@ -1578,87 +1590,87 @@ hunt: True required_door: door: Backside Door - STAIRS: + SIX: id: Look Room/Panel_six_stairs colors: green tag: forbid - WAYS: + FOUR (3): id: Look Room/Panel_four_ways colors: green tag: forbid - "ON": + TWO (1): id: Look Room/Panel_two_on colors: green tag: forbid - UP: + TWO (2): id: Look Room/Panel_two_up colors: green tag: forbid - SWIMS: + FIVE: id: Look Room/Panel_five_swims colors: green tag: forbid - UPSTAIRS: + BELOW (1): id: Look Room/Panel_eight_upstairs colors: green tag: forbid required_door: door: Stairs - TOIL: + BLUE: id: Look Room/Panel_blue_toil colors: green tag: forbid required_door: door: Stairs - STOP: + BELOW (2): id: Look Room/Panel_four_stop colors: green tag: forbid required_door: door: Stairs - TOP: + MINT (1): id: Look Room/Panel_aqua_top colors: green tag: forbid required_door: door: Stairs - HI: + ESACREWOL: id: Look Room/Panel_blue_hi colors: green tag: forbid required_door: door: Stairs - HI (2): + EULB: id: Look Room/Panel_blue_hi2 colors: green tag: forbid required_door: door: Stairs - "31": + NUMBERS (1): id: Look Room/Panel_numbers_31 colors: green tag: forbid required_door: door: Stairs - "52": + NUMBERS (2): id: Look Room/Panel_numbers_52 colors: green tag: forbid required_door: door: Stairs - OIL: + MINT (2): id: Look Room/Panel_aqua_oil colors: green tag: forbid required_door: door: Stairs - BACKSIDE (GREEN): + GREEN (1): id: Look Room/Panel_eight_backside colors: green tag: forbid required_door: door: Stairs - SIDEWAYS: + GREEN (2): id: Look Room/Panel_eight_sideways colors: green tag: forbid @@ -1669,13 +1681,13 @@ id: Maze Area Doors/Door_backside group: Backside Doors panels: - - BACK - - SIDE + - FOUR (1) + - FOUR (2) Stairs: id: Maze Area Doors/Door_stairs group: Observant Doors panels: - - STAIRS + - SIX The Incomparable: entrances: The Observant: True # Assuming that access to The Observant includes access to the right entrance @@ -2005,7 +2017,7 @@ Courtyard: True Roof: True # through the sunwarp panels: - RUNT: + RUNT (1): id: Shuffle Room/Panel_turn_runt2 colors: yellow tag: midyellow @@ -2219,6 +2231,7 @@ - Master Room Doors/Door_master_down - Master Room Doors/Door_master_down2 skip_location: True + item_name: Mastery panels: - THE MASTER Mastery Panels: @@ -2235,25 +2248,25 @@ panel: MASTERY - room: Hedge Maze panel: MASTERY (1) - - room: Roof - panel: MASTERY (1) - - room: Roof - panel: MASTERY (2) + - room: Behind A Smile + panel: MASTERY + - room: Sixteen Colorful Squares + panel: MASTERY - MASTERY - room: Hedge Maze panel: MASTERY (2) - - room: Roof - panel: MASTERY (3) - - room: Roof - panel: MASTERY (4) - - room: Roof - panel: MASTERY (5) + - room: Among Treetops + panel: MASTERY + - room: Horizon's Edge + panel: MASTERY + - room: Beneath The Lookout + panel: MASTERY - room: Elements Area panel: MASTERY - room: Pilgrim Antechamber panel: MASTERY - - room: Roof - panel: MASTERY (6) + - room: Rooftop Staircase + panel: MASTERY paintings: - id: map_painting2 orientation: north @@ -2265,52 +2278,75 @@ Crossroads: room: Crossroads door: Roof Access + Behind A Smile: + entrances: + Roof: True panels: - MASTERY (1): + MASTERY: id: Master Room/Panel_mastery_mastery6 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - MASTERY (2): + STAIRCASE: + id: Open Areas/Panel_staircase + tag: midwhite + Sixteen Colorful Squares: + entrances: + Roof: True + panels: + MASTERY: id: Master Room/Panel_mastery_mastery7 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - MASTERY (3): + Among Treetops: + entrances: + Roof: True + panels: + MASTERY: id: Master Room/Panel_mastery_mastery10 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - MASTERY (4): + Horizon's Edge: + entrances: + Roof: True + panels: + MASTERY: id: Master Room/Panel_mastery_mastery11 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - MASTERY (5): + Beneath The Lookout: + entrances: + Roof: True + panels: + MASTERY: id: Master Room/Panel_mastery_mastery12 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - MASTERY (6): + Rooftop Staircase: + entrances: + Roof: True + panels: + MASTERY: id: Master Room/Panel_mastery_mastery15 tag: midwhite hunt: True required_door: room: Orange Tower Seventh Floor door: Mastery - STAIRCASE: - id: Open Areas/Panel_staircase - tag: midwhite Orange Tower Basement: entrances: Orange Tower Sixth Floor: @@ -2632,9 +2668,7 @@ tag: forbid doors: Progress Door: - id: - - Doorway Room Doors/Door_gray - - Doorway Room Doors/Door_gray2 # See comment below + id: Doorway Room Doors/Door_gray item_name: The Colorful - Gray Door location_name: The Colorful - Gray group: Colorful Doors @@ -2784,6 +2818,7 @@ door: Exit Eight Alcove: door: Eight Door + The Optimistic: True panels: SEVEN (1): id: Backside Room/Panel_seven_seven_5 @@ -2833,21 +2868,11 @@ id: Rhyme Room/Panel_locked_knocked colors: purple tag: midpurp - BACKSIDE: - id: Backside Room/Panel_backside_1 - tag: midwhite - The Optimistic: - id: Countdown Panels/Panel_optimistic_optimistic - check: True - tag: forbid - required_door: - door: Backsides - achievement: The Optimistic - PAST: + PAST (1): id: Shuffle Room/Panel_past_present colors: brown tag: botbrown - FUTURE: + FUTURE (1): id: Shuffle Room/Panel_future_present colors: - brown @@ -2944,17 +2969,6 @@ panel: GREEN - room: Outside The Agreeable panel: PURPLE - Backsides: - event: True - panels: - - room: The Observant - panel: BACKSIDE - - room: Yellow Backside Area - panel: BACKSIDE - - room: Directional Gallery - panel: BACKSIDE - - room: The Bearer - panel: BACKSIDE Eight Door: id: Red Blue Purple Room Area Doors/Door_a_strands2 skip_location: True @@ -3064,6 +3078,28 @@ id: Rhyme Room/Panel_bed_dead colors: purple tag: toppurp + The Optimistic: + entrances: + Outside The Initiated: True + panels: + BACKSIDE: + id: Backside Room/Panel_backside_1 + tag: midwhite + Achievement: + id: Countdown Panels/Panel_optimistic_optimistic + check: True + tag: forbid + required_panel: + - panel: BACKSIDE + - room: The Observant + panel: BACKSIDE + - room: Yellow Backside Area + panel: BACKSIDE + - room: Directional Gallery + panel: BACKSIDE + - room: The Bearer + panel: BACKSIDE + achievement: The Optimistic The Traveled: entrances: Hub Room: @@ -3164,7 +3200,7 @@ Outside The Undeterred: True Crossroads: True Hedge Maze: True - Outside The Initiated: True # backside + The Optimistic: True # backside Directional Gallery: True # backside Yellow Backside Area: True The Bearer: @@ -3181,7 +3217,7 @@ door: Shortcut to The Steady The Bearer: room: The Bearer - door: Shortcut to The Bold + door: Entrance Directional Gallery: # There is a painting warp here from the Directional Gallery, but it # only appears when the sixes are revealed. It could be its own item if @@ -3252,7 +3288,7 @@ tag: midwhite required_door: door: Stargazer Door - MOUTH: + SOUND: id: Cross Room/Panel_mouth_south colors: purple tag: midpurp @@ -3596,7 +3632,7 @@ id: Blue Room/Panel_bone_skeleton colors: blue tag: botblue - EYE: + EYE (1): id: Blue Room/Panel_mouth_face colors: blue tag: double botblue @@ -4115,7 +4151,7 @@ The Bearer: entrances: Outside The Bold: - door: Shortcut to The Bold + door: Entrance Orange Tower Fifth Floor: room: Art Gallery door: Exit @@ -4192,7 +4228,7 @@ - yellow tag: mid red yellow doors: - Shortcut to The Bold: + Entrance: id: Red Blue Purple Room Area Doors/Door_middle_middle panels: - MIDDLE @@ -4321,21 +4357,21 @@ door: Side Area Shortcut Roof: True panels: - SNOW: + SMILE: id: Cross Room/Panel_smile_lime colors: - red - yellow tag: mid yellow red - SMILE: + required_panel: + room: The Bearer (North) + panel: WARTS + SNOW: id: Cross Room/Panel_snow_won colors: - red - yellow tag: mid red yellow - required_panel: - room: The Bearer (North) - panel: WARTS doors: Side Area Shortcut: event: True @@ -4414,7 +4450,7 @@ - room: The Bearer (West) panel: SMILE - room: Outside The Bold - panel: MOUTH + panel: SOUND - room: Outside The Bold panel: YEAST - room: Outside The Bold @@ -6129,7 +6165,7 @@ id: Painting Room/Panel_our_four colors: blue tag: midblue - ONE ROAD MANY TURNS: + ORDER: id: Painting Room/Panel_order_onepathmanyturns tag: forbid colors: @@ -6186,7 +6222,7 @@ include_reduce: True item_name: Orange Tower Fifth Floor - Quadruple Intersection panels: - - ONE ROAD MANY TURNS + - ORDER paintings: - id: smile_painting_3 orientation: west @@ -6678,7 +6714,7 @@ - room: Rhyme Room (Target) panel: PISTOL - room: Rhyme Room (Target) - panel: QUARTZ + panel: GEM Rhyme Room (Target): entrances: Rhyme Room (Smiley): # one-way @@ -6706,7 +6742,7 @@ tag: syn rhyme subtag: top link: rhyme CRYSTAL - QUARTZ: + GEM: id: Double Room/Panel_crystal_syn colors: purple tag: syn rhyme @@ -6731,7 +6767,7 @@ group: Rhyme Room Doors panels: - PISTOL - - QUARTZ + - GEM - INNOVATIVE (Top) - INNOVATIVE (Bottom) paintings: @@ -6789,22 +6825,18 @@ id: Panel Room/Panel_room_floor_5 colors: gray tag: forbid - FLOOR (7): + FLOOR (6): id: Panel Room/Panel_room_floor_7 colors: gray tag: forbid - FLOOR (8): + FLOOR (7): id: Panel Room/Panel_room_floor_8 colors: gray tag: forbid - FLOOR (9): + FLOOR (8): id: Panel Room/Panel_room_floor_9 colors: gray tag: forbid - FLOOR (10): - id: Panel Room/Panel_room_floor_10 - colors: gray - tag: forbid CEILING (1): id: Panel Room/Panel_room_ceiling_1 colors: gray @@ -6825,6 +6857,10 @@ id: Panel Room/Panel_room_ceiling_5 colors: gray tag: forbid + CEILING (6): + id: Panel Room/Panel_room_floor_10 + colors: gray + tag: forbid WALL (1): id: Panel Room/Panel_room_wall_1 colors: gray @@ -7083,7 +7119,7 @@ id: Hangry Room/Panel_red_top_3 colors: red tag: topred - FLUMMOXED: + FLUSTERED: id: Hangry Room/Panel_red_top_4 colors: red tag: topred @@ -7586,7 +7622,7 @@ - black - blue tag: chain mid black blue - BREAD: + CHEESE: id: Challenge Room/Panel_bread_mold colors: brown tag: double botbrown @@ -7633,7 +7669,7 @@ id: Challenge Room/Panel_double_anagram_5 colors: yellow tag: midyellow - FACTS: + FACTS (Chain): id: Challenge Room/Panel_facts colors: - red @@ -7643,18 +7679,18 @@ id: Challenge Room/Panel_facts2 colors: red tag: forbid - FACTS (3): + FACTS (2): id: Challenge Room/Panel_facts3 tag: forbid - FACTS (4): + FACTS (3): id: Challenge Room/Panel_facts4 colors: blue tag: forbid - FACTS (5): + FACTS (4): id: Challenge Room/Panel_facts5 colors: blue tag: forbid - FACTS (6): + FACTS (5): id: Challenge Room/Panel_facts6 colors: blue tag: forbid diff --git a/worlds/lingo/data/ids.yaml b/worlds/lingo/data/ids.yaml index 56c22ad1bec5..4cad94855512 100644 --- a/worlds/lingo/data/ids.yaml +++ b/worlds/lingo/data/ids.yaml @@ -31,12 +31,12 @@ panels: LIES: 444408 The Seeker: Achievement: 444409 - BEAR: 444410 - MINE: 444411 + BEAR (1): 444410 + MINE (1): 444411 MINE (2): 444412 BOW: 444413 DOES: 444414 - MOBILE: 444415 + MOBILE (1): 444415 MOBILE (2): 444416 DESERT: 444417 DESSERT: 444418 @@ -57,8 +57,6 @@ panels: Hub Room: ORDER: 444432 SLAUGHTER: 444433 - NEAR: 444434 - FAR: 444435 TRACE: 444436 RAT: 444437 OPEN: 444438 @@ -72,7 +70,7 @@ panels: EIGHT: 444445 Pilgrim Antechamber: HOT CRUST: 444446 - PILGRIMAGE: 444447 + PILGRIM: 444447 MASTERY: 444448 Pilgrim Room: THIS: 444449 @@ -123,6 +121,9 @@ panels: RACECAR (White): 444489 SOLOS (White): 444490 Achievement: 444491 + Near Far Area: + NEAR: 444434 + FAR: 444435 Warts Straw Area: WARTS: 444492 STRAW: 444493 @@ -187,7 +188,7 @@ panels: Achievement: 444546 GAZE: 444547 The Fearless (First Floor): - NAPS: 444548 + SPAN: 444548 TEAM: 444549 TEEM: 444550 IMPATIENT: 444551 @@ -208,25 +209,25 @@ panels: EVEN: 444564 The Observant: Achievement: 444565 - BACK: 444566 - SIDE: 444567 + FOUR (1): 444566 + FOUR (2): 444567 BACKSIDE: 444568 - STAIRS: 444569 - WAYS: 444570 - 'ON': 444571 - UP: 444572 - SWIMS: 444573 - UPSTAIRS: 444574 - TOIL: 444575 - STOP: 444576 - TOP: 444577 - HI: 444578 - HI (2): 444579 - '31': 444580 - '52': 444581 - OIL: 444582 - BACKSIDE (GREEN): 444583 - SIDEWAYS: 444584 + SIX: 444569 + FOUR (3): 444570 + TWO (1): 444571 + TWO (2): 444572 + FIVE: 444573 + BELOW (1): 444574 + BLUE: 444575 + BELOW (2): 444576 + MINT (1): 444577 + ESACREWOL: 444578 + EULB: 444579 + NUMBERS (1): 444580 + NUMBERS (2): 444581 + MINT (2): 444582 + GREEN (1): 444583 + GREEN (2): 444584 The Incomparable: Achievement: 444585 A (One): 444586 @@ -254,7 +255,7 @@ panels: RED: 444605 DEER + WREN: 444606 Orange Tower Fourth Floor: - RUNT: 444607 + RUNT (1): 444607 RUNT (2): 444608 LEARNS + UNSEW: 444609 HOT CRUSTS: 444610 @@ -279,14 +280,19 @@ panels: THE END: 444620 THE MASTER: 444621 MASTERY: 444622 - Roof: - MASTERY (1): 444623 - MASTERY (2): 444624 - MASTERY (3): 444625 - MASTERY (4): 444626 - MASTERY (5): 444627 - MASTERY (6): 444628 + Behind A Smile: + MASTERY: 444623 STAIRCASE: 444629 + Sixteen Colorful Squares: + MASTERY: 444624 + Among Treetops: + MASTERY: 444625 + Horizon's Edge: + MASTERY: 444626 + Beneath The Lookout: + MASTERY: 444627 + Rooftop Staircase: + MASTERY: 444628 Orange Tower Basement: MASTERY: 444630 THE LIBRARY: 444631 @@ -341,16 +347,17 @@ panels: ORANGE: 444663 UNCOVER: 444664 OXEN: 444665 - BACKSIDE: 444666 - The Optimistic: 444667 - PAST: 444668 - FUTURE: 444669 + PAST (1): 444668 + FUTURE (1): 444669 FUTURE (2): 444670 PAST (2): 444671 PRESENT: 444672 SMILE: 444673 ANGERED: 444674 VOTE: 444675 + The Optimistic: + BACKSIDE: 444666 + Achievement: 444667 The Initiated: Achievement: 444676 DAUGHTER: 444677 @@ -400,7 +407,7 @@ panels: ZEN: 444719 SON: 444720 STARGAZER: 444721 - MOUTH: 444722 + SOUND: 444722 YEAST: 444723 WET: 444724 The Bold: @@ -442,7 +449,7 @@ panels: The Undeterred: Achievement: 444759 BONE: 444760 - EYE: 444761 + EYE (1): 444761 MOUTH: 444762 IRIS: 444763 EYE (2): 444764 @@ -524,8 +531,8 @@ panels: TENT: 444832 BOWL: 444833 The Bearer (West): - SNOW: 444834 - SMILE: 444835 + SMILE: 444834 + SNOW: 444835 Bearer Side Area: SHORTCUT: 444836 POTS: 444837 @@ -720,7 +727,7 @@ panels: TRUSTWORTHY: 444978 FREE: 444979 OUR: 444980 - ONE ROAD MANY TURNS: 444981 + ORDER: 444981 Art Gallery (Second Floor): HOUSE: 444982 PATH: 444983 @@ -778,7 +785,7 @@ panels: WILD: 445028 KID: 445029 PISTOL: 445030 - QUARTZ: 445031 + GEM: 445031 INNOVATIVE (Top): 445032 INNOVATIVE (Bottom): 445033 Room Room: @@ -792,15 +799,15 @@ panels: FLOOR (3): 445041 FLOOR (4): 445042 FLOOR (5): 445043 - FLOOR (7): 445044 - FLOOR (8): 445045 - FLOOR (9): 445046 - FLOOR (10): 445047 + FLOOR (6): 445044 + FLOOR (7): 445045 + FLOOR (8): 445046 CEILING (1): 445048 CEILING (2): 445049 CEILING (3): 445050 CEILING (4): 445051 CEILING (5): 445052 + CEILING (6): 445047 WALL (1): 445053 WALL (2): 445054 WALL (3): 445055 @@ -848,7 +855,7 @@ panels: PANDEMIC (1): 445100 TRINITY: 445101 CHEMISTRY: 445102 - FLUMMOXED: 445103 + FLUSTERED: 445103 PANDEMIC (2): 445104 COUNTERCLOCKWISE: 445105 FEARLESS: 445106 @@ -934,7 +941,7 @@ panels: CORNER: 445182 STRAWBERRIES: 445183 GRUB: 445184 - BREAD: 445185 + CHEESE: 445185 COLOR: 445186 WRITER: 445187 '02759': 445188 @@ -945,12 +952,12 @@ panels: DUCK LOGO: 445193 AVIAN GREEN: 445194 FEVER TEAR: 445195 - FACTS: 445196 + FACTS (Chain): 445196 FACTS (1): 445197 - FACTS (3): 445198 - FACTS (4): 445199 - FACTS (5): 445200 - FACTS (6): 445201 + FACTS (2): 445198 + FACTS (3): 445199 + FACTS (4): 445200 + FACTS (5): 445201 LAPEL SHEEP: 445202 doors: Starting Room: @@ -980,9 +987,6 @@ doors: Tenacious Entrance: item: 444426 location: 444433 - Symmetry Door: - item: 444428 - location: 445204 Shortcut to Hedge Maze: item: 444430 location: 444436 @@ -1039,6 +1043,10 @@ doors: location: 445210 White Palindromes: location: 445211 + Near Far Area: + Door: + item: 444428 + location: 445204 Warts Straw Area: Door: item: 444451 @@ -1292,7 +1300,7 @@ doors: item: 444539 location: 444806 The Bearer: - Shortcut to The Bold: + Entrance: item: 444540 location: 444820 Backside Door: diff --git a/worlds/lingo/player_logic.py b/worlds/lingo/player_logic.py index d87aa5672c75..b2e5f77df1be 100644 --- a/worlds/lingo/player_logic.py +++ b/worlds/lingo/player_logic.py @@ -196,7 +196,7 @@ def __init__(self, world: "LingoWorld"): ["Orange Tower Fourth Floor", "Hot Crusts Door"], ["Outside The Initiated", "Shortcut to Hub Room"], ["Orange Tower First Floor", "Shortcut to Hub Room"], ["Directional Gallery", "Shortcut to The Undeterred"], ["Orange Tower First Floor", "Salt Pepper Door"], ["Hub Room", "Crossroads Entrance"], - ["Color Hunt", "Shortcut to The Steady"], ["The Bearer", "Shortcut to The Bold"], ["Art Gallery", "Exit"], + ["Color Hunt", "Shortcut to The Steady"], ["The Bearer", "Entrance"], ["Art Gallery", "Exit"], ["The Tenacious", "Shortcut to Hub Room"], ["Outside The Agreeable", "Tenacious Entrance"] ] pilgrimage_reqs = AccessRequirements() diff --git a/worlds/lingo/test/TestProgressive.py b/worlds/lingo/test/TestProgressive.py index 0aaebe9319b5..081d6743a5f2 100644 --- a/worlds/lingo/test/TestProgressive.py +++ b/worlds/lingo/test/TestProgressive.py @@ -96,7 +96,7 @@ def test_item(self): self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name(["Second Room - Exit Door", "Crossroads - Tower Entrance", @@ -105,7 +105,7 @@ def test_item(self): self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) progressive_gallery_room = self.get_items_by_name("Progressive Art Gallery") @@ -115,7 +115,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect(progressive_gallery_room[1]) @@ -123,7 +123,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect(progressive_gallery_room[2]) @@ -131,7 +131,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect(progressive_gallery_room[3]) @@ -139,7 +139,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name("Orange Tower Fifth Floor - Quadruple Intersection") @@ -147,7 +147,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) @@ -162,7 +162,7 @@ def test_item(self): self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name("Yellow") @@ -170,7 +170,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name("Brown") @@ -178,7 +178,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name("Blue") @@ -186,7 +186,7 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertFalse(self.can_reach_location("Art Gallery - ORDER")) self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) self.collect_by_name(["Orange", "Gray"]) @@ -194,5 +194,5 @@ def test_item(self): self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player)) - self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS")) + self.assertTrue(self.can_reach_location("Art Gallery - ORDER")) self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player)) diff --git a/worlds/lingo/utils/validate_config.rb b/worlds/lingo/utils/validate_config.rb index 3ac49dc220ce..96ed9fcd66b9 100644 --- a/worlds/lingo/utils/validate_config.rb +++ b/worlds/lingo/utils/validate_config.rb @@ -8,7 +8,8 @@ require 'yaml' configpath = ARGV[0] -mappath = ARGV[1] +idspath = ARGV[1] +mappath = ARGV[2] panels = Set["Countdown Panels/Panel_1234567890_wanderlust"] doors = Set["Naps Room Doors/Door_hider_new1", "Tower Room Area Doors/Door_wanderer_entrance"] @@ -46,6 +47,8 @@ non_counting = 0 +ids = YAML.load_file(idspath) + config = YAML.load_file(configpath) config.each do |room_name, room| configured_rooms.add(room_name) @@ -162,6 +165,10 @@ unless bad_subdirectives.empty? then puts "#{room_name} - #{panel_name} :::: Panel has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" end + + unless ids.include?("panels") and ids["panels"].include?(room_name) and ids["panels"][room_name].include?(panel_name) + puts "#{room_name} - #{panel_name} :::: Panel is missing a location ID" + end end (room["doors"] || {}).each do |door_name, door| @@ -229,6 +236,18 @@ unless bad_subdirectives.empty? then puts "#{room_name} - #{door_name} :::: Door has the following invalid subdirectives: #{bad_subdirectives.join(", ")}" end + + unless door["skip_item"] or door["event"] + 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") + puts "#{room_name} - #{door_name} :::: Door is missing an item ID" + end + end + + unless door["skip_location"] or door["event"] + 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") + puts "#{room_name} - #{door_name} :::: Door is missing a location ID" + end + end end (room["paintings"] || []).each do |painting| @@ -281,6 +300,10 @@ mentioned_doors.add("#{room_name} - #{door}") end end + + unless ids.include?("progression") and ids["progression"].include?(progression_name) + puts "#{room_name} - #{progression_name} :::: Progression is missing an item ID" + end end end @@ -303,6 +326,10 @@ if num == 1 then puts "Door group \"#{group}\" only has one door in it" end + + unless ids.include?("door_groups") and ids["door_groups"].include?(group) + puts "#{group} :::: Door group is missing an item ID" + end end slashed_rooms = configured_rooms.select do |room|