mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	
		
			
	
	
		
			153 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			153 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from BaseClasses import Item | ||
|  | from typing import NamedTuple, Dict | ||
|  | 
 | ||
|  | 
 | ||
|  | class ItemData(NamedTuple): | ||
|  |     code: int | ||
|  | 
 | ||
|  | 
 | ||
|  | class Overcooked2Item(Item): | ||
|  |     game: str = "Overcooked! 2" | ||
|  | 
 | ||
|  | 
 | ||
|  | oc2_base_id = 213700 | ||
|  | 
 | ||
|  | item_table: Dict[str, ItemData] = { | ||
|  |     "Wood"                          : ItemData(oc2_base_id + 1 ), | ||
|  |     "Coal Bucket"                   : ItemData(oc2_base_id + 2 ), | ||
|  |     "Spare Plate"                   : ItemData(oc2_base_id + 3 ), | ||
|  |     "Fire Extinguisher"             : ItemData(oc2_base_id + 4 ), | ||
|  |     "Bellows"                       : ItemData(oc2_base_id + 5 ), | ||
|  |     "Clean Dishes"                  : ItemData(oc2_base_id + 6 ), | ||
|  |     "Larger Tip Jar"                : ItemData(oc2_base_id + 7 ), | ||
|  |     "Progressive Dash"              : ItemData(oc2_base_id + 8 ), | ||
|  |     "Progressive Throw/Catch"       : ItemData(oc2_base_id + 9 ), | ||
|  |     "Coin Purse"                    : ItemData(oc2_base_id + 10), | ||
|  |     "Control Stick Batteries"       : ItemData(oc2_base_id + 11), | ||
|  |     "Wok Wheels"                    : ItemData(oc2_base_id + 12), | ||
|  |     "Dish Scrubber"                 : ItemData(oc2_base_id + 13), | ||
|  |     "Burn Leniency"                 : ItemData(oc2_base_id + 14), | ||
|  |     "Sharp Knife"                   : ItemData(oc2_base_id + 15), | ||
|  |     "Order Lookahead"               : ItemData(oc2_base_id + 16), | ||
|  |     "Lightweight Backpack"          : ItemData(oc2_base_id + 17), | ||
|  |     "Faster Respawn Time"           : ItemData(oc2_base_id + 18), | ||
|  |     "Faster Condiment/Drink Switch" : ItemData(oc2_base_id + 19), | ||
|  |     "Guest Patience"                : ItemData(oc2_base_id + 20), | ||
|  |     "Kevin-1"                       : ItemData(oc2_base_id + 21), | ||
|  |     "Kevin-2"                       : ItemData(oc2_base_id + 22), | ||
|  |     "Kevin-3"                       : ItemData(oc2_base_id + 23), | ||
|  |     "Kevin-4"                       : ItemData(oc2_base_id + 24), | ||
|  |     "Kevin-5"                       : ItemData(oc2_base_id + 25), | ||
|  |     "Kevin-6"                       : ItemData(oc2_base_id + 26), | ||
|  |     "Kevin-7"                       : ItemData(oc2_base_id + 27), | ||
|  |     "Kevin-8"                       : ItemData(oc2_base_id + 28), | ||
|  |     "Cooking Emote"                 : ItemData(oc2_base_id + 29), | ||
|  |     "Curse Emote"                   : ItemData(oc2_base_id + 30), | ||
|  |     "Serving Emote"                 : ItemData(oc2_base_id + 31), | ||
|  |     "Preparing Emote"               : ItemData(oc2_base_id + 32), | ||
|  |     "Washing Up Emote"              : ItemData(oc2_base_id + 33), | ||
|  |     "Ok Emote"                      : ItemData(oc2_base_id + 34), | ||
|  |     "Ramp Button"                   : ItemData(oc2_base_id + 35), | ||
|  |     "Bonus Star"                    : ItemData(oc2_base_id + 36), | ||
|  |     "Calmer Unbread"                : ItemData(oc2_base_id + 37), | ||
|  | } | ||
|  | 
 | ||
|  | item_frequencies = { | ||
|  |     "Progressive Throw/Catch": 2, | ||
|  |     "Larger Tip Jar": 2, | ||
|  |     "Order Lookahead": 2, | ||
|  |     "Progressive Dash": 2, | ||
|  |     "Bonus Star": 0,  # Filler Item | ||
|  |     # default: 1 | ||
|  | } | ||
|  | 
 | ||
|  | item_name_to_config_name = { | ||
|  |     "Wood"                         : "DisableWood"                   , | ||
|  |     "Coal Bucket"                  : "DisableCoal"                   , | ||
|  |     "Spare Plate"                  : "DisableOnePlate"               , | ||
|  |     "Fire Extinguisher"            : "DisableFireExtinguisher"       , | ||
|  |     "Bellows"                      : "DisableBellows"                , | ||
|  |     "Clean Dishes"                 : "PlatesStartDirty"              , | ||
|  |     "Control Stick Batteries"      : "DisableControlStick"           , | ||
|  |     "Wok Wheels"                   : "DisableWokDrag"                , | ||
|  |     "Dish Scrubber"                : "WashTimeMultiplier"            , | ||
|  |     "Burn Leniency"                : "BurnSpeedMultiplier"           , | ||
|  |     "Sharp Knife"                  : "ChoppingTimeScale"             , | ||
|  |     "Lightweight Backpack"         : "BackpackMovementScale"         , | ||
|  |     "Faster Respawn Time"          : "RespawnTime"                   , | ||
|  |     "Faster Condiment/Drink Switch": "CarnivalDispenserRefactoryTime", | ||
|  |     "Guest Patience"               : "CustomOrderLifetime"           , | ||
|  |     "Ramp Button"                  : "DisableRampButton"             , | ||
|  |     "Calmer Unbread"               : "AggressiveHorde"               , | ||
|  |     "Coin Purse"                   : "DisableEarnHordeMoney"         , | ||
|  | } | ||
|  | 
 | ||
|  | vanilla_values = { | ||
|  |     "DisableWood": False, | ||
|  |     "DisableCoal": False, | ||
|  |     "DisableOnePlate": False, | ||
|  |     "DisableFireExtinguisher": False, | ||
|  |     "DisableBellows": False, | ||
|  |     "PlatesStartDirty": False, | ||
|  |     "DisableControlStick": False, | ||
|  |     "DisableWokDrag": False, | ||
|  |     "DisableRampButton": False, | ||
|  |     "WashTimeMultiplier": 1.0, | ||
|  |     "BurnSpeedMultiplier": 1.0, | ||
|  |     "ChoppingTimeScale": 1.0, | ||
|  |     "BackpackMovementScale": 1.0, | ||
|  |     "RespawnTime": 5.0, | ||
|  |     "CarnivalDispenserRefactoryTime": 0.0, | ||
|  |     "CustomOrderLifetime": 100.0, | ||
|  |     "AggressiveHorde": False, | ||
|  |     "DisableEarnHordeMoney": False, | ||
|  | } | ||
|  | 
 | ||
|  | item_id_to_name: Dict[int, str] = { | ||
|  |     data.code: item_name for item_name, data in item_table.items() if data.code | ||
|  | } | ||
|  | 
 | ||
|  | item_name_to_id: Dict[str, int] = { | ||
|  |     item_name: data.code for item_name, data in item_table.items() if data.code | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | def is_progression(item_name: str) -> bool: | ||
|  |     return not item_name.endswith("Emote") | ||
|  | 
 | ||
|  | 
 | ||
|  | def item_to_unlock_event(item_name: str) -> Dict[str, str]: | ||
|  |     message = f"{item_name} Acquired!" | ||
|  |     action = "" | ||
|  |     payload = "" | ||
|  |     if item_name.startswith("Kevin"): | ||
|  |         kevin_num = int(item_name.split("-")[-1]) | ||
|  |         action = "UNLOCK_LEVEL" | ||
|  |         payload = str(kevin_num + 36) | ||
|  |     elif "Emote" in item_name: | ||
|  |         action = "UNLOCK_EMOTE" | ||
|  |         payload = str(item_table[item_name].code - item_table["Cooking Emote"].code) | ||
|  |     elif item_name == "Larger Tip Jar": | ||
|  |         action = "INC_TIP_COMBO" | ||
|  |     elif item_name == "Order Lookahead": | ||
|  |         action = "INC_ORDERS_ON_SCREEN" | ||
|  |     elif item_name == "Bonus Star": | ||
|  |         action = "INC_STAR_COUNT" | ||
|  |         payload = "1" | ||
|  |     elif item_name == "Progressive Dash": | ||
|  |         action = "INC_DASH" | ||
|  |     elif item_name == "Progressive Throw/Catch": | ||
|  |         action = "INC_THROW" | ||
|  |     else: | ||
|  |         config_name = item_name_to_config_name[item_name] | ||
|  |         vanilla_value = vanilla_values[config_name] | ||
|  | 
 | ||
|  |         action = "SET_VALUE" | ||
|  |         payload = f"{config_name}={vanilla_value}" | ||
|  | 
 | ||
|  |     return { | ||
|  |         "message": message, | ||
|  |         "action": action, | ||
|  |         "payload": payload, | ||
|  |     } |