Logic now requires Sleigh Room Key to goal along with other minor changes to reflect this

This commit is contained in:
MarioSpore
2025-08-19 22:29:00 -04:00
parent 08e9df66de
commit 3dc4802be7
4 changed files with 17 additions and 19 deletions

View File

@@ -188,10 +188,10 @@ class GrinchClient(BizHawkClient):
"status": NetUtils.ClientStatus.CLIENT_GOAL, "status": NetUtils.ClientStatus.CLIENT_GOAL,
}]) }])
async def constant_address_update(self, ctx: "BizHawkClientContext"): # async def constant_address_update(self, ctx: "BizHawkClientContext"):
list_recv_itemids: list[int] = [netItem.item for netItem in ctx.items_received] # list_recv_itemids: list[int] = [netItem.item for netItem in ctx.items_received]
if 42369 in list_recv_itemids and 42371 in list_recv_itemids and 42372 in list_recv_itemids and 42373 in list_recv_itemids: # if 42369 in list_recv_itemids and 42371 in list_recv_itemids and 42372 in list_recv_itemids and 42373 in list_recv_itemids:
await bizhawk.write(ctx.bizhawk_ctx, [(0x010200, (99).to_bytes(1, "little"), "MainRAM")]) # await bizhawk.write(ctx.bizhawk_ctx, [(0x010200, (99).to_bytes(1, "little"), "MainRAM")])
async def ingame_checker(self, ctx: "BizHawkClientContext"): async def ingame_checker(self, ctx: "BizHawkClientContext"):
demo_mode = int.from_bytes((await bizhawk.read(ctx.bizhawk_ctx, [( demo_mode = int.from_bytes((await bizhawk.read(ctx.bizhawk_ctx, [(

View File

@@ -117,20 +117,15 @@ MISSION_ITEMS_TABLE: dict[str, GrinchItemData] = {
#Sleigh Parts #Sleigh Parts
SLEIGH_PARTS_TABLE: dict[str, GrinchItemData] = { SLEIGH_PARTS_TABLE: dict[str, GrinchItemData] = {
"Exhaust Pipes": GrinchItemData("Sleigh Parts", 300, IC.progression_skip_balancing, "Exhaust Pipes": GrinchItemData("Sleigh Parts", 300, IC.progression_skip_balancing,
[GrinchRamData(0x0101FB, binary_bit_pos=2), GrinchRamData(0x0100AA, binary_bit_pos=5), [GrinchRamData(0x0101FB, binary_bit_pos=2)]),
GrinchRamData(0x010200, value=99)]),
"GPS": GrinchItemData("Sleigh Parts", 301, IC.useful, "GPS": GrinchItemData("Sleigh Parts", 301, IC.useful,
[GrinchRamData(0x0101FB, binary_bit_pos=5), GrinchRamData(0x0100AA, binary_bit_pos=5), [GrinchRamData(0x0101FB, binary_bit_pos=5)]),
GrinchRamData(0x010200, value=99)]),
"Tires": GrinchItemData("Sleigh Parts", 302, IC.progression_skip_balancing, "Tires": GrinchItemData("Sleigh Parts", 302, IC.progression_skip_balancing,
[GrinchRamData(0x0101FB, binary_bit_pos=4), GrinchRamData(0x0100AA, binary_bit_pos=5), [GrinchRamData(0x0101FB, binary_bit_pos=4)]),
GrinchRamData(0x010200, value=99)]),
"Skis": GrinchItemData("Sleigh Parts", 303, IC.progression_skip_balancing, "Skis": GrinchItemData("Sleigh Parts", 303, IC.progression_skip_balancing,
[GrinchRamData(0x0101FB, binary_bit_pos=3), GrinchRamData(0x0100AA, binary_bit_pos=5), [GrinchRamData(0x0101FB, binary_bit_pos=3)]),
GrinchRamData(0x010200, value=99)]),
"Twin-End Tuba": GrinchItemData("Sleigh Parts", 304, IC.progression_skip_balancing, "Twin-End Tuba": GrinchItemData("Sleigh Parts", 304, IC.progression_skip_balancing,
[GrinchRamData(0x0101FB, binary_bit_pos=6), GrinchRamData(0x0100AA, binary_bit_pos=5), [GrinchRamData(0x0101FB, binary_bit_pos=6)])
GrinchRamData(0x010200, value=99)])
} }
#Access Keys #Access Keys
@@ -153,8 +148,10 @@ KEYS_TABLE: dict[str, GrinchItemData] = {
# [GrinchRamData()]), # [GrinchRamData()]),
# "Progressive Supadow Door Unlock": GrinchItemData("Supadow Door Unlocks", 408, IC.progression, # "Progressive Supadow Door Unlock": GrinchItemData("Supadow Door Unlocks", 408, IC.progression,
# [GrinchRamData()]), # [GrinchRamData()]),
# "Bike Race Door Unlock": GrinchItemData("Supadow Door Unlocks", 409, IC.progression, # "Bike Race Access": GrinchItemData("Supadow Door Unlocks", 409, IC.progression,
# [GrinchRamData()]) # [GrinchRamData()])
"Sleigh Room Key": GrinchItemData("Sleigh Room", 410, IC.progression_skip_balancing,
[GrinchRamData(0x010200, value=99), GrinchRamData(0x0100AA, binary_bit_pos=5)])
} }
#Misc Items #Misc Items

View File

@@ -91,3 +91,4 @@ def connect_regions(world: "GrinchWorld"):
grinchconnect(world, "Who Lake", "Scout's Hut") grinchconnect(world, "Who Lake", "Scout's Hut")
grinchconnect(world, "Who Lake", "North Shore") grinchconnect(world, "Who Lake", "North Shore")
grinchconnect(world, "North Shore", "Mayor's Villa") grinchconnect(world, "North Shore", "Mayor's Villa")
grinchconnect(world, "Sleigh Room", "Bike Race")

View File

@@ -418,10 +418,10 @@ rules_dict: dict[str,list[list[str]]] = {
["Rotten Egg Launcher", "Rocket Spring"] ["Rotten Egg Launcher", "Rocket Spring"]
], ],
"Stealing All Gifts": [ "Stealing All Gifts": [
[] ["Exhaust Pipes", "Tires", "Skis", "Twin-End Tuba"]
], ],
"Neutralizing Santa": [ "Neutralizing Santa": [
[] ["Exhaust Pipes", "Tires", "Skis", "Twin-End Tuba"]
], ],
"Heart of Stone - Whoville": [ "Heart of Stone - Whoville": [
[] []
@@ -537,7 +537,7 @@ access_rules_dict: dict[str,list[list[str]]] = {
["Marine Mobile"] ["Marine Mobile"]
], ],
"Sleigh Room": [ "Sleigh Room": [
["Exhaust Pipes", "Tires", "Skis", "Twin-End Tuba"] ["Sleigh Room Key"]
], ],
"Spin N' Win Supadow": [ "Spin N' Win Supadow": [
["Spin N' Win Door Unlock"], ["Spin N' Win Door Unlock"],
@@ -552,7 +552,7 @@ access_rules_dict: dict[str,list[list[str]]] = {
# ["Progressive Supadow Door Unlock: 3"] # ["Progressive Supadow Door Unlock: 3"]
], ],
"Bike Race": [ "Bike Race": [
["Bike Race Door Unlock"], ["Bike Race Access"],
# ["Progressive Supadow Door Unlock: 4"] # ["Progressive Supadow Door Unlock: 4"]
] ]
} }