from typing import Dict, List, Set, NamedTuple from BaseClasses import ItemClassification class WOLItemData(NamedTuple): classification: ItemClassification categories: Set[str] = {} copies_in_pool: int = 1 is_dlc: bool = False default_starting_gear: bool = False extras_eligible: bool = False base_id = 752813602 item_table: Dict[str, WOLItemData] = { "Attorney's Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}, is_dlc=True), "Bean-Iron Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Blood-Soaked Pocket Square": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "Bowling Shirt Nametag": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}, is_dlc=True), "Buffalo Bandolier": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "CGAS Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}, is_dlc=True), "Chest Full Of Medals": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "El Vibrato Brooch": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "Enchanted Bandolier": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Fine Bandolier": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Gilded Lily": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Golden Scarab Pin": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Gothic Cameo": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Greased Bandolier": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Halloway's Pin": WOLItemData(ItemClassification.progression, {"Gear", "Lapel"}), "Lucky Marigold": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Medal Of Adequacy": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Necromancers, I Hate 'Em Button": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Perfumed Pocket Square": WOLItemData(ItemClassification.progression, {"Gear", "Lapel", "Prog Loot", "Stench Resistance"}), "Purple Brain Pin": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Reinforced Pocket Square": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "Replica Sherf Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}, default_starting_gear=True), "Revolting Brooch": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Rifleman Insignia Pin": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Rusty Deputy Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Shimmering Pocket Square": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "Shiny Abalone Brooch": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Smiling Face Button": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Smoking Crysanthemum": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Stylish Pocket Square": WOLItemData(ItemClassification.useful, {"Gear", "Lapel", "Prog Loot"}), "Tentacled Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Texas Ranger Badge": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "Weirdly Deformed Bone": WOLItemData(ItemClassification.useful, {"Gear", "Lapel"}), "3 Ball": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "5 Ball": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "6 Ball": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "Ancient Bean Can": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Antique Rangefinder": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Bean-Iron Kettle": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Bean-Iron Saucepan": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Bean-Iron Skillet": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Br*** Censer": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Breadwood Cheat Sheet": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Caged Canary": WOLItemData(ItemClassification.useful, {"Gear", "Offhand", "Prog Loot"}), "Can Of Infinite Beans": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Dramatic Goblin Skull": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Driftwood Sculpture (Shield)": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "El Vibrato Cone": WOLItemData(ItemClassification.useful, {"Gear", "Offhand", "Prog Loot"}), "Filthy Porcelain Cone": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Ghost Flower": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Glass Sphere": WOLItemData(ItemClassification.progression, {"Gear", "Offhand"}), "Goblin Spyglass": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Goblin Trash Sack": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Gun Manor Pistol Token": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "Gun Manor Rifle Token": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "Gun Manor Shotgun Token": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}, is_dlc=True), "Infernal Leather Bag": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Large Plush Bear": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Large Plush Cat": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Large Plush Owl": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Lucky Horseshoe": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Macready's Pocketwatch": WOLItemData(ItemClassification.progression, {"Gear", "Offhand"}, is_dlc=True), "Rucker's Ranchsack": WOLItemData(ItemClassification.useful, {"Gear", "Offhand", "Prog Loot"}), "Sea Skull": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Shiny Ball": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Small Plush Bear": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Small Plush Kitten": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Small Plush Owl": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Smoldering Leather Bag": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Souvenir Spoon": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Stove Door": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Strange Glass Rectangle": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Sweet-Smellin' Flowers": WOLItemData(ItemClassification.progression, {"Gear", "Offhand", "Stench Resistance"}), "The Hedge Wizard's Orb": WOLItemData(ItemClassification.progression, {"Gear", "Offhand"}, is_dlc=True), "Thick Leather Bag": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Vibrating Scapula": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Weird Silver Idol": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Worry Stone": WOLItemData(ItemClassification.useful, {"Gear", "Offhand"}), "Barnaby Bob's Burnished Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Big Furry Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Black Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Boost Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Brown Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "El Vibrato Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots", "Prog Loot"}), "Extra-Large Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Flashy Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Hide Shoes": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Hightailin' Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Infernal Leather Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Jackboots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Old Spanish Sabatons": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Orthopedic Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots", "Prog Loot"}), "Overly-Tanned Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Riding Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Running Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Silk Nun's Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Smoldering Leather Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Spit-Soaked Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Thick Leather Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Beer-Soaked Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Enchanted Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Inscribed Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Meaty Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Shiny Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Shootin' Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Thick-Soled Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Tony's Tiger-Striped Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Wet Boots": WOLItemData(ItemClassification.progression, {"Gear", "Boots", "Hot Resistance"}), "Work Boots": WOLItemData(ItemClassification.useful, {"Gear", "Boots"}), "Arcane Geode Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Barely-Enchanted Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}, default_starting_gear=True), "Battered Old Top Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Bean-Iron Collander": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Bear Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Black Hood": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Bowling Ball Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}, is_dlc=True), "Burning Tophat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Cat Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Colorful Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Cowboy Chef's Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Crackerjack Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Crazy Electric Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Cultist Leader Mask": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Cultist Mask": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Dilapidated Old Wizard Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Driftwood Sculpture (Hat)": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "El Vibrato Crown": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "El Vibrato Headband": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "El Vibrato Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats", "Prog Loot"}), "Ellsbury's Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Enchanted Buffalo Skull": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Extra-Black Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Fake Pope Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Floppy Derby": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}, default_starting_gear=True), "Four-Gallon Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}, default_starting_gear=True), "Funerary Derby": WOLItemData(ItemClassification.useful, {"Gear", "Hats", "Prog Loot"}), "Gasmask": WOLItemData(ItemClassification.progression, {"Gear", "Hats", "Stench Resistance"}), "General Gob's Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Ghost Cowboy Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Ghost Skin Cap": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Goblin Tiara": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Gold Tooth Crown": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "Gold Tooth Tiara": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Infernal Leather Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Kurtzfit Headband": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "Marmotskin Cap": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Miner's Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Old Cavalry Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Old Patrol Cap": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "Owl Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Prototype Stetson": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Really Nice Cowboy Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Rifleman's Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Rusty Old Viking Helmet": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Sloppy Chef's Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Sloppy Cowboy Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Sloppy Tophat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Smoldering Leather Hat": WOLItemData(ItemClassification.progression, {"Gear", "Hats", "Cold Resistance"}), "Spittoon Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Strange Head Sack": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Stripey Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Teeny-Tiny Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "The Necromancer's Crown": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "Thick Leather Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Turnip Crown": WOLItemData(ItemClassification.progression, {"Gear", "Hats"}), "Wreath Of Laurels": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}, is_dlc=True), "Yeast-Covered Hat": WOLItemData(ItemClassification.useful, {"Gear", "Hats"}), "Bean-Stained Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Bearskin Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Birthing Breeches": WOLItemData(ItemClassification.useful, {"Gear", "Pants", "Prog Loot"}), "Black Denim Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Buffaloskin Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Cargo Chaps": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Cargo Jeans": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Chastity Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Coffee-Stained Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Cursed Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Double-Silk Pantaloons": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}, is_dlc=True), "Eight-Legged Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}, is_dlc=True), "El Vibrato Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Entire Leather Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Fancy Pantry Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}, is_dlc=True), "Flexible Chaps": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Goblin Shortpants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Goblin Trousers": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Infernal Breeches": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Inflexible Chaps": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Kitchen Pants": WOLItemData(ItemClassification.progression, {"Gear", "Pants", "Stench Resistance", "Hot Resistance", "Cold Resistance"}), "Kneeling Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Kurtzfit Pants": WOLItemData(ItemClassification.progression, {"Gear", "Pants"}), "Magician's Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Miner's Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Old Silk Trousers": WOLItemData(ItemClassification.useful, {"Gear", "Pants", "Prog Loot"}), "Smoldering Leather Pants": WOLItemData(ItemClassification.progression, {"Gear", "Pants", "Cold Resistance"}), "Somethingskin Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Spit-Soaked Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Thick Chaps": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Thick Leather Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Thick Quilted Pants": WOLItemData(ItemClassification.useful, {"Gear", "Pants"}), "Army-Issue Sidearm": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Bandit Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Bandit Revolver": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Bean-Iron Shootin' Iron": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Befouled Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Cookin' Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Deputy Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}, default_starting_gear=True), "Desert Gang's Sixgun": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "El Vibrato Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols", "Prog Loot"}), "General Gob's Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Ghost Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Goblin Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Intimidating Sixgun": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Medical Gun": WOLItemData(ItemClassification.useful, {"Gear", "Pistols", "Prog Loot"}), "Mrs. Gun's Opus": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}, is_dlc=True), "Muck-Clogged Blunderbuss": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "New-Fangled Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Rancher's Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols", "Prog Loot"}), "Red-Hot Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Sigiled Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Silver Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Smoking Gun": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "The Worst Gun": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}, is_dlc=True), "Toilet Pistol": WOLItemData(ItemClassification.useful, {"Gear", "Pistols"}), "Ancient Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Bone-Chip Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Bowling Championship Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}, is_dlc=True), "Branding Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings", "Prog Loot"}), "Coal Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Coccyx With A Hole In It": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Cool Sapphire Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Cow-Catcher Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Cowseye Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Effluvious Emerald Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "El Vibrato Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings", "Prog Loot"}), "Floral Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Ghost Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Glowing Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Goblin Engagement Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Goblin Glass Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Goblin Lead Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Goblin Nail Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Huge Diamond Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Lodestone Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings", "Prog Loot"}), "Meat-Stained Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Military School Class Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings", "Prog Loot"}), "Nasty Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}, default_starting_gear=True), "Old Engagement Ring": WOLItemData(ItemClassification.filler, {"Gear", "Rings", "Prog Loot"}, extras_eligible=True), "Ring Of Gettin' Places Faster": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Ring Of Inconspicuousness": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Ring Of Moderate Unpunchability": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Ring Of Smart Thinkin'": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Ring Of Strongth": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Sandalwood Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Santa Cortada's Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Serpentine Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Silicon Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Special Magic Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Thaumomorphic Diorite Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Unbreakable Ruby Ring": WOLItemData(ItemClassification.useful, {"Gear", "Rings"}), "Artillery Saber": WOLItemData(ItemClassification.useful, {"Gear", "Melee", "Prog Loot"}), "Balanced Billiards Cue": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}, is_dlc=True), "Barry Knife": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bean-Iron Ladle": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bean-Iron Spatula": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bean-Iron Whisk": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Blechscalibur": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bloodied Cleaver": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bone Sword": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Bowling Pin": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Brass Knuckles": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Broken Board": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, default_starting_gear=True), "Bush Whacker": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Cactus Club": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Clown Knife": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Construction Sledgehammer": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Crowbar": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Driftwood Sculpture (Club)": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "El Vibrato Club": WOLItemData(ItemClassification.useful, {"Gear", "Melee", "Prog Loot"}), "Fancy Knife": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Fang-Gloves": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Goblin Trashbat": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Gulch Goblin Axe": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Gulch Goblin Spatula": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Hammer": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Hard Loaf": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Hedge Clippers": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Infernal Mallet": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Jumbo Jumbo Shrimp Fork": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Leather Shears": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Monkey Wrench": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Mushroom-Covered Bone": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Nailgoves": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Old Cavalry Saber": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Old Pickaxe": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Pickaxe": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Plunger": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Red-Hot Poker": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Repurposed Cult Dagger": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Rock Hammer": WOLItemData(ItemClassification.useful, {"Gear", "Melee", "Prog Loot"}), "Spider Axe": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "St. Beefus' Thigh": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Stainless Steel Bean Pan": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Stuffed Gun": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Sweet Sword": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "The Carver": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}, is_dlc=True), "Tuna Fork": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Ungulith-Horn Gloves": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Varmint Skinnin' Knife": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}), "Weird Knife": WOLItemData(ItemClassification.useful, {"Gear", "Melee"}), "Wobbly Billiards Cue": WOLItemData(ItemClassification.progression, {"Gear", "Melee"}, is_dlc=True), "Kellogg Grain Flakes": WOLItemData(ItemClassification.progression, {"Consumables", "Food"}), "Cheap Cigar": WOLItemData(ItemClassification.progression, {"Consumables", "Potions", "Stench Resistance"}, is_dlc=True), "Can Of Kerosene": WOLItemData(ItemClassification.progression, {"Consumables", "Combat"}), "1878 Nautical Almanac": WOLItemData(ItemClassification.progression, {"Books"}, is_dlc=True), "Advanced Beancraft": WOLItemData(ItemClassification.progression, {"Books"}, 8), "Advanced Cow Punchin'": WOLItemData(ItemClassification.useful, {"Books"}, 8), "Basics Of Gun Law": WOLItemData(ItemClassification.progression, {"Books"}, is_dlc=True), "Beans Illustrated": WOLItemData(ItemClassification.progression, {"Books"}), "The Best Love Poem Ever Written": WOLItemData(ItemClassification.filler, {"Books"}), "Burned Leatherworking Manual": WOLItemData(ItemClassification.progression, {"Books"}), "Cannon Loading For Idjits": WOLItemData(ItemClassification.useful, {"Books"}), "Progressive Nex-Mex Skillbook": WOLItemData(ItemClassification.progression, {"Books"}, 7), "Desert Eatin' And Drinkin'": WOLItemData(ItemClassification.progression, {"Books"}), "The Diary Of Alexandria Alexandria": WOLItemData(ItemClassification.filler, {"Books"}), "Duel Law": WOLItemData(ItemClassification.progression, {"Books"}, is_dlc=True), "Duelling Banjos": WOLItemData(ItemClassification.progression, {"Books"}, is_dlc=True), "Forgotten Lore": WOLItemData(ItemClassification.useful, {"Books"}), "Fun Law: Rules For Parlor Games": WOLItemData(ItemClassification.progression, {"Books"}, is_dlc=True), "Get Crackin': A Guide To Modern Safes": WOLItemData(ItemClassification.progression, {"Books"}), "Gold Medal Silversmithing": WOLItemData(ItemClassification.useful, {"Books"}), "Hedging Your Bets": WOLItemData(ItemClassification.useful, {"Books"}, is_dlc=True), "How To \"Cheat\" At \"Poker\"": WOLItemData(ItemClassification.useful, {"Books"}), "Kickin' Ass And Chewin' Gum": WOLItemData(ItemClassification.useful, {"Books"}), "Locks And How To Pick Them": WOLItemData(ItemClassification.progression, {"Books"}), "Mind Your Meat": WOLItemData(ItemClassification.progression, {"Books"}), "Modern Snake Oiler": WOLItemData(ItemClassification.useful, {"Books"}, 8), "Mycology, Yourcology": WOLItemData(ItemClassification.progression, {"Books"}), "Oils I Have Known": WOLItemData(ItemClassification.useful, {"Books"}), "Percussive Maintenance": WOLItemData(ItemClassification.progression, {"Books"}), "The Quick And The Drunk": WOLItemData(ItemClassification.useful, {"Books"}), "Rich Vein, Poor Vein": WOLItemData(ItemClassification.useful, {"Books"}), "Tanning And Tanning": WOLItemData(ItemClassification.useful, {"Books"}), "To Serve Food To Mankind": WOLItemData(ItemClassification.useful, {"Books"}), "Walking Stupid": WOLItemData(ItemClassification.filler, {"Books"}), "1.2337\" Diameter Tin Can": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "A Bunch Of Really Small Guns": WOLItemData(ItemClassification.progression, {"Quest Items"}), "A Pile Of Loose Chili Beans": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "A Year's Supply Of Dynamite": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Artillery Targeting Flare": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Attic-Opening Stick": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Bag Of Grease": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Bag Of Mixed Grain": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Bale Of Cowsbane": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Big Coil Of Barbed Wire": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Blank Sheet Music": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Blue Chalk": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Bottle Of Ghost Whiskey": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Box Of Science Doohickeys": WOLItemData(ItemClassification.useful, {"Quest Items"}, is_dlc=True), "Breadwood Bread Bowl x5": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Breadwood Logging Permit Forms": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Breadwood Logging Report": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Breadwood Logging Report Folder": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Breadwood's Missing Mail": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Broken Leg Pills": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Buffalo Pile Locker Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Buffalo Soldier Diagram": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Burned Scroll": WOLItemData(ItemClassification.progression, {"Quest Items", "Necromancer Clues"}), "Cargo Car Key": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Charred Locket": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Child's Bracelet": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Chili Sin Pistoles": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Chili Sin Pistoles (Muerto)": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Chili Spices": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Chuck's Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Circus Show Ticket": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Circus Ticket": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Clip-On Bow Tie": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Comedy Flier": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Creepy Whispering Stone": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Cryptic Note About Ley Lines": WOLItemData(ItemClassification.progression, {"Quest Items", "Necromancer Clues"}), "Curly's Auto-Gyrotheodolite": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Curly's Compass": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Curly's Strongbox": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Dave's Secret Sauce Recipe": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Demi-Culverin Cannonball": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Desert Ape Skeleton": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Dictionary Page (Poach)": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Dining Car Key": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Discipline Slip": WOLItemData(ItemClassification.progression, {"Quest Items", "Necromancer Clues"}), "El Vibrato Cross": WOLItemData(ItemClassification.progression, {"Quest Items"}), "El Vibrato Cylinder": WOLItemData(ItemClassification.progression, {"Quest Items"}, 3), "El Vibrato Device": WOLItemData(ItemClassification.progression, {"Quest Items"}), "El Vibrato Model Bridge": WOLItemData(ItemClassification.progression, {"Quest Items"}), "El Vibrato Rod": WOLItemData(ItemClassification.useful, {"Quest Items"}), "El Vibrato Transponder": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Elevator Button": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Emergency Form Transfer Envelope": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Fort Treason Ballistics Chart": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Forty Loaves Of Bread": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Gas Cap": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Geometry Textbook": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Ghost Pencil": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Ghost Staple Remover": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Ghost Stapler": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Ghostwood Visitor's ID": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Ghostwood Visitor's Permit": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Glass Eye": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Goblet Of Blood": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Gore-Splattered Scroll": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Green Green Apple Jellybeans": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Gun Manor Carriage House Key": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Gun Manor Guest Room Key": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Gun Manor Photo": WOLItemData(ItemClassification.filler, {"Quest Items"}, is_dlc=True), "Gustavson Gulch Treasure Cave Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Gustavson Gulch Treasure Cave Key (Spare)": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Half A Ton Of Yeast": WOLItemData(ItemClassification.progression, {"Quest Items"}), "High-Tech Drill Bit": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Honey Jelly Bean": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Interesting Rock": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Jumbleneck Mine Elevator Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Kellogg Ranch Keyring": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Kellogg Ranch Workout Regimen": WOLItemData(ItemClassification.filler, {"Quest Items"}), "Kellogg's Grain Flakes Recipe": WOLItemData(ItemClassification.filler, {"Quest Items"}), "Key Fragment 1": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Key Fragment 2": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Key Fragment 3": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Key To P.O. Box 114": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Key To P.O. Box 441": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Key-Shaped El Vibrato Device": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Left Half Of Curly's Map": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Letter To Roy Bean": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Lime Lime Jellybeans": WOLItemData(ItemClassification.useful, {"Quest Items"}), "List Of Buffalo Bones": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Lucky Cap": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Marching Orders": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Mary Stearns' Diary": WOLItemData(ItemClassification.filler, {"Quest Items"}), "Mint Mint Jellybeans": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Mrs. Gun's Blueprint": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Mule Rental Contract": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Mushroom Map": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Mushroom Plucking Pliers": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Nearly-Empty Herbicide Can": WOLItemData(ItemClassification.filler, {"Quest Items"}, is_dlc=True), "Overdue Breadwood Book": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Owl Camera": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Packrat Skeleton": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Paper Bag": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Passenger Car Key": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Photo Of L'ardest": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Picture Of Mary Stearns": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Plaid Skirt": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Pope's Pelvis": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Postal Code Sheet": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Purple Grass": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Pvt. Lemmon's Diary": WOLItemData(ItemClassification.filler, {"Quest Items"}), "Pvt. Matthau's Diary": WOLItemData(ItemClassification.filler, {"Quest Items"}), "Remains Of The Potemkin Gang": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Right Half Of Curly's Map": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Robe Receipt": WOLItemData(ItemClassification.progression, {"Quest Items", "Necromancer Clues"}), "Santa Cortada's Skull": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Saute Knife": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Shaker Of Saltpeter": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Sharpened Ghost Pencil": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Shaving Cream Pie": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Shower Curtain": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Silver-Plated Barbed Wire": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Skull With An Odd Tag On It": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Slide Whistle": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Small Blowtorch": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Southeast-Western Murder Pepper": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Spooky Lullaby Sheet Music": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "St. Beefus' Finger": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Sticky Note": WOLItemData(ItemClassification.progression, {"Quest Items", "Necromancer Clues"}), "Strange Stone Arrow": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Syrup Tap": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Tannery Back Door Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Tannery St. Rage Key": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Tea Service": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Tiny Stick Of Dynamite": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Toy Skeletons": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Unstable Stick Of Dynamite": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Very Thick Spectacles": WOLItemData(ItemClassification.useful, {"Quest Items"}), "Wad Of Stuffing": WOLItemData(ItemClassification.progression, {"Quest Items"}, is_dlc=True), "Weird Rock Sample": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Whining El Vibrato Object": WOLItemData(ItemClassification.useful, {"Quest Items"}), "A Portable Alchemistry Set": WOLItemData(ItemClassification.useful, {"Miscellany"}), "A Portable Arcane Oven": WOLItemData(ItemClassification.progression, {"Miscellany"}), "A Portable Leatherwork Bench": WOLItemData(ItemClassification.progression, {"Miscellany"}), "All-Purpose Beans x2": WOLItemData(ItemClassification.useful, {"Miscellany"}, extras_eligible=True), "Balloon": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Bean-Iron Nugget": WOLItemData(ItemClassification.progression, {"Miscellany"}, 3), "Blank Postcard": WOLItemData(ItemClassification.progression, {"Miscellany"}, 5), "Bottle Of Buffalo Tranquilizers": WOLItemData(ItemClassification.useful, {"Miscellany"}), "Cool Sapphire": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Cowseye": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Delicate Bean-Iron Nugget": WOLItemData(ItemClassification.progression, {"Miscellany"}, 3), "Dense Bean-Iron Nugget": WOLItemData(ItemClassification.progression, {"Miscellany"}, 3), "Disturbing Portrait": WOLItemData(ItemClassification.progression, {"Miscellany", "Stench Resistance", "Hot Resistance", "Cold Resistance"}), "Effluvious Emerald": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Elaborate Puzzle Box": WOLItemData(ItemClassification.useful, {"Miscellany"}), "Handful Of Old Coins": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Hanky": WOLItemData(ItemClassification.filler, {"Miscellany"}), "Herbal Remedy": WOLItemData(ItemClassification.filler, {"Miscellany"}), "Infernal Soul Fragment": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Jaw Harp": WOLItemData(ItemClassification.useful, {"Miscellany"}), "Miniature Piano": WOLItemData(ItemClassification.useful, {"Miscellany"}), "Personalized Gun Manor Shotglass": WOLItemData(ItemClassification.useful, {"Miscellany"}, is_dlc=True), "Pocketknife": WOLItemData(ItemClassification.filler, {"Miscellany"}), "Polished Diorite": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Puzzle Cube": WOLItemData(ItemClassification.filler, {"Miscellany"}), "Shovel": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Silenter": WOLItemData(ItemClassification.progression, {"Miscellany"}, is_dlc=True), "Strange Lamp": WOLItemData(ItemClassification.filler, {"Miscellany"}), "Strange Silvery Crystal": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Superdense Coal": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Unbreakable Ruby": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Silver Nugget x5": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Handful Of Nails x4": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Stock Certificate x3": WOLItemData(ItemClassification.filler, {"Miscellany"}, 2, extras_eligible=True), "Human Ashes x2": WOLItemData(ItemClassification.progression, {"Quest Items"}, extras_eligible=True), "Cheap Wine x11": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Sulphur Match x4": WOLItemData(ItemClassification.progression, {"Consumables", "Combat"}, extras_eligible=True), #TODO: Replace with an infinite matchbook only usable for check requirements? "Military Medical Supplies": WOLItemData(ItemClassification.filler, {"Consumables", "Combat", "Booze"}, extras_eligible=True), "Decent Booze": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Cheap Booze": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Lead Pie": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Drugs": WOLItemData(ItemClassification.filler, {"Consumables", "Combat", "Potions"}, extras_eligible=True), "Goblin Sandwich x5": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Goblin Chicory x3": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "A Length Of Rope": WOLItemData(ItemClassification.progression, {"Miscellany"}), "Tainted Milk x3": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "Gold Tooth x3": WOLItemData(ItemClassification.progression, {"Miscellany"}, extras_eligible=True), "Potted Meat": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Bottle Of Laudanum x6": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "Unrefined Meat Nugget x4": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Bundle Of Bones": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Ghost Pickle x3": WOLItemData(ItemClassification.progression, {"Consumables", "Food", "Stench Resistance", "Hot Resistance", "Cold Resistance"}, extras_eligible=True), "\"Cotton Candy\"": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Dynamite x5": WOLItemData(ItemClassification.filler, {"Consumables", "Combat"}, extras_eligible=True), "Dynamite x10": WOLItemData(ItemClassification.filler, {"Consumables", "Combat"}, extras_eligible=True), "Lasso x3": WOLItemData(ItemClassification.filler, {"Consumables", "Combat"}, extras_eligible=True), "El Vibrato Fluid x5": WOLItemData(ItemClassification.useful, {"Miscellany"}, extras_eligible=True), "Can Of Schmaltz Blue Ribbon x3": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Sack Of Meat Nuggets": WOLItemData(ItemClassification.useful, {"Miscellany"}, 3, extras_eligible=True), "Perfect Cup Of Coffee": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "El Vibrato Seltzer x3": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "Tripe Pie": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Decent Whiskey x2": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Patent Emetic x3": WOLItemData(ItemClassification.filler, {"Consumables", "Combat"}, extras_eligible=True), "Skull Chips x3": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Handful Of Loose Teeth x3": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "El Vibrato Punchcard (Complicated) x5": WOLItemData(ItemClassification.filler, {"Quest Items"}, 2, extras_eligible=True), "El Vibrato Punchcard x5": WOLItemData(ItemClassification.filler, {"Quest Items"}, extras_eligible=True), "El Vibrato Scraps x8": WOLItemData(ItemClassification.filler, {"Quest Items"}, extras_eligible=True), "El Vibrato Scraps x45": WOLItemData(ItemClassification.useful, {"Quest Items"}, extras_eligible=True), "Skeleton Bone x4": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Needle x5": WOLItemData(ItemClassification.progression, {"Miscellany"}, 3, extras_eligible=True), "Jar Of Moonshine": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Jar Of Peanut Butter": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Goat Steak": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Moon Bits": WOLItemData(ItemClassification.useful, {"Miscellany"}, extras_eligible=True), "Fancy Coffee": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, extras_eligible=True), "Spider Pie": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, 2, is_dlc=True), "Box Of Science Doohickeys": WOLItemData(ItemClassification.useful, {"Quest Items"}, 4, is_dlc=True), "Tinned Caviar x3": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, is_dlc=True), "Old-Timey Ointment x3": WOLItemData(ItemClassification.filler, {"Consumables", "Potions"}, is_dlc=True), "Instant Grits": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Plum Pudding": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Blackened Beans": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Disposable Binoculars x2": WOLItemData(ItemClassification.filler, {"Miscellany"}, extras_eligible=True), "Army Field Trauma Kit": WOLItemData(ItemClassification.filler, {"Consumables", "Combat"}, extras_eligible=True), "Military-Grade Whiskey": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, extras_eligible=True), "Hard Tack": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Gulch Goblin Lollipop": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Snake Liver x3": WOLItemData(ItemClassification.useful, {"Consumables", "Combat"}, extras_eligible=True), "Snake Venom Bladder x3": WOLItemData(ItemClassification.useful, {"Consumables", "Combat"}, extras_eligible=True), "Snake Spleen x3": WOLItemData(ItemClassification.useful, {"Consumables", "Combat"}, extras_eligible=True), "Apple": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Carrot": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, extras_eligible=True), "Gold Skull": WOLItemData(ItemClassification.filler, {"Miscellany"}, 2, is_dlc=True, extras_eligible=True), "Stock Certificate": WOLItemData(ItemClassification.filler, {"Miscellany"}, 2, is_dlc=True, extras_eligible=True), "Spider Ring": WOLItemData(ItemClassification.filler, {"Gear", "Rings"}, is_dlc=True), "Manley's Finest Cotton Candy Schnapps": WOLItemData(ItemClassification.filler, {"Consumables", "Booze"}, is_dlc=True), "Magic-Infused Salad": WOLItemData(ItemClassification.filler, {"Consumables", "Food"}, is_dlc=True), "NE North Central Logging Permit": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Ghost Coach To Gun Manor": WOLItemData(ItemClassification.progression, {"Miscellany"}, is_dlc=True), "English-Goblintongue Dictionary": WOLItemData(ItemClassification.progression, {"Books"}), "Can Of Oil": WOLItemData(ItemClassification.progression, {"Miscellany"}, extras_eligible=True), "Packet Of Cowsbane Seeds": WOLItemData(ItemClassification.progression, {"Quest Items"}), "Lactarius Dirtihippica mushroom x4": WOLItemData(ItemClassification.progression, {"Consumables", "Food", "Quest Items"}), "Silver-Toothed Skull": WOLItemData(ItemClassification.progression, {"Quest Items"}) } starting_gear_list: List[str] = [name for name, data in item_table.items() if data.default_starting_gear] extra_filler_list: List[str] = [name for name, data in item_table.items() if data.extras_eligible] item_name_to_id: Dict[str, int] = {name: base_id + index for index, name in enumerate(item_table)} item_categories = { "Gear", "Lapel", "Offhand", "Boots", "Pants", "Hats", "Rings", "Pistols", "Melee", "Prog Loot", "Consumables", "Food", "Booze", "Potions", "Combat", "Books", "Quest Items", "Miscellany", "Necromancer Clues", "Stench Resistance", "Hot Resistance", "Cold Resistance" } item_name_groups: Dict[str, Set[str]] = {} for category in item_categories: items_in_category = set() for item, data in item_table.items(): if category in data.categories: items_in_category.add(item) item_name_groups[category] = items_in_category