 ccea6bcf51
			
		
	
	ccea6bcf51
	
	
	
		
			
			* synonyms to new file, many added * handle singular rupee * remove redundant map and compass entries * automatic pluralization * add guardian acorn and piece of power * move phrases to ItemIconGuessing.py * organize, comment * fix tab spacing * fix * add tunic and noita synonyms * remove triangle instrument synonym * reorganize, add some matches * add tunic lucky up Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/ladx/ItemIconGuessing.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * handle camelCase and single rupee * add indicate_progression option Adds alternative system for foreign item icons that simply indicates whether or not the item is a progression item. * improve splitting drops some more characters, and also dont bother with rejoined stuff in name_cache because our splitting is better * the witness stuff * forbid more * remove boost and surge * Update worlds/ladx/ItemIconGuessing.py Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> * match by game name look at the name of the foreign game and only use game-specific entries for that game * show message for all key drops * updates from async test * vi suggestions * Adding FNAFW suggestions from @lolz1190 (#40) * Adding FNAFW suggestions from @lolz1190 * missing comma --------- Co-authored-by: threeandthreee <a.l.nordstrom@gmail.com> --------- Co-authored-by: Scipio Wright <scipiowright@gmail.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: palex00 <32203971+palex00@users.noreply.github.com>
		
			
				
	
	
		
			442 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			442 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from BaseClasses import Item, ItemClassification
 | |
| from . import Common
 | |
| import typing
 | |
| from enum import IntEnum
 | |
| from .LADXR.locations.constants import CHEST_ITEMS
 | |
| 
 | |
| class ItemData(typing.NamedTuple):
 | |
|     item_name: str
 | |
|     ladxr_id: str
 | |
|     classification: ItemClassification
 | |
| 
 | |
|     @property
 | |
|     def item_id(self):
 | |
|         return CHEST_ITEMS[self.ladxr_id]
 | |
| 
 | |
| 
 | |
| class DungeonItemType(IntEnum):
 | |
|     INSTRUMENT = 0
 | |
|     NIGHTMARE_KEY = 1
 | |
|     KEY = 2
 | |
|     STONE_BEAK = 3
 | |
|     MAP = 4
 | |
|     COMPASS = 5
 | |
| 
 | |
| class DungeonItemData(ItemData):
 | |
|     @property
 | |
|     def dungeon_index(self):
 | |
|         return int(self.ladxr_id[-1])
 | |
| 
 | |
|     @property
 | |
|     def dungeon_item_type(self):
 | |
|         s = self.ladxr_id[:-1]
 | |
|         return DungeonItemType.__dict__[s]
 | |
| 
 | |
| 
 | |
| class TradeItemData(ItemData):
 | |
|     vanilla_location = None
 | |
| 
 | |
|     def __new__(cls, item_name, ladxr_id, classification, vanilla_location):
 | |
|         self = super(ItemData, cls).__new__(cls, (item_name, ladxr_id, classification))
 | |
|         self.vanilla_location = vanilla_location
 | |
|         return self
 | |
| 
 | |
| 
 | |
| class LinksAwakeningItem(Item):
 | |
|     game: str = Common.LINKS_AWAKENING
 | |
| 
 | |
|     def __init__(self, item_data, world, player):
 | |
|         classification = item_data.classification
 | |
|         if callable(classification):
 | |
|             classification = classification(world, player)
 | |
| 
 | |
|         super().__init__(item_data.item_name, classification, Common.BASE_ID + item_data.item_id, player)
 | |
|         self.item_data = item_data
 | |
| 
 | |
| 
 | |
| # TODO: use _NAMES instead?
 | |
| class ItemName:
 | |
|     POWER_BRACELET = "Progressive Power Bracelet"
 | |
|     SHIELD = "Progressive Shield"
 | |
|     BOW = "Bow"
 | |
|     HOOKSHOT = "Hookshot"
 | |
|     MAGIC_ROD = "Magic Rod"
 | |
|     PEGASUS_BOOTS = "Pegasus Boots"
 | |
|     OCARINA = "Ocarina"
 | |
|     FEATHER = "Feather"
 | |
|     SHOVEL = "Shovel"
 | |
|     MAGIC_POWDER = "Magic Powder"
 | |
|     BOMB = "Bomb"
 | |
|     SWORD = "Progressive Sword"
 | |
|     FLIPPERS = "Flippers"
 | |
|     MEDICINE = "Medicine"
 | |
|     TAIL_KEY = "Tail Key"
 | |
|     ANGLER_KEY = "Angler Key"
 | |
|     FACE_KEY = "Face Key"
 | |
|     BIRD_KEY = "Bird Key"
 | |
|     SLIME_KEY = "Slime Key"
 | |
|     GOLD_LEAF = "Gold Leaf"
 | |
|     RUPEES_20 = "20 Rupees"
 | |
|     RUPEES_50 = "50 Rupees"
 | |
|     RUPEES_100 = "100 Rupees"
 | |
|     RUPEES_200 = "200 Rupees"
 | |
|     RUPEES_500 = "500 Rupees"
 | |
|     SEASHELL = "Seashell"
 | |
|     MESSAGE = "Nothing"
 | |
|     GEL = "Zol Attack"
 | |
|     BOOMERANG = "Boomerang"
 | |
|     HEART_PIECE = "Heart Piece"
 | |
|     BOWWOW = "BowWow"
 | |
|     ARROWS_10 = "10 Arrows"
 | |
|     SINGLE_ARROW = "Single Arrow"
 | |
|     ROOSTER = "Rooster"
 | |
|     MAX_POWDER_UPGRADE = "Max Powder Upgrade"
 | |
|     MAX_BOMBS_UPGRADE = "Max Bombs Upgrade"
 | |
|     MAX_ARROWS_UPGRADE = "Max Arrows Upgrade"
 | |
|     RED_TUNIC = "Red Tunic"
 | |
|     BLUE_TUNIC = "Blue Tunic"
 | |
|     HEART_CONTAINER = "Heart Container"
 | |
|     BAD_HEART_CONTAINER = "Bad Heart Container"
 | |
|     TOADSTOOL = "Toadstool"
 | |
|     GUARDIAN_ACORN = "Guardian Acorn"
 | |
|     KEY = "Key"
 | |
|     KEY1 = "Small Key (Tail Cave)"
 | |
|     KEY2 = "Small Key (Bottle Grotto)"
 | |
|     KEY3 = "Small Key (Key Cavern)"
 | |
|     KEY4 = "Small Key (Angler's Tunnel)"
 | |
|     KEY5 = "Small Key (Catfish's Maw)"
 | |
|     KEY6 = "Small Key (Face Shrine)"
 | |
|     KEY7 = "Small Key (Eagle's Tower)"
 | |
|     KEY8 = "Small Key (Turtle Rock)"
 | |
|     KEY9 = "Small Key (Color Dungeon)"
 | |
|     NIGHTMARE_KEY = "Nightmare Key"
 | |
|     NIGHTMARE_KEY1 = "Nightmare Key (Tail Cave)"
 | |
|     NIGHTMARE_KEY2 = "Nightmare Key (Bottle Grotto)"
 | |
|     NIGHTMARE_KEY3 = "Nightmare Key (Key Cavern)"
 | |
|     NIGHTMARE_KEY4 = "Nightmare Key (Angler's Tunnel)"
 | |
|     NIGHTMARE_KEY5 = "Nightmare Key (Catfish's Maw)"
 | |
|     NIGHTMARE_KEY6 = "Nightmare Key (Face Shrine)"
 | |
|     NIGHTMARE_KEY7 = "Nightmare Key (Eagle's Tower)"
 | |
|     NIGHTMARE_KEY8 = "Nightmare Key (Turtle Rock)"
 | |
|     NIGHTMARE_KEY9 = "Nightmare Key (Color Dungeon)"
 | |
|     MAP = "Map"
 | |
|     MAP1 = "Dungeon Map (Tail Cave)"
 | |
|     MAP2 = "Dungeon Map (Bottle Grotto)"
 | |
|     MAP3 = "Dungeon Map (Key Cavern)"
 | |
|     MAP4 = "Dungeon Map (Angler's Tunnel)"
 | |
|     MAP5 = "Dungeon Map (Catfish's Maw)"
 | |
|     MAP6 = "Dungeon Map (Face Shrine)"
 | |
|     MAP7 = "Dungeon Map (Eagle's Tower)"
 | |
|     MAP8 = "Dungeon Map (Turtle Rock)"
 | |
|     MAP9 = "Dungeon Map (Color Dungeon)"
 | |
|     COMPASS = "Compass"
 | |
|     COMPASS1 = "Compass (Tail Cave)"
 | |
|     COMPASS2 = "Compass (Bottle Grotto)"
 | |
|     COMPASS3 = "Compass (Key Cavern)"
 | |
|     COMPASS4 = "Compass (Angler's Tunnel)"
 | |
|     COMPASS5 = "Compass (Catfish's Maw)"
 | |
|     COMPASS6 = "Compass (Face Shrine)"
 | |
|     COMPASS7 = "Compass (Eagle's Tower)"
 | |
|     COMPASS8 = "Compass (Turtle Rock)"
 | |
|     COMPASS9 = "Compass (Color Dungeon)"
 | |
|     STONE_BEAK = "Stone Beak"
 | |
|     STONE_BEAK1 = "Stone Beak (Tail Cave)"
 | |
|     STONE_BEAK2 = "Stone Beak (Bottle Grotto)"
 | |
|     STONE_BEAK3 = "Stone Beak (Key Cavern)"
 | |
|     STONE_BEAK4 = "Stone Beak (Angler's Tunnel)"
 | |
|     STONE_BEAK5 = "Stone Beak (Catfish's Maw)"
 | |
|     STONE_BEAK6 = "Stone Beak (Face Shrine)"
 | |
|     STONE_BEAK7 = "Stone Beak (Eagle's Tower)"
 | |
|     STONE_BEAK8 = "Stone Beak (Turtle Rock)"
 | |
|     STONE_BEAK9 = "Stone Beak (Color Dungeon)"
 | |
|     SONG1 = "Ballad of the Wind Fish"
 | |
|     SONG2 = "Manbo's Mambo"
 | |
|     SONG3 = "Frog's Song of Soul"
 | |
|     INSTRUMENT1 = "Full Moon Cello"
 | |
|     INSTRUMENT2 = "Conch Horn"
 | |
|     INSTRUMENT3 = "Sea Lily's Bell"
 | |
|     INSTRUMENT4 = "Surf Harp"
 | |
|     INSTRUMENT5 = "Wind Marimba"
 | |
|     INSTRUMENT6 = "Coral Triangle"
 | |
|     INSTRUMENT7 = "Organ of Evening Calm"
 | |
|     INSTRUMENT8 = "Thunder Drum"
 | |
|     TRADING_ITEM_YOSHI_DOLL = "Yoshi Doll"
 | |
|     TRADING_ITEM_RIBBON = "Ribbon"
 | |
|     TRADING_ITEM_DOG_FOOD = "Dog Food"
 | |
|     TRADING_ITEM_BANANAS = "Bananas"
 | |
|     TRADING_ITEM_STICK = "Stick"
 | |
|     TRADING_ITEM_HONEYCOMB = "Honeycomb"
 | |
|     TRADING_ITEM_PINEAPPLE = "Pineapple"
 | |
|     TRADING_ITEM_HIBISCUS = "Hibiscus"
 | |
|     TRADING_ITEM_LETTER = "Letter"
 | |
|     TRADING_ITEM_BROOM = "Broom"
 | |
|     TRADING_ITEM_FISHING_HOOK = "Fishing Hook"
 | |
|     TRADING_ITEM_NECKLACE = "Necklace"
 | |
|     TRADING_ITEM_SCALE = "Scale"
 | |
|     TRADING_ITEM_MAGNIFYING_GLASS = "Magnifying Glass"
 | |
|     PIECE_OF_POWER = "Piece Of Power"
 | |
| 
 | |
| trade_item_prog = ItemClassification.progression
 | |
| 
 | |
| links_awakening_items = [
 | |
|     ItemData(ItemName.POWER_BRACELET, "POWER_BRACELET", ItemClassification.progression),
 | |
|     ItemData(ItemName.SHIELD, "SHIELD", ItemClassification.progression),
 | |
|     ItemData(ItemName.BOW, "BOW", ItemClassification.progression),
 | |
|     ItemData(ItemName.HOOKSHOT, "HOOKSHOT", ItemClassification.progression),
 | |
|     ItemData(ItemName.MAGIC_ROD, "MAGIC_ROD", ItemClassification.progression),
 | |
|     ItemData(ItemName.PEGASUS_BOOTS, "PEGASUS_BOOTS", ItemClassification.progression),
 | |
|     ItemData(ItemName.OCARINA, "OCARINA", ItemClassification.progression),
 | |
|     ItemData(ItemName.FEATHER, "FEATHER", ItemClassification.progression),
 | |
|     ItemData(ItemName.SHOVEL, "SHOVEL", ItemClassification.progression),
 | |
|     ItemData(ItemName.MAGIC_POWDER, "MAGIC_POWDER", ItemClassification.progression),
 | |
|     ItemData(ItemName.BOMB, "BOMB", ItemClassification.progression),
 | |
|     ItemData(ItemName.SWORD, "SWORD", ItemClassification.progression),
 | |
|     ItemData(ItemName.FLIPPERS, "FLIPPERS", ItemClassification.progression),
 | |
|     ItemData(ItemName.MEDICINE, "MEDICINE", ItemClassification.useful),
 | |
|     ItemData(ItemName.TAIL_KEY, "TAIL_KEY", ItemClassification.progression),
 | |
|     ItemData(ItemName.ANGLER_KEY, "ANGLER_KEY", ItemClassification.progression),
 | |
|     ItemData(ItemName.FACE_KEY, "FACE_KEY", ItemClassification.progression),
 | |
|     ItemData(ItemName.BIRD_KEY, "BIRD_KEY", ItemClassification.progression),
 | |
|     ItemData(ItemName.SLIME_KEY, "SLIME_KEY", ItemClassification.progression),
 | |
|     ItemData(ItemName.GOLD_LEAF, "GOLD_LEAF", ItemClassification.progression),
 | |
|     ItemData(ItemName.RUPEES_20, "RUPEES_20", ItemClassification.progression_skip_balancing),
 | |
|     ItemData(ItemName.RUPEES_50, "RUPEES_50", ItemClassification.progression_skip_balancing),
 | |
|     ItemData(ItemName.RUPEES_100, "RUPEES_100", ItemClassification.progression_skip_balancing),
 | |
|     ItemData(ItemName.RUPEES_200, "RUPEES_200", ItemClassification.progression),
 | |
|     ItemData(ItemName.RUPEES_500, "RUPEES_500", ItemClassification.progression),
 | |
|     ItemData(ItemName.SEASHELL, "SEASHELL", ItemClassification.progression_skip_balancing),
 | |
|     ItemData(ItemName.MESSAGE, "MESSAGE", ItemClassification.filler),
 | |
|     ItemData(ItemName.GEL, "GEL", ItemClassification.trap),
 | |
|     ItemData(ItemName.BOOMERANG, "BOOMERANG", ItemClassification.progression),
 | |
|     ItemData(ItemName.HEART_PIECE, "HEART_PIECE", ItemClassification.filler),
 | |
|     ItemData(ItemName.BOWWOW, "BOWWOW", ItemClassification.progression),
 | |
|     ItemData(ItemName.ARROWS_10, "ARROWS_10", ItemClassification.filler),
 | |
|     ItemData(ItemName.SINGLE_ARROW, "SINGLE_ARROW", ItemClassification.filler),
 | |
|     ItemData(ItemName.ROOSTER, "ROOSTER", ItemClassification.progression),
 | |
|     ItemData(ItemName.MAX_POWDER_UPGRADE, "MAX_POWDER_UPGRADE", ItemClassification.filler),
 | |
|     ItemData(ItemName.MAX_BOMBS_UPGRADE, "MAX_BOMBS_UPGRADE", ItemClassification.filler),
 | |
|     ItemData(ItemName.MAX_ARROWS_UPGRADE, "MAX_ARROWS_UPGRADE", ItemClassification.filler),
 | |
|     ItemData(ItemName.RED_TUNIC, "RED_TUNIC", ItemClassification.useful),
 | |
|     ItemData(ItemName.BLUE_TUNIC, "BLUE_TUNIC", ItemClassification.useful),
 | |
|     ItemData(ItemName.HEART_CONTAINER, "HEART_CONTAINER", ItemClassification.useful),
 | |
|     #ItemData(ItemName.BAD_HEART_CONTAINER, "BAD_HEART_CONTAINER", ItemClassification.trap),
 | |
|     ItemData(ItemName.TOADSTOOL, "TOADSTOOL", ItemClassification.progression),
 | |
|     ItemData(ItemName.GUARDIAN_ACORN, "GUARDIAN_ACORN", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.KEY, "KEY", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY1, "KEY1", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY2, "KEY2", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY3, "KEY3", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY4, "KEY4", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY5, "KEY5", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY6, "KEY6", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY7, "KEY7", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY8, "KEY8", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.KEY9, "KEY9", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY, "NIGHTMARE_KEY", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY1, "NIGHTMARE_KEY1", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY2, "NIGHTMARE_KEY2", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY3, "NIGHTMARE_KEY3", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY4, "NIGHTMARE_KEY4", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY5, "NIGHTMARE_KEY5", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY6, "NIGHTMARE_KEY6", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY7, "NIGHTMARE_KEY7", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY8, "NIGHTMARE_KEY8", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.NIGHTMARE_KEY9, "NIGHTMARE_KEY9", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.MAP, "MAP", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP1, "MAP1", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP2, "MAP2", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP3, "MAP3", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP4, "MAP4", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP5, "MAP5", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP6, "MAP6", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP7, "MAP7", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP8, "MAP8", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.MAP9, "MAP9", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS, "COMPASS", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS1, "COMPASS1", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS2, "COMPASS2", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS3, "COMPASS3", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS4, "COMPASS4", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS5, "COMPASS5", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS6, "COMPASS6", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS7, "COMPASS7", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS8, "COMPASS8", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.COMPASS9, "COMPASS9", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK, "STONE_BEAK", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK1, "STONE_BEAK1", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK2, "STONE_BEAK2", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK3, "STONE_BEAK3", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK4, "STONE_BEAK4", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK5, "STONE_BEAK5", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK6, "STONE_BEAK6", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK7, "STONE_BEAK7", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK8, "STONE_BEAK8", ItemClassification.filler),
 | |
|     DungeonItemData(ItemName.STONE_BEAK9, "STONE_BEAK9", ItemClassification.filler),
 | |
|     ItemData(ItemName.SONG1, "SONG1", ItemClassification.progression),
 | |
|     ItemData(ItemName.SONG2, "SONG2", ItemClassification.useful),
 | |
|     ItemData(ItemName.SONG3, "SONG3", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT1, "INSTRUMENT1", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT2, "INSTRUMENT2", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT3, "INSTRUMENT3", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT4, "INSTRUMENT4", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT5, "INSTRUMENT5", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT6, "INSTRUMENT6", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT7, "INSTRUMENT7", ItemClassification.progression),
 | |
|     DungeonItemData(ItemName.INSTRUMENT8, "INSTRUMENT8", ItemClassification.progression),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_YOSHI_DOLL, "TRADING_ITEM_YOSHI_DOLL", trade_item_prog, "Trendy Game (Mabe Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_RIBBON, "TRADING_ITEM_RIBBON", trade_item_prog, "Papahl's Wife (Mabe Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_DOG_FOOD, "TRADING_ITEM_DOG_FOOD", trade_item_prog, "YipYip (Mabe Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_BANANAS, "TRADING_ITEM_BANANAS", trade_item_prog, "Banana Sale (Toronbo Shores)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_STICK, "TRADING_ITEM_STICK", trade_item_prog, "Kiki (Ukuku Prairie)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_HONEYCOMB, "TRADING_ITEM_HONEYCOMB", trade_item_prog, "Honeycomb (Ukuku Prairie)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_PINEAPPLE, "TRADING_ITEM_PINEAPPLE", trade_item_prog, "Bear Cook (Animal Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_HIBISCUS, "TRADING_ITEM_HIBISCUS", trade_item_prog, "Papahl (Tal Tal Heights)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_LETTER, "TRADING_ITEM_LETTER", trade_item_prog, "Goat (Animal Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_BROOM, "TRADING_ITEM_BROOM", trade_item_prog, "MrWrite (Goponga Swamp)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_FISHING_HOOK, "TRADING_ITEM_FISHING_HOOK", trade_item_prog, "Grandma (Animal Village)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_NECKLACE, "TRADING_ITEM_NECKLACE", trade_item_prog, "Fisher (Martha's Bay)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_SCALE, "TRADING_ITEM_SCALE", trade_item_prog, "Mermaid (Martha's Bay)"),
 | |
|     TradeItemData(ItemName.TRADING_ITEM_MAGNIFYING_GLASS, "TRADING_ITEM_MAGNIFYING_GLASS", trade_item_prog, "Mermaid Statue (Martha's Bay)"),
 | |
|     ItemData(ItemName.PIECE_OF_POWER, "PIECE_OF_POWER", ItemClassification.filler),
 | |
| ]
 | |
| 
 | |
| ladxr_item_to_la_item_name = {
 | |
|     item.ladxr_id: item.item_name for item in links_awakening_items
 | |
| }
 | |
| 
 | |
| links_awakening_items_by_name = {
 | |
|     item.item_name : item for item in links_awakening_items
 | |
| }
 | |
| 
 | |
| links_awakening_item_name_groups: typing.Dict[str, typing.Set[str]] = {
 | |
|     "Instruments": {
 | |
|         "Full Moon Cello",
 | |
|         "Conch Horn",
 | |
|         "Sea Lily's Bell",
 | |
|         "Surf Harp",
 | |
|         "Wind Marimba",
 | |
|         "Coral Triangle",
 | |
|         "Organ of Evening Calm",
 | |
|         "Thunder Drum",
 | |
|     },
 | |
|     "Entrance Keys": {
 | |
|         "Tail Key",
 | |
|         "Angler Key",
 | |
|         "Face Key",
 | |
|         "Bird Key",
 | |
|         "Slime Key",
 | |
|     },
 | |
|     "Nightmare Keys": {
 | |
|         "Nightmare Key (Angler's Tunnel)",
 | |
|         "Nightmare Key (Bottle Grotto)",
 | |
|         "Nightmare Key (Catfish's Maw)",
 | |
|         "Nightmare Key (Color Dungeon)",
 | |
|         "Nightmare Key (Eagle's Tower)",
 | |
|         "Nightmare Key (Face Shrine)",
 | |
|         "Nightmare Key (Key Cavern)",
 | |
|         "Nightmare Key (Tail Cave)",
 | |
|         "Nightmare Key (Turtle Rock)",
 | |
|     },
 | |
|     "Small Keys": {
 | |
|         "Small Key (Angler's Tunnel)",
 | |
|         "Small Key (Bottle Grotto)",
 | |
|         "Small Key (Catfish's Maw)",
 | |
|         "Small Key (Color Dungeon)",
 | |
|         "Small Key (Eagle's Tower)",
 | |
|         "Small Key (Face Shrine)",
 | |
|         "Small Key (Key Cavern)",
 | |
|         "Small Key (Tail Cave)",
 | |
|         "Small Key (Turtle Rock)",
 | |
|     },
 | |
|     "Compasses": {
 | |
|         "Compass (Angler's Tunnel)",
 | |
|         "Compass (Bottle Grotto)",
 | |
|         "Compass (Catfish's Maw)",
 | |
|         "Compass (Color Dungeon)",
 | |
|         "Compass (Eagle's Tower)",
 | |
|         "Compass (Face Shrine)",
 | |
|         "Compass (Key Cavern)",
 | |
|         "Compass (Tail Cave)",
 | |
|         "Compass (Turtle Rock)",
 | |
|     },
 | |
|     "Maps": {
 | |
|         "Dungeon Map (Angler's Tunnel)",
 | |
|         "Dungeon Map (Bottle Grotto)",
 | |
|         "Dungeon Map (Catfish's Maw)",
 | |
|         "Dungeon Map (Color Dungeon)",
 | |
|         "Dungeon Map (Eagle's Tower)",
 | |
|         "Dungeon Map (Face Shrine)",
 | |
|         "Dungeon Map (Key Cavern)",
 | |
|         "Dungeon Map (Tail Cave)",
 | |
|         "Dungeon Map (Turtle Rock)",
 | |
|     },
 | |
|     "Stone Beaks": {
 | |
|         "Stone Beak (Angler's Tunnel)",
 | |
|         "Stone Beak (Bottle Grotto)",
 | |
|         "Stone Beak (Catfish's Maw)",
 | |
|         "Stone Beak (Color Dungeon)",
 | |
|         "Stone Beak (Eagle's Tower)",
 | |
|         "Stone Beak (Face Shrine)",
 | |
|         "Stone Beak (Key Cavern)",
 | |
|         "Stone Beak (Tail Cave)",
 | |
|         "Stone Beak (Turtle Rock)",
 | |
|     },
 | |
|     "Trading Items": {
 | |
|         "Yoshi Doll",
 | |
|         "Ribbon",
 | |
|         "Dog Food",
 | |
|         "Bananas",
 | |
|         "Stick",
 | |
|         "Honeycomb",
 | |
|         "Pineapple",
 | |
|         "Hibiscus",
 | |
|         "Letter",
 | |
|         "Broom",
 | |
|         "Fishing Hook",
 | |
|         "Necklace",
 | |
|         "Scale",
 | |
|         "Magnifying Glass",
 | |
|     },
 | |
|     "Rupees": {
 | |
|         "20 Rupees",
 | |
|         "50 Rupees",
 | |
|         "100 Rupees",
 | |
|         "200 Rupees",
 | |
|         "500 Rupees",
 | |
|     },
 | |
|     "Upgrades": {
 | |
|         "Max Powder Upgrade",
 | |
|         "Max Bombs Upgrade",
 | |
|         "Max Arrows Upgrade",
 | |
|     },
 | |
|     "Songs": {
 | |
|         "Ballad of the Wind Fish",
 | |
|         "Manbo's Mambo",
 | |
|         "Frog's Song of Soul",
 | |
|     },
 | |
|     "Tunics": {
 | |
|         "Red Tunic",
 | |
|         "Blue Tunic",
 | |
|     },
 | |
|     "Bush Breakers": {
 | |
|         "Progressive Power Bracelet",
 | |
|         "Magic Rod",
 | |
|         "Magic Powder",
 | |
|         "Bomb",
 | |
|         "Progressive Sword",
 | |
|         "Boomerang",
 | |
|     },
 | |
|     "Sword": {
 | |
|         "Progressive Sword",
 | |
|     },
 | |
|     "Shield": {
 | |
|         "Progressive Shield",
 | |
|     },
 | |
|     "Power Bracelet": {
 | |
|         "Progressive Power Bracelet",
 | |
|     },
 | |
|     "Bracelet": {
 | |
|         "Progressive Power Bracelet",
 | |
|     },
 | |
| }
 |