Various location names to make them shorter, along with adding a few comments and preparing traplink option. Also added "Sqaushing all gifts" missions.

This commit is contained in:
MarioSpore
2025-08-03 18:40:12 -04:00
parent b0a9831082
commit 0f2851e1b3
5 changed files with 168 additions and 142 deletions

View File

@@ -170,8 +170,8 @@ TRAPS_TABLE: dict[str, GrinchItemData] = {
# "Tip Toe Trap": GrinchItemData("Traps", 603, IC.trap, [GrinchRamData()]), #alias to Slowness Trap for traplink # "Tip Toe Trap": GrinchItemData("Traps", 603, IC.trap, [GrinchRamData()]), #alias to Slowness Trap for traplink
"Damage Trap": GrinchItemData("Traps", 604, IC.trap, [GrinchRamData(0x800E8FDC, value=20)]), "Damage Trap": GrinchItemData("Traps", 604, IC.trap, [GrinchRamData(0x800E8FDC, value=20)]),
"Depletion Trap": GrinchItemData("Traps", 605, IC.trap, [GrinchRamData(0x80010058, value=0)]), "Depletion Trap": GrinchItemData("Traps", 605, IC.trap, [GrinchRamData(0x80010058, value=0)]),
"Dump it to Crumpit": GrinchItemData("Traps", 606, IC.trap, #Alias to Home Trap for traplink # "Dump it to Crumpit": GrinchItemData("Traps", 606, IC.trap, #Alias to Home Trap for traplink
[GrinchRamData(0x80010000, value=0x05), GrinchRamData(0x8008FB94, value=1)]), # [GrinchRamData(0x80010000, value=0x05), GrinchRamData(0x8008FB94, value=1)]),
# "Rocket Spring Trap": GrinchItemData("Traps", 607, IC.trap, [GrinchRamData()]), #alias to Spring Trap for traplink # "Rocket Spring Trap": GrinchItemData("Traps", 607, IC.trap, [GrinchRamData()]), #alias to Spring Trap for traplink
"Who sent me here?": GrinchItemData("Traps", 608, IC.trap, [GrinchRamData(0x8008FB94, value=1)]), #alias to Home Trap for traplink "Who sent me here?": GrinchItemData("Traps", 608, IC.trap, [GrinchRamData(0x8008FB94, value=1)]), #alias to Home Trap for traplink
# "Cutscene Trap": GrinchItemData("Traps", 609, IC.trap, [GrinchRamData()]), # "Cutscene Trap": GrinchItemData("Traps", 609, IC.trap, [GrinchRamData()]),

View File

@@ -55,14 +55,14 @@ grinch_locations = {
"Launching Eggs Into Houses": GrinchLocationData("Whoville", "Whoville Missions", 203, [GrinchRamData(0x800100C7, value=10)]), "Launching Eggs Into Houses": GrinchLocationData("Whoville", "Whoville Missions", 203, [GrinchRamData(0x800100C7, value=10)]),
"Modifying The Mayor's Statue": GrinchLocationData("City Hall", "Whoville Missions", 204, [GrinchRamData(0x800100BE, binary_bit_pos=2)]), "Modifying The Mayor's Statue": GrinchLocationData("City Hall", "Whoville Missions", 204, [GrinchRamData(0x800100BE, binary_bit_pos=2)]),
"Advancing The Countdown-To-Xmas Clock": GrinchLocationData("Countdown to X-Mas Clock Tower", "Whoville Missions", 205, [GrinchRamData(0x800100BE, binary_bit_pos=3)]), "Advancing The Countdown-To-Xmas Clock": GrinchLocationData("Countdown to X-Mas Clock Tower", "Whoville Missions", 205, [GrinchRamData(0x800100BE, binary_bit_pos=3)]),
# "Squashing All Gifts in Whoville": GrinchLocationData("Whoville", "Whoville Missions", 206, [GrinchRamData(0x8001005C, value=500)]), "Squashing All Gifts in Whoville": GrinchLocationData("Whoville", "Whoville Missions", 206, [GrinchRamData(0x8001005C, value=500)]),
#Who Forest Missions #Who Forest Missions
"Making Xmas Trees Droop": GrinchLocationData("Who Forest", "Who Forest Missions", 300, [GrinchRamData(0x800100C8, value=10)]), "Making Xmas Trees Droop": GrinchLocationData("Who Forest", "Who Forest Missions", 300, [GrinchRamData(0x800100C8, value=10)]),
"Sabotaging Snow Cannon With Glue": GrinchLocationData("Who Forest", "Who Forest Missions", 301, [GrinchRamData(0x800100BE, binary_bit_pos=4)]), "Sabotaging Snow Cannon With Glue": GrinchLocationData("Who Forest", "Who Forest Missions", 301, [GrinchRamData(0x800100BE, binary_bit_pos=4)]),
"Putting Beehives In Cabins": GrinchLocationData("Who Forest", "Who Forest Missions", 302, [GrinchRamData(0x800100CA, value=10)]), "Putting Beehives In Cabins": GrinchLocationData("Who Forest", "Who Forest Missions", 302, [GrinchRamData(0x800100CA, value=10)]),
"Sliming The Mayor's Skis": GrinchLocationData("Ski Resort", "Who Forest Missions", 303, [GrinchRamData(0x800100BE, binary_bit_pos=5)]), "Sliming The Mayor's Skis": GrinchLocationData("Ski Resort", "Who Forest Missions", 303, [GrinchRamData(0x800100BE, binary_bit_pos=5)]),
"Replacing The Candles On The Cake With Fireworks": GrinchLocationData("Civic Center", "Who Forest Missions", 304, [GrinchRamData(0x800100BE, binary_bit_pos=6)]), "Replacing The Candles On The Cake With Fireworks": GrinchLocationData("Civic Center", "Who Forest Missions", 304, [GrinchRamData(0x800100BE, binary_bit_pos=6)]),
# "Squashing All Gifts in Who Forest": GrinchLocationData("Who Forest", "Who Forest Missions", 305, [GrinchRamData(0x8001005E, value=750)]), "Squashing All Gifts in Who Forest": GrinchLocationData("Who Forest", "Who Forest Missions", 305, [GrinchRamData(0x8001005E, value=750)]),
#Who Dump Missions #Who Dump Missions
"Stealing Food From Birds": GrinchLocationData("Who Dump", "Who Dump Missions", 400, [GrinchRamData(0x800100CB, value=10)]), "Stealing Food From Birds": GrinchLocationData("Who Dump", "Who Dump Missions", 400, [GrinchRamData(0x800100CB, value=10)]),
"Feeding The Computer With Robot Parts": GrinchLocationData("Who Dump", "Who Dump Missions", 401, [GrinchRamData(0x800100BF, binary_bit_pos=3)]), "Feeding The Computer With Robot Parts": GrinchLocationData("Who Dump", "Who Dump Missions", 401, [GrinchRamData(0x800100BF, binary_bit_pos=3)]),
@@ -70,14 +70,14 @@ grinch_locations = {
"Conducting The Stinky Gas To Who-Bris' Shack": GrinchLocationData("Who Dump", "Who Dump Missions", 403, [GrinchRamData(0x800100BE, binary_bit_pos=8)]), "Conducting The Stinky Gas To Who-Bris' Shack": GrinchLocationData("Who Dump", "Who Dump Missions", 403, [GrinchRamData(0x800100BE, binary_bit_pos=8)]),
"Shaving Who Dump Guardian": GrinchLocationData("Minefield", "Who Dump Missions", 404, [GrinchRamData(0x800100BF, binary_bit_pos=1)]), "Shaving Who Dump Guardian": GrinchLocationData("Minefield", "Who Dump Missions", 404, [GrinchRamData(0x800100BF, binary_bit_pos=1)]),
"Short-Circuiting Power-Plant": GrinchLocationData("Generator Building", "Who Dump Missions", 405, [GrinchRamData(0x800100BF, binary_bit_pos=2)]), "Short-Circuiting Power-Plant": GrinchLocationData("Generator Building", "Who Dump Missions", 405, [GrinchRamData(0x800100BF, binary_bit_pos=2)]),
# "Squashing All Gifts in Who Dump": GrinchLocationData("Who Dump", "Who Dump Missions", 406, [GrinchRamData(0x80010060, value=750)]), "Squashing All Gifts in Who Dump": GrinchLocationData("Who Dump", "Who Dump Missions", 406, [GrinchRamData(0x80010060, value=750)]),
#Who Lake Missions #Who Lake Missions
"Putting Thistles In Shorts": GrinchLocationData("Who Lake", "Who Lake Missions", 500, [GrinchRamData(0x800100E6, value=10)]), "Putting Thistles In Shorts": GrinchLocationData("Who Lake", "Who Lake Missions", 500, [GrinchRamData(0x800100E6, value=10)]),
"Sabotaging The Tents": GrinchLocationData("Who Lake", "Who Lake Missions", 501, [GrinchRamData(0x800100E5, value=10)]), "Sabotaging The Tents": GrinchLocationData("Who Lake", "Who Lake Missions", 501, [GrinchRamData(0x800100E5, value=10)]),
"Drilling Holes In Canoes": GrinchLocationData("North Shore", "Who Lake Missions", 502, [GrinchRamData(0x800100EE, value=10)]), "Drilling Holes In Canoes": GrinchLocationData("North Shore", "Who Lake Missions", 502, [GrinchRamData(0x800100EE, value=10)]),
"Modifying The Marine Mobile": GrinchLocationData("Submarine World", "Who Lake Missions", 503, [GrinchRamData(0x800100BF, binary_bit_pos=5)]), "Modifying The Marine Mobile": GrinchLocationData("Submarine World", "Who Lake Missions", 503, [GrinchRamData(0x800100BF, binary_bit_pos=5)]),
"Hooking The Mayor's Bed To The Motorboat": GrinchLocationData("Mayor's Villa", "Who Lake Missions", 504, [GrinchRamData(0x800100BF, binary_bit_pos=4)]), "Hooking The Mayor's Bed To The Motorboat": GrinchLocationData("Mayor's Villa", "Who Lake Missions", 504, [GrinchRamData(0x800100BF, binary_bit_pos=4)]),
# "Squashing All Gifts in Who Lake": GrinchLocationData("Who Lake", "Who Lake Missions", 505, [GrinchRamData(0x80010062, value=1000)]), "Squashing All Gifts in Who Lake": GrinchLocationData("Who Lake", "Who Lake Missions", 505, [GrinchRamData(0x80010062, value=1000)]),
#Need to find binary values for individual blueprints, but all ram addresses are found #Need to find binary values for individual blueprints, but all ram addresses are found
#Blueprints #Blueprints
#Binoculars Blueprints #Binoculars Blueprints
@@ -86,74 +86,74 @@ grinch_locations = {
"Binoculars Blueprint - City Hall Library - Front Side": GrinchLocationData("City Hall", "Binocular Blueprints", 602, [GrinchRamData(0x8001020B, binary_bit_pos=6)]), "Binoculars Blueprint - City Hall Library - Front Side": GrinchLocationData("City Hall", "Binocular Blueprints", 602, [GrinchRamData(0x8001020B, binary_bit_pos=6)]),
"Binoculars Blueprint - City Hall Library - Right Side": GrinchLocationData("City Hall", "Binocular Blueprints", 603, [GrinchRamData(0x8001020B, binary_bit_pos=5)]), "Binoculars Blueprint - City Hall Library - Right Side": GrinchLocationData("City Hall", "Binocular Blueprints", 603, [GrinchRamData(0x8001020B, binary_bit_pos=5)]),
#Rotten Egg Launcher Blueprints #Rotten Egg Launcher Blueprints
"Rotten Egg Launcher Blueprint - Outside City Hall": GrinchLocationData("Whoville", "Rotten Egg Launcher Blueprints", 700, [GrinchRamData(0x8001020B, binary_bit_pos=1)]), "REL Blueprint - Outside City Hall": GrinchLocationData("Whoville", "Rotten Egg Launcher Blueprints", 700, [GrinchRamData(0x8001020B, binary_bit_pos=1)]),
"Rotten Egg Launcher Blueprint - Outside Clock Tower": GrinchLocationData("Whoville", "Rotten Egg Launcher Blueprints", 701, [GrinchRamData(0x8001020B, binary_bit_pos=2)]), "REL Blueprint - Outside Clock Tower": GrinchLocationData("Whoville", "Rotten Egg Launcher Blueprints", 701, [GrinchRamData(0x8001020B, binary_bit_pos=2)]),
"Rotten Egg Launcher Blueprint - Post Office - Front of Silver Door": GrinchLocationData("Post Office", "Rotten Egg Launcher Blueprints", 702, [GrinchRamData(0x8001021C, binary_bit_pos=2)]), "REL Blueprint - Post Office - Front of Silver Door": GrinchLocationData("Post Office", "Rotten Egg Launcher Blueprints", 702, [GrinchRamData(0x8001021C, binary_bit_pos=2)]),
"Rotten Egg Launcher Blueprint - Post Office - After Mission Completion": GrinchLocationData("Post Office", "Rotten Egg Launcher Blueprints", 703, [GrinchRamData(0x8001021C, binary_bit_pos=3)]), "REL Blueprint - Post Office - After Mission Completion": GrinchLocationData("Post Office", "Rotten Egg Launcher Blueprints", 703, [GrinchRamData(0x8001021C, binary_bit_pos=3)]),
#Rocket Spring Blueprints #Rocket Spring Blueprints
"Rocket Spring Blueprint - Behind Vacuum": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 800, [GrinchRamData(0x80010243, binary_bit_pos=4)]), "RS Blueprint - Behind Vacuum": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 800, [GrinchRamData(0x80010243, binary_bit_pos=4)]),
"Rocket Spring Blueprint - Front of 2nd House near entrance": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 801, [GrinchRamData(0x80010243, binary_bit_pos=2)]), "RS Blueprint - Front of 2nd House near entrance": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 801, [GrinchRamData(0x80010243, binary_bit_pos=2)]),
"Rocket Spring Blueprint - Near Tree House on Ground": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 802, [GrinchRamData(0x80010243, binary_bit_pos=5)]), "RS Blueprint - Near Tree House on Ground": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 802, [GrinchRamData(0x80010243, binary_bit_pos=5)]),
"Rocket Spring Blueprint - Near Cable Car House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 804, [GrinchRamData(0x80010242, binary_bit_pos=8)]), "RS Blueprint - Near Cable Car House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 804, [GrinchRamData(0x80010242, binary_bit_pos=8)]),
"Rocket Spring Blueprint - Near Who Snowball in Cave": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 805, [GrinchRamData(0x80010242, binary_bit_pos=7)]), "RS Blueprint - Near Who Snowball in Cave": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 805, [GrinchRamData(0x80010242, binary_bit_pos=7)]),
"Rocket Spring Blueprint - Branch Platform Closest to Glue Cannon": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 806, [GrinchRamData(0x80010243, binary_bit_pos=3)]), "RS Blueprint - Branch Platform Closest to Glue Cannon": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 806, [GrinchRamData(0x80010243, binary_bit_pos=3)]),
"Rocket Spring Blueprint - Branch Platform Near Beast": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 807, [GrinchRamData(0x80010243, binary_bit_pos=1)]), "RS Blueprint - Branch Platform Near Beast": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 807, [GrinchRamData(0x80010243, binary_bit_pos=1)]),
"Rocket Spring Blueprint - Branch Platform Ledge Grab House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 808, [GrinchRamData(0x80010243, binary_bit_pos=7)]), "RS Blueprint - Branch Platform Ledge Grab House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 808, [GrinchRamData(0x80010243, binary_bit_pos=7)]),
"Rocket Spring Blueprint - On Tree House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 809, [GrinchRamData(0x80010243, binary_bit_pos=6)]), "RS Blueprint - On Tree House": GrinchLocationData("Who Forest", "Rocket Spring Blueprints", 809, [GrinchRamData(0x80010243, binary_bit_pos=6)]),
#Slime Shooter Blueprints #Slime Shooter Blueprints
"Slime Shooter Blueprint - Branch Platform Elevated House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 900, [GrinchRamData(0x80010244, binary_bit_pos=4)]), "SS Blueprint - Branch Platform Elevated House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 900, [GrinchRamData(0x80010244, binary_bit_pos=4)]),
"Slime Shooter Blueprint - Branch Platform House next to Beast": GrinchLocationData("Who Forest", "Slime Shooter Blueprint", 901, [GrinchRamData(0x80010243, binary_bit_pos=8)]), "SS Blueprint - Branch Platform House next to Beast": GrinchLocationData("Who Forest", "Slime Shooter Blueprint", 901, [GrinchRamData(0x80010243, binary_bit_pos=8)]),
"Slime Shooter Blueprint - House near Civic Center Cave": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 902, [GrinchRamData(0x80010244, binary_bit_pos=3)]), "SS Blueprint - House near Civic Center Cave": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 902, [GrinchRamData(0x80010244, binary_bit_pos=3)]),
"Slime Shooter Blueprint - House next to Tree House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 903, [GrinchRamData(0x80010244, binary_bit_pos=2)]), "SS Blueprint - House next to Tree House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 903, [GrinchRamData(0x80010244, binary_bit_pos=2)]),
"Slime Shooter Blueprint - House across from Tree House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 904, [GrinchRamData(0x80010244, binary_bit_pos=6)]), "SS Blueprint - House across from Tree House": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 904, [GrinchRamData(0x80010244, binary_bit_pos=6)]),
"Slime Shooter Blueprint - 2nd House near entrance right side": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 905, [GrinchRamData(0x80010244, binary_bit_pos=5)]), "SS Blueprint - 2nd House near entrance right side": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 905, [GrinchRamData(0x80010244, binary_bit_pos=5)]),
"Slime Shooter Blueprint - 2nd House near entrance left side": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 906, [GrinchRamData(0x80010244, binary_bit_pos=8)]), "SS Blueprint - 2nd House near entrance left side": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 906, [GrinchRamData(0x80010244, binary_bit_pos=8)]),
"Slime Shooter Blueprint - 2nd House near entrance inbetween blueprints": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 907, [GrinchRamData(0x80010244, binary_bit_pos=7)]), "SS Blueprint - 2nd House near entrance inbetween blueprints": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 907, [GrinchRamData(0x80010244, binary_bit_pos=7)]),
"Slime Shooter Blueprint - House near entrance": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 908, [GrinchRamData(0x80010244, binary_bit_pos=1)]), "SS Blueprint - House near entrance": GrinchLocationData("Who Forest", "Slime Shooter Blueprints", 908, [GrinchRamData(0x80010244, binary_bit_pos=1)]),
#Octopus Climbing Device #Octopus Climbing Device
"Octopus Climbing Device Blueprint - Middle Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1001, [GrinchRamData(0x80010252, binary_bit_pos=4)]), "OCD Blueprint - Middle Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1001, [GrinchRamData(0x80010252, binary_bit_pos=4)]),
"Octopus Climbing Device Blueprint - Right Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1002, [GrinchRamData(0x80010252, binary_bit_pos=6)]), "OCD Blueprint - Right Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1002, [GrinchRamData(0x80010252, binary_bit_pos=6)]),
"Octopus Climbing Device Blueprint - Mayor's House Rat Vent": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1003, [GrinchRamData(0x80010252, binary_bit_pos=2)]), "OCD Blueprint - Mayor's House Rat Vent": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1003, [GrinchRamData(0x80010252, binary_bit_pos=2)]),
"Octopus Climbing Device Blueprint - Left Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1004, [GrinchRamData(0x80010252, binary_bit_pos=5)]), "OCD Blueprint - Left Pipe": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1004, [GrinchRamData(0x80010252, binary_bit_pos=5)]),
"Octopus Climbing Device Blueprint - Near Power Plant Wall on right side": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1005, [GrinchRamData(0x80010252, binary_bit_pos=1)]), "OCD Blueprint - Near Power Plant Wall on right side": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1005, [GrinchRamData(0x80010252, binary_bit_pos=1)]),
"Octopus Climbing Device Blueprint - Near Who-Bris' Shack": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1006, [GrinchRamData(0x80010252, binary_bit_pos=3)]), "OCD Blueprint - Near Who-Bris' Shack": GrinchLocationData("Who Dump", "Octopus Climbing Device Blueprints", 1006, [GrinchRamData(0x80010252, binary_bit_pos=3)]),
"Octopus Climbing Device Blueprint - Guardian's House - Left Side": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1007, [GrinchRamData(0x8001026E, binary_bit_pos=3)]), "OCD Blueprint - Guardian's House - Left Side": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1007, [GrinchRamData(0x8001026E, binary_bit_pos=3)]),
"Octopus Climbing Device Blueprint - Guardian's House - Right Side": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1008, [GrinchRamData(0x8001026E, binary_bit_pos=5)]), "OCD Blueprint - Guardian's House - Right Side": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1008, [GrinchRamData(0x8001026E, binary_bit_pos=5)]),
"Octopus Climbing Device Blueprint - Inside Guardian's House": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1009, [GrinchRamData(0x8001026E, binary_bit_pos=3)]), "OCD Blueprint - Inside Guardian's House": GrinchLocationData("Minefield", "Octopus Climbing Device Blueprints", 1009, [GrinchRamData(0x8001026E, binary_bit_pos=3)]),
#Marine Mobile Blueprints #Marine Mobile Blueprints
"Marine Mobile Blueprint - South Shore - Bridge to Scout's Hut": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1100, [GrinchRamData(0x80010281, binary_bit_pos=6)]), "MM Blueprint - South Shore - Bridge to Scout's Hut": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1100, [GrinchRamData(0x80010281, binary_bit_pos=6)]),
"Marine Mobile Blueprint - South Shore - Tent near Porcupine": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1101, [GrinchRamData(0x80010281, binary_bit_pos=7)]), "MM Blueprint - South Shore - Tent near Porcupine": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1101, [GrinchRamData(0x80010281, binary_bit_pos=7)]),
"Marine Mobile Blueprint - South Shore - Near Outhouse": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1102, [GrinchRamData(0x80010281, binary_bit_pos=8)]), "MM Blueprint - South Shore - Near Outhouse": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1102, [GrinchRamData(0x80010281, binary_bit_pos=8)]),
"Marine Mobile Blueprint - South Shore - Near Hill Bridge": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1103, [GrinchRamData(0x80010282, binary_bit_pos=1)]), "MM Blueprint - South Shore - Near Hill Bridge": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1103, [GrinchRamData(0x80010282, binary_bit_pos=1)]),
"Marine Mobile Blueprint - South Shore - Scout's Hut Roof": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1104, [GrinchRamData(0x80010281, binary_bit_pos=5)]), "MM Blueprint - South Shore - Scout's Hut Roof": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1104, [GrinchRamData(0x80010281, binary_bit_pos=5)]),
"Marine Mobile Blueprint - South Shore - Grass Platform": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1105, [GrinchRamData(0x80010281, binary_bit_pos=3)]), "MM Blueprint - South Shore - Grass Platform": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1105, [GrinchRamData(0x80010281, binary_bit_pos=3)]),
"Marine Mobile Blueprint - South Shore - Zipline by Beast": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1106, [GrinchRamData(0x80010281, binary_bit_pos=4)]), "MM Blueprint - South Shore - Zipline by Beast": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1106, [GrinchRamData(0x80010281, binary_bit_pos=4)]),
"Marine Mobile Blueprint - South Shore - Behind Summer Beast": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1107, [GrinchRamData(0x80010282, binary_bit_pos=2)]), "MM Blueprint - South Shore - Behind Summer Beast": GrinchLocationData("Who Lake", "Marine Mobile Blueprints", 1107, [GrinchRamData(0x80010282, binary_bit_pos=2)]),
"Marine Mobile Blueprint - North Shore - Below Bridge": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1108, [GrinchRamData(0x80010293, binary_bit_pos=1)]), "MM Blueprint - North Shore - Below Bridge": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1108, [GrinchRamData(0x80010293, binary_bit_pos=1)]),
"Marine Mobile Blueprint - North Shore - Behind Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1109, [GrinchRamData(0x80010293, binary_bit_pos=3)]), "MM Blueprint - North Shore - Behind Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1109, [GrinchRamData(0x80010293, binary_bit_pos=3)]),
"Marine Mobile Blueprint - North Shore - Inside Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1110, [GrinchRamData(0x80010292, binary_bit_pos=7)]), "MM Blueprint - North Shore - Inside Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1110, [GrinchRamData(0x80010292, binary_bit_pos=7)]),
"Marine Mobile Blueprint - North Shore - Fenced in Area": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1111, [GrinchRamData(0x80010292, binary_bit_pos=8)]), "MM Blueprint - North Shore - Fenced in Area": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1111, [GrinchRamData(0x80010292, binary_bit_pos=8)]),
"Marine Mobile Blueprint - North Shore - Boulder Box near Bridge": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1112, [GrinchRamData(0x80010293, binary_bit_pos=4)]), "MM Blueprint - North Shore - Boulder Box near Bridge": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1112, [GrinchRamData(0x80010293, binary_bit_pos=4)]),
"Marine Mobile Blueprint - North Shore - Boulder Box behind Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1113, [GrinchRamData(0x80010293, binary_bit_pos=5)]), "MM Blueprint - North Shore - Boulder Box behind Skunk Hut": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1113, [GrinchRamData(0x80010293, binary_bit_pos=5)]),
"Marine Mobile Blueprint - North Shore - Inside Drill House": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1114, [GrinchRamData(0x80010292, binary_bit_pos=6)]), "MM Blueprint - North Shore - Inside Drill House": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1114, [GrinchRamData(0x80010292, binary_bit_pos=6)]),
"Marine Mobile Blueprint - North Shore - Crow Platform near Drill House": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1115, [GrinchRamData(0x80010293, binary_bit_pos=2)]), "MM Blueprint - North Shore - Crow Platform near Drill House": GrinchLocationData("North Shore", "Marine Mobile Blueprints", 1115, [GrinchRamData(0x80010293, binary_bit_pos=2)]),
#Grinch Copter Blueprints #Grinch Copter Blueprints
"Grinch Copter Blueprint - Whoville City Hall - Safe Room": GrinchLocationData("City Hall", "Grinch Copter Blueprints", 1200, [GrinchRamData(0x8001020B, binary_bit_pos=8)]), "GC Blueprint - Whoville City Hall - Safe Room": GrinchLocationData("City Hall", "Grinch Copter Blueprints", 1200, [GrinchRamData(0x8001020B, binary_bit_pos=8)]),
"Grinch Copter Blueprint - Whoville City Hall - Statue Room": GrinchLocationData("City Hall", "Grinch Copter Blueprints", 1201, [GrinchRamData(0x80010220, binary_bit_pos=1)]), "GC Blueprint - Whoville City Hall - Statue Room": GrinchLocationData("City Hall", "Grinch Copter Blueprints", 1201, [GrinchRamData(0x80010220, binary_bit_pos=1)]),
"Grinch Copter Blueprint - Whoville Clock Tower - Before Bells": GrinchLocationData("Countdown to X-Mas Clock Tower", "Grinch Copter Blueprints", 1202, [GrinchRamData(0x80010265, binary_bit_pos=4)]), "GC Blueprint - Whoville Clock Tower - Before Bells": GrinchLocationData("Countdown to X-Mas Clock Tower", "Grinch Copter Blueprints", 1202, [GrinchRamData(0x80010265, binary_bit_pos=4)]),
"Grinch Copter Blueprint - Whoville Clock Tower - After Bells": GrinchLocationData("Countdown to X-Mas Clock Tower", "Grinch Copter Blueprints", 1203, [GrinchRamData(0x80010265, binary_bit_pos=3)]), "GC Blueprint - Whoville Clock Tower - After Bells": GrinchLocationData("Countdown to X-Mas Clock Tower", "Grinch Copter Blueprints", 1203, [GrinchRamData(0x80010265, binary_bit_pos=3)]),
"Grinch Copter Blueprint - Who Forest Ski Resort - Inside Dog's Fence": GrinchLocationData("Ski Resort", "Grinch Copter Blueprints", 1204, [GrinchRamData(0x80010234, binary_bit_pos=8)]), "GC Blueprint - Who Forest Ski Resort - Inside Dog's Fence": GrinchLocationData("Ski Resort", "Grinch Copter Blueprints", 1204, [GrinchRamData(0x80010234, binary_bit_pos=8)]),
"Grinch Copter Blueprint - Who Forest Ski Resort - Max Cave": GrinchLocationData("Ski Resort", "Grinch Copter Blueprints", 1205, [GrinchRamData(0x80010234, binary_bit_pos=7)]), "GC Blueprint - Who Forest Ski Resort - Max Cave": GrinchLocationData("Ski Resort", "Grinch Copter Blueprints", 1205, [GrinchRamData(0x80010234, binary_bit_pos=7)]),
"Grinch Copter Blueprint - Who Forest Civic Center - Climb across Bat Cave wall": GrinchLocationData("Civic Center", "Grinch Copter Blueprints", 1206, [GrinchRamData(0x8001022A, binary_bit_pos=8)]), "GC Blueprint - Who Forest Civic Center - Climb across Bat Cave wall": GrinchLocationData("Civic Center", "Grinch Copter Blueprints", 1206, [GrinchRamData(0x8001022A, binary_bit_pos=8)]),
"Grinch Copter Blueprint - Who Forest Civic Center - Shoot Icicle in Bat Entrance": GrinchLocationData("Civic Center", "Grinch Copter Blueprints", 1207, [GrinchRamData(0x8001022B, binary_bit_pos=1)]), "GC Blueprint - Who Forest Civic Center - Shoot Icicle in Bat Entrance": GrinchLocationData("Civic Center", "Grinch Copter Blueprints", 1207, [GrinchRamData(0x8001022B, binary_bit_pos=1)]),
"Grinch Copter Blueprint - Who Dump Power Plant - Max Cave": GrinchLocationData("Power Plant", "Grinch Copter Blueprints", 1208, [GrinchRamData(0x80010265, binary_bit_pos=2)]), "GC Blueprint - Who Dump Power Plant - Max Cave": GrinchLocationData("Power Plant", "Grinch Copter Blueprints", 1208, [GrinchRamData(0x80010265, binary_bit_pos=2)]),
"Grinch Copter Blueprint - Who Dump Power Plant - After First Gate": GrinchLocationData("Power Plant", "Grinch Copter Blueprints", 1209, [GrinchRamData(0x80010265, binary_bit_pos=3)]), "GC Blueprint - Who Dump Power Plant - After First Gate": GrinchLocationData("Power Plant", "Grinch Copter Blueprints", 1209, [GrinchRamData(0x80010265, binary_bit_pos=3)]),
"Grinch Copter Blueprint - Who Dump Generator Building - Before Mission": GrinchLocationData("Generator Building", "Grinch Copter Blueprints", 1210, [GrinchRamData(0x8001026B, binary_bit_pos=1)]), "GC Blueprint - Who Dump Generator Building - Before Mission": GrinchLocationData("Generator Building", "Grinch Copter Blueprints", 1210, [GrinchRamData(0x8001026B, binary_bit_pos=1)]),
"Grinch Copter Blueprint - Who Dump Generator Building - After Mission": GrinchLocationData("Generator Building", "Grinch Copter Blueprints", 1211, [GrinchRamData(0x8001026B, binary_bit_pos=2)]), "GC Blueprint - Who Dump Generator Building - After Mission": GrinchLocationData("Generator Building", "Grinch Copter Blueprints", 1211, [GrinchRamData(0x8001026B, binary_bit_pos=2)]),
"Grinch Copter Blueprint - Who Lake South Shore - Submarine World - Above Surface": GrinchLocationData("Submarine World", "Grinch Copter Blueprints", 1212, [GrinchRamData(0x80010289, binary_bit_pos=4)]), "GC Blueprint - Who Lake South Shore - Submarine World - Above Surface": GrinchLocationData("Submarine World", "Grinch Copter Blueprints", 1212, [GrinchRamData(0x80010289, binary_bit_pos=4)]),
"Grinch Copter Blueprint - Who Lake South Shore - Submarine World - Underwater": GrinchLocationData("Submarine World", "Grinch Copter Blueprints", 1213, [GrinchRamData(0x80010289, binary_bit_pos=5)]), "GC Blueprint - Who Lake South Shore - Submarine World - Underwater": GrinchLocationData("Submarine World", "Grinch Copter Blueprints", 1213, [GrinchRamData(0x80010289, binary_bit_pos=5)]),
"Grinch Copter Blueprint - Who Lake North Shore - Mayor's Villa - Tree Branch": GrinchLocationData("Mayor's Villa", "Grinch Copter Blueprints", 1214, [GrinchRamData(0x80010275, binary_bit_pos=8)]), "GC Blueprint - Who Lake North Shore - Mayor's Villa - Tree Branch": GrinchLocationData("Mayor's Villa", "Grinch Copter Blueprints", 1214, [GrinchRamData(0x80010275, binary_bit_pos=8)]),
"Grinch Copter Blueprint - Who Lake North Shore - Mayor's Villa - Cave": GrinchLocationData("Mayor's Villa", "Grinch Copter Blueprints", 1215, [GrinchRamData(0x80010275, binary_bit_pos=7)]), "GC Blueprint - Who Lake North Shore - Mayor's Villa - Cave": GrinchLocationData("Mayor's Villa", "Grinch Copter Blueprints", 1215, [GrinchRamData(0x80010275, binary_bit_pos=7)]),
#Sleigh Room Locations #Sleigh Room Locations
"Stealing All Gifts": GrinchLocationData("Sleigh Room", "Sleigh Ride", 1300, [GrinchRamData(0x800100BF, binary_bit_pos=7)]), "Stealing All Gifts": GrinchLocationData("Sleigh Room", "Sleigh Ride", 1300, [GrinchRamData(0x800100BF, binary_bit_pos=7)]),
"Neutralizing Santa": GrinchLocationData("Sleigh Room", "Sleigh Ride", None, [GrinchRamData(0x800100BF, binary_bit_pos=8)]) "Neutralizing Santa": GrinchLocationData("Sleigh Room", "Sleigh Ride", None, [GrinchRamData(0x800100BF, binary_bit_pos=8)])

View File

@@ -6,7 +6,7 @@ from Options import FreeText, NumericOption, Toggle, DefaultOnToggle, Choice, Te
class ProgressiveVacuum(Toggle): class ProgressiveVacuum(Toggle):
""" """
Determines whether you get access to main areas progressively Determines whether you get access to main areas progressively [NOT IMPLEMENTED]
Enabled: Whoville > Who Forest > Who Dump > Who Lake Enabled: Whoville > Who Forest > Who Dump > Who Lake
""" """
@@ -14,7 +14,7 @@ class ProgressiveVacuum(Toggle):
class Missionsanity(Choice): class Missionsanity(Choice):
""" """
How mission checks are randomized in the pool How mission checks are randomized in the pool [NOT IMPLEMENTED]
None: Does not add mission checks None: Does not add mission checks
Completion: Only completing the mission gives you a check Completion: Only completing the mission gives you a check
@@ -30,7 +30,8 @@ class Missionsanity(Choice):
# class StartingArea(Choice): # class StartingArea(Choice):
# """ # """
# Here, you can select which area you'll start the game with. Whichever one you pick is the region you'll have access to at the start of the Multiworld. # Here, you can select which area you'll start the game with.
# Whichever one you pick is the region you'll have access to at the start of the Multiworld.
# """ # """
# option_whoville = 0 # option_whoville = 0
# option_who_forest = 1 # option_who_forest = 1
@@ -40,29 +41,34 @@ class Missionsanity(Choice):
# display_name = "Starting Area" # display_name = "Starting Area"
# class Supadow(Toggle): # class Supadow(Toggle):
# """Enables completing minigames through the Supadows in Mount Crumpit as checks. (9 locations)""" # """Enables completing minigames through the Supadows in Mount Crumpit as checks. (9 locations) [NOT IMPLEMENTED]"""
# display_name = "Supadow Minigame Locations"# # display_name = "Supadow Minigame Locations"#
# class Gifts(Toggle): # class Gifts(Toggle):
# """Missions that require you to squash every present in a level. (4 locations)""" # """Missions that require you to squash every present in a level. (4 locations) [NOT IMPLEMENTED]"""
# display_name = "Gift Collection Locations" # display_name = "Gift Collection Locations"
# class Movesanity(Toggle): # class Movesanity(Toggle):
# """Randomizes Grinch's moveset along with randomizing max into the pool. (Currently randomizes Max)""" # """Randomizes Grinch's moveset along with randomizing max into the pool. [NOT IMPLEMENTED]"""
# display_name = "Movesanity" # display_name = "Movesanity"
class UnlimitedRottenEggs(Toggle): class UnlimitedRottenEggs(Toggle):
"""Determine whether or not you run out of rotten eggs when you utilize your gadgets.""" """Determine whether or not you run out of rotten eggs when you utilize your gadgets. [NOT IMPLEMENTED]"""
display_name = "Unlimited Rotten Eggs" display_name = "Unlimited Rotten Eggs"
class RingLinkOption(Toggle): class RingLinkOption(Toggle):
"""Whenever this is toggled, your ammo is linked with other ringlink-compatible games that also have this enabled""" """Whenever this is toggled, your ammo is linked with other ringlink-compatible games that also have this enabled. [NOT IMPLEMENTED]"""
class TrapLinkOption(Toggle):
"""If a trap is sent from Grinch, traps that are compatible with other games are triggered aswell. [NOT IMPLEMENTED]"""
@dataclass @dataclass
class GrinchOptions(PerGameCommonOptions):#DeathLinkMixin class GrinchOptions(PerGameCommonOptions):#DeathLinkMixin
progressive_vacuum: ProgressiveVacuum progressive_vacuum: ProgressiveVacuum
missionsanity: Missionsanity missionsanity: Missionsanity
unlimited_rotten_eggs: UnlimitedRottenEggs unlimited_rotten_eggs: UnlimitedRottenEggs
ring_link: RingLinkOption
trap_link: TrapLinkOption

View File

@@ -68,6 +68,7 @@ def grinchconnect(world: "GrinchWorld", current_region_name: str, connected_regi
region_entrance.parent_region.name == current_region_name: region_entrance.parent_region.name == current_region_name:
add_rule(region_entrance, access_rule) add_rule(region_entrance, access_rule)
#What regions are connected to each other
def connect_regions(world: "GrinchWorld"): def connect_regions(world: "GrinchWorld"):
grinchconnect(world, "Mount Crumpit", "Whoville") grinchconnect(world, "Mount Crumpit", "Whoville")
grinchconnect(world, "Mount Crumpit", "Who Forest") grinchconnect(world, "Mount Crumpit", "Who Forest")

View File

@@ -4,6 +4,7 @@ from BaseClasses import CollectionState
from worlds.AutoWorld import World from worlds.AutoWorld import World
from worlds.generic.Rules import add_rule from worlds.generic.Rules import add_rule
#Adds all rules from access_rules_dict to locations
def set_rules(world: World): def set_rules(world: World):
all_locations = world.get_locations() all_locations = world.get_locations()
for location in all_locations: for location in all_locations:
@@ -12,7 +13,7 @@ def set_rules(world: World):
for access_rule in rule_list: for access_rule in rule_list:
add_rule(location, access_rule) add_rule(location, access_rule)
#Each item in the list is a separate list of rules. Each separate list is just an "OR" condition.
rules_dict: dict[str,list[list[str]]] = { rules_dict: dict[str,list[list[str]]] = {
"Enter Whoville": [ "Enter Whoville": [
[] []
@@ -80,6 +81,9 @@ rules_dict: dict[str,list[list[str]]] = {
"Advancing The Countdown-To-Xmas Clock": [ "Advancing The Countdown-To-Xmas Clock": [
["Hammer", "Rocket Spring"] ["Hammer", "Rocket Spring"]
], ],
"Squashing All Gifts in Whoville": [
["Grinch Copter", "Slime Shooter", "Rotten Egg Launcher", "Who Cloak", "Rocket Spring"]
],
"Making Xmas Trees Droop": [ "Making Xmas Trees Droop": [
["Rotten Egg Launcher"] ["Rotten Egg Launcher"]
], ],
@@ -98,6 +102,10 @@ rules_dict: dict[str,list[list[str]]] = {
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Octopus Climbing Device", "Rocket Spring"] ["Rotten Egg Launcher", "Octopus Climbing Device", "Rocket Spring"]
], ],
"Squashing All Gifts in Who Forest": [
["Grinch Copter", "Cable Car Access Card", "Slime Shooter", "Rotten Egg Launcher"],
["Octopus Climbing Device", "Rocket Spring", "Cable Car Access Card", "Slime Shooter", "Rotten Egg Launcher"]
],
"Stealing Food From Birds": [ "Stealing Food From Birds": [
["Rocket Spring", "Rotten Egg Launcher"] ["Rocket Spring", "Rotten Egg Launcher"]
], ],
@@ -119,6 +127,10 @@ rules_dict: dict[str,list[list[str]]] = {
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"]
], ],
"Squashing All Gifts in Who Dump": [
["Grinch Copter", "Rocket Spring", "Slime Shooter", "Rotten Egg Launcher"],
["Octopus Climbing Device", "Rocket Spring", "Slime Shooter", "Rotten Egg Launcher"]
],
"Putting Thistles In Shorts": [ "Putting Thistles In Shorts": [
["Rotten Egg Launcher", "Octopus Climbing Device"], ["Rotten Egg Launcher", "Octopus Climbing Device"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
@@ -136,6 +148,10 @@ rules_dict: dict[str,list[list[str]]] = {
"Hooking The Mayor's Bed To The Motorboat": [ "Hooking The Mayor's Bed To The Motorboat": [
["Rope", "Hook", "Rotten Egg Launcher", "Scout Clothes"] ["Rope", "Hook", "Rotten Egg Launcher", "Scout Clothes"]
], ],
"Squashing All Gifts in Who Lake": [
["Grinch Copter", "Marine Mobile", "Scout Clothes", "Rotten Egg Launcher", "Hook", "Rope"],
["Octopus Climbing Device", "Rocket Spring", "Marine Mobile", "Scout Clothes", "Rotten Egg Launcher", "Hook", "Rope"]
],
"Binoculars Blueprint - Post Office Roof": [ "Binoculars Blueprint - Post Office Roof": [
[] []
], ],
@@ -148,232 +164,232 @@ rules_dict: dict[str,list[list[str]]] = {
"Binoculars Blueprint - City Hall Library - Right Side": [ "Binoculars Blueprint - City Hall Library - Right Side": [
[] []
], ],
"Rotten Egg Launcher Blueprint - Outside City Hall": [ "REL Blueprint - Outside City Hall": [
[] []
], ],
"Rotten Egg Launcher Blueprint - Outside Clock Tower": [ "REL Blueprint - Outside Clock Tower": [
[] []
], ],
"Rotten Egg Launcher Blueprint - Post Office - Front of Silver Door": [ "REL Blueprint - Post Office - Front of Silver Door": [
["Who Cloak"] ["Who Cloak"]
], ],
"Rotten Egg Launcher Blueprint - Post Office - After Mission Completion": [ "REL Blueprint - Post Office - After Mission Completion": [
["Who Cloak"] ["Who Cloak"]
], ],
"Rocket Spring Blueprint - Behind Vacuum": [ "RS Blueprint - Behind Vacuum": [
[] []
], ],
"Rocket Spring Blueprint - Front of 2nd House near entrance": [ "RS Blueprint - Front of 2nd House near entrance": [
[] []
], ],
"Rocket Spring Blueprint - Near Tree House on Ground": [ "RS Blueprint - Near Tree House on Ground": [
[] []
], ],
"Rocket Spring Blueprint - Near Cable Car House": [ "RS Blueprint - Near Cable Car House": [
[] []
], ],
"Rocket Spring Blueprint - Near Who Snowball in Cave": [ "RS Blueprint - Near Who Snowball in Cave": [
[] []
], ],
"Rocket Spring Blueprint - Branch Platform Closest to Glue Cannon": [ "RS Blueprint - Branch Platform Closest to Glue Cannon": [
[] []
], ],
"Rocket Spring Blueprint - Branch Platform Near Beast": [ "RS Blueprint - Branch Platform Near Beast": [
[] []
], ],
"Rocket Spring Blueprint - Branch Platform Ledge Grab House": [ "RS Blueprint - Branch Platform Ledge Grab House": [
[] []
], ],
"Rocket Spring Blueprint - On Tree House": [ "RS Blueprint - On Tree House": [
["Rotten Egg Launcher"], ["Rotten Egg Launcher"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Slime Shooter Blueprint - Branch Platform Elevated House": [ "SS Blueprint - Branch Platform Elevated House": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - Branch Platform House next to Beast": [ "SS Blueprint - Branch Platform House next to Beast": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - House near Civic Center Cave": [ "SS Blueprint - House near Civic Center Cave": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - House next to Tree House": [ "SS Blueprint - House next to Tree House": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - House across from Tree House": [ "SS Blueprint - House across from Tree House": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - 2nd House near entrance right side": [ "SS Blueprint - 2nd House near entrance right side": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - 2nd House near entrance left side": [ "SS Blueprint - 2nd House near entrance left side": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - 2nd House near entrance inbetween blueprints": [ "SS Blueprint - 2nd House near entrance inbetween blueprints": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Slime Shooter Blueprint - House near entrance": [ "SS Blueprint - House near entrance": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Middle Pipe": [ "OCD Blueprint - Middle Pipe": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Slime Shooter", "Rocket Spring"], ["Slime Shooter", "Rocket Spring"],
["Slime Shooter", "Grinch Copter"] ["Slime Shooter", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Right Pipe": [ "OCD Blueprint - Right Pipe": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Mayor's House Rat Vent": [ "OCD Blueprint - Mayor's House Rat Vent": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"] ["Rotten Egg Launcher", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Left Pipe": [ "OCD Blueprint - Left Pipe": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Slime Shooter", "Rocket Spring"], ["Slime Shooter", "Rocket Spring"],
["Slime Shooter", "Grinch Copter"] ["Slime Shooter", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Near Power Plant Wall on right side": [ "OCD Blueprint - Near Power Plant Wall on right side": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Slime Shooter", "Rocket Spring"], ["Slime Shooter", "Rocket Spring"],
["Slime Shooter", "Grinch Copter"] ["Slime Shooter", "Grinch Copter"]
], ],
"Octopus Climbing Device Blueprint - Near Who-Bris' Shack": [ "OCD Blueprint - Near Who-Bris' Shack": [
["Rotten Egg Launcher", "Rocket Spring"] ["Rotten Egg Launcher", "Rocket Spring"]
], ],
"Octopus Climbing Device Blueprint - Guardian's House - Left Side": [ "OCD Blueprint - Guardian's House - Left Side": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"]
], ],
"Octopus Climbing Device Blueprint - Guardian's House - Right Side": [ "OCD Blueprint - Guardian's House - Right Side": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"]
], ],
"Octopus Climbing Device Blueprint - Inside Guardian's House": [ "OCD Blueprint - Inside Guardian's House": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Slime Shooter", "Rocket Spring"]
], ],
"Marine Mobile Blueprint - South Shore - Bridge to Scout's Hut": [ "MM Blueprint - South Shore - Bridge to Scout's Hut": [
[] []
], ],
"Marine Mobile Blueprint - South Shore - Tent near Porcupine": [ "MM Blueprint - South Shore - Tent near Porcupine": [
[] []
], ],
"Marine Mobile Blueprint - South Shore - Near Outhouse": [ "MM Blueprint - South Shore - Near Outhouse": [
[] []
], ],
"Marine Mobile Blueprint - South Shore - Near Hill Bridge": [ "MM Blueprint - South Shore - Near Hill Bridge": [
[] []
], ],
"Marine Mobile Blueprint - South Shore - Scout's Hut Roof": [ "MM Blueprint - South Shore - Scout's Hut Roof": [
["Rocket Spring"], ["Rocket Spring"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Marine Mobile Blueprint - South Shore - Grass Platform": [ "MM Blueprint - South Shore - Grass Platform": [
["Rocket Spring"], ["Rocket Spring"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Marine Mobile Blueprint - South Shore - Zipline by Beast": [ "MM Blueprint - South Shore - Zipline by Beast": [
["Rocket Spring", "Octopus Climbing Device"], ["Rocket Spring", "Octopus Climbing Device"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Marine Mobile Blueprint - South Shore - Behind Summer Beast": [ "MM Blueprint - South Shore - Behind Summer Beast": [
["Rotten Egg Launcher", "Octopus Climbing Device"], ["Rotten Egg Launcher", "Octopus Climbing Device"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Marine Mobile Blueprint - South Shore - Below Bridge": [ "MM Blueprint - South Shore - Below Bridge": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Below Bridge": [ "MM Blueprint - North Shore - Below Bridge": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Behind Skunk Hut": [ "MM Blueprint - North Shore - Behind Skunk Hut": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Inside Skunk Hut": [ "MM Blueprint - North Shore - Inside Skunk Hut": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Fenced in Area": [ "MM Blueprint - North Shore - Fenced in Area": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Boulder Box near Bridge": [ "MM Blueprint - North Shore - Boulder Box near Bridge": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Boulder Box behind Skunk Hut": [ "MM Blueprint - North Shore - Boulder Box behind Skunk Hut": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Inside Drill House": [ "MM Blueprint - North Shore - Inside Drill House": [
[] []
], ],
"Marine Mobile Blueprint - North Shore - Crow Platform near Drill House": [ "MM Blueprint - North Shore - Crow Platform near Drill House": [
[] []
], ],
"Grinch Copter Blueprint - Whoville City Hall - Safe Room": [ "GC Blueprint - Whoville City Hall - Safe Room": [
[] []
], ],
"Grinch Copter Blueprint - Whoville City Hall - Statue Room": [ "GC Blueprint - Whoville City Hall - Statue Room": [
[] []
], ],
"Grinch Copter Blueprint - Whoville Clock Tower - Before Bells": [ "GC Blueprint - Whoville Clock Tower - Before Bells": [
["Rocket Spring"] ["Rocket Spring"]
], ],
"Grinch Copter Blueprint - Whoville Clock Tower - After Bells": [ "GC Blueprint - Whoville Clock Tower - After Bells": [
["Rocket Spring"] ["Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Forest Ski Resort - Inside Dog's Fence": [ "GC Blueprint - Who Forest Ski Resort - Inside Dog's Fence": [
[] []
], ],
"Grinch Copter Blueprint - Who Forest Ski Resort - Max Cave": [ "GC Blueprint - Who Forest Ski Resort - Max Cave": [
[] []
], ],
"Grinch Copter Blueprint - Who Forest Civic Center - Climb across Bat Cave wall": [ "GC Blueprint - Who Forest Civic Center - Climb across Bat Cave wall": [
["Grinch Copter"], ["Grinch Copter"],
["Octopus Climbing Device", "Rocket Spring"] ["Octopus Climbing Device", "Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Forest Civic Center - Shoot Icicle in Bat Entrance": [ "GC Blueprint - Who Forest Civic Center - Shoot Icicle in Bat Entrance": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Octopus Climbing Device", "Rocket Spring"], ["Rotten Egg Launcher", "Octopus Climbing Device", "Rocket Spring"],
["Slime Shooter", "Grinch Copter"], ["Slime Shooter", "Grinch Copter"],
["Slime Shooter", "Octopus Climbing Device", "Rocket Spring"] ["Slime Shooter", "Octopus Climbing Device", "Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Dump Power Plant - Max Cave": [ "GC Blueprint - Who Dump Power Plant - Max Cave": [
[] []
], ],
"Grinch Copter Blueprint - Who Dump Power Plant - After First Gate": [ "GC Blueprint - Who Dump Power Plant - After First Gate": [
["Rotten Egg Launcher", "Rocket Spring"], ["Rotten Egg Launcher", "Rocket Spring"],
["Grinch Copter"] ["Grinch Copter"]
], ],
"Grinch Copter Blueprint - Who Dump Generator Building - Before Mission": [ "GC Blueprint - Who Dump Generator Building - Before Mission": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Dump Generator Building - After Mission": [ "GC Blueprint - Who Dump Generator Building - After Mission": [
["Rotten Egg Launcher", "Grinch Copter"], ["Rotten Egg Launcher", "Grinch Copter"],
["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"] ["Rotten Egg Launcher", "Octopus Climbing Device", "Slime Shooter", "Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Lake South Shore - Submarine World - Above Surface": [ "GC Blueprint - Who Lake South Shore - Submarine World - Above Surface": [
["Marine Mobile"] ["Marine Mobile"]
], ],
"Grinch Copter Blueprint - Who Lake South Shore - Submarine World - Underwater": [ "GC Blueprint - Who Lake South Shore - Submarine World - Underwater": [
["Marine Mobile"] ["Marine Mobile"]
], ],
"Grinch Copter Blueprint - Who Lake North Shore - Mayor's Villa - Tree Branch": [ "GC Blueprint - Who Lake North Shore - Mayor's Villa - Tree Branch": [
["Grinch Copter"], ["Grinch Copter"],
["Rotten Egg Launcher", "Rocket Spring"] ["Rotten Egg Launcher", "Rocket Spring"]
], ],
"Grinch Copter Blueprint - Who Lake North Shore - Mayor's Villa - Cave": [ "GC Blueprint - Who Lake North Shore - Mayor's Villa - Cave": [
["Grinch Copter"], ["Grinch Copter"],
["Rotten Egg Launcher", "Rocket Spring"] ["Rotten Egg Launcher", "Rocket Spring"]
], ],
@@ -462,9 +478,12 @@ access_rules_dict: dict[str,list[list[str]]] = {
} }
def interpret_rule(rule_set: list[list[str]], player: int): def interpret_rule(rule_set: list[list[str]], player: int):
#If a region/location does not have any items required, make the section(s) return no logic.
if len(rule_set) < 1: if len(rule_set) < 1:
return True return True
#Otherwise, if a region/location DOES have items required, make the section(s) return list of logic.
access_list: list[Callable[[CollectionState], bool]] = [] access_list: list[Callable[[CollectionState], bool]] = []
for item_set in rule_set: for item_set in rule_set:
access_list.append(lambda state: state.has_all(item_set, player)) access_list.append(lambda state: state.has_all(item_set, player))