From dced197dc4ac48432a364d80ed8f6b6efecefaa4 Mon Sep 17 00:00:00 2001 From: MarioSpore Date: Sat, 16 Aug 2025 02:26:25 -0400 Subject: [PATCH] Add max count & allow sleigh room to open --- worlds/grinch/Items.py | 30 ++++++++++++++++++++---------- worlds/grinch/RamHandler.py | 3 ++- worlds/grinch/__init__.py | 6 +++++- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/worlds/grinch/Items.py b/worlds/grinch/Items.py index 0c099fca..53866741 100644 --- a/worlds/grinch/Items.py +++ b/worlds/grinch/Items.py @@ -117,15 +117,20 @@ MISSION_ITEMS_TABLE: dict[str, GrinchItemData] = { #Sleigh Parts SLEIGH_PARTS_TABLE: dict[str, GrinchItemData] = { "Exhaust Pipes": GrinchItemData("Sleigh Parts", 300, IC.progression_skip_balancing, - [GrinchRamData(0x0101FB, binary_bit_pos=2)]), + [GrinchRamData(0x0101FB, binary_bit_pos=2), GrinchRamData(0x0100AA, binary_bit_pos=5), + GrinchRamData(0x010200, value=99)]), "GPS": GrinchItemData("Sleigh Parts", 301, IC.useful, - [GrinchRamData(0x0101FB, binary_bit_pos=5)]), + [GrinchRamData(0x0101FB, binary_bit_pos=5), GrinchRamData(0x0100AA, binary_bit_pos=5), + GrinchRamData(0x010200, value=99)]), "Tires": GrinchItemData("Sleigh Parts", 302, IC.progression_skip_balancing, - [GrinchRamData(0x0101FB, binary_bit_pos=4)]), + [GrinchRamData(0x0101FB, binary_bit_pos=4), GrinchRamData(0x0100AA, binary_bit_pos=5), + GrinchRamData(0x010200, value=99)]), "Skis": GrinchItemData("Sleigh Parts", 303, IC.progression_skip_balancing, - [GrinchRamData(0x0101FB, binary_bit_pos=3)]), + [GrinchRamData(0x0101FB, binary_bit_pos=3), GrinchRamData(0x0100AA, binary_bit_pos=5), + GrinchRamData(0x010200, value=99)]), "Twin-End Tuba": GrinchItemData("Sleigh Parts", 304, IC.progression_skip_balancing, - [GrinchRamData(0x0101FB, binary_bit_pos=6)]) + [GrinchRamData(0x0101FB, binary_bit_pos=6), GrinchRamData(0x0100AA, binary_bit_pos=5), + GrinchRamData(0x010200, value=99)]) } #Access Keys @@ -155,14 +160,19 @@ KEYS_TABLE: dict[str, GrinchItemData] = { #Misc Items MISC_ITEMS_TABLE: dict[str, GrinchItemData] = { # This item may not function properly if you receive it during a loading screen or in Mount Crumpit - "Fully Healed Grinch": GrinchItemData("Health Items", 500, IC.filler, [GrinchRamData(0x0E8FDC, value=120)]), - "5 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 502, IC.filler, [GrinchRamData(0x010058, value=5, update_existing_value=True)]), - "10 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 503, IC.filler, [GrinchRamData(0x010058, value=10, update_existing_value=True)]), - "20 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 504, IC.filler, [GrinchRamData(0x010058, value=20, update_existing_value=True)]) + "Fully Healed Grinch": GrinchItemData("Health Items", 500, IC.filler, + [GrinchRamData(0x0E8FDC, value=120)]), + "5 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 502, IC.filler, + [GrinchRamData(0x010058, value=5, update_existing_value=True, max_count=200)]), + "10 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 503, IC.filler, + [GrinchRamData(0x010058, value=10, update_existing_value=True, max_count=200)]), + "20 Rotten Eggs": GrinchItemData("Rotten Egg Bundles", 504, IC.filler, + [GrinchRamData(0x010058, value=20, update_existing_value=True, max_count=200)]) } USEFUL_IC_TABLE: dict[str, GrinchItemData] = { - "Heart of Stone": GrinchItemData("Health Items", 501, IC.useful, [GrinchRamData(0x0100ED, value=1, update_existing_value=True)]) + "Heart of Stone": GrinchItemData("Health Items", 501, IC.useful, + [GrinchRamData(0x0100ED, value=1, update_existing_value=True, max_count=4)]) } #Traps diff --git a/worlds/grinch/RamHandler.py b/worlds/grinch/RamHandler.py index 214ec54d..3e0275ea 100644 --- a/worlds/grinch/RamHandler.py +++ b/worlds/grinch/RamHandler.py @@ -8,4 +8,5 @@ class GrinchRamData(NamedTuple): # Hex uses 0x00, unsigned are base whole numbers binary_bit_pos: Optional[int] = None bit_size: int = 1 - update_existing_value: bool = False \ No newline at end of file + update_existing_value: bool = False + max_count: int = 0 \ No newline at end of file diff --git a/worlds/grinch/__init__.py b/worlds/grinch/__init__.py index 7cabca55..f22567be 100644 --- a/worlds/grinch/__init__.py +++ b/worlds/grinch/__init__.py @@ -73,4 +73,8 @@ class GrinchWorld(World): return { "give_unlimited_eggs": self.options.unlimited_eggs.value, - } \ No newline at end of file + } + + def generate_output(self, output_directory: str) -> None: + # print("") + pass \ No newline at end of file