Files
Archipelago/worlds/earthbound/Items.py
PinkSwitch 55c70a5ba8 EarthBound: Implement New Game (#5159)
* Add the world

* doc update

* docs

* Fix Blast/Missile not clearing Reflect

* Update worlds/earthbound/__init__.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/__init__.py

remove unused import

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/__init__.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/modules/dungeon_er.py

make bool optional

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/modules/boss_shuffle.py

typing update

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/modules/boss_shuffle.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Filter events out of item name to id

* we call it a glorp

* Update worlds/earthbound/Regions.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/__init__.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/Items.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Update worlds/earthbound/Regions.py

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Fix missing optional import

* hint stuff

* -Fix Apple Kid text being wrong
-Fix Slimy Pile text being wrong

* -Fix some sprite corruption if PSI was used when an enemy loaded another enemy
-Fixed a visible artifact tile during some cutscenes

* Update ver

* Update docs

* Fix some money scripting issues

* Add argument to PSI fakeout attack

* Updated monkey caves shop description

* Remove closing markdown from doc

* Add new flavors

* Make flavors actually work

* Update platforms

* Fix common gear getting duplicated

* Split region initialization

* Condense checks for start inventory + some other junk

* Fix some item groups - change receiver phone to warp pad

* wow that one was really bad :glorp:

* blah

* Fix cutoff option text

* switch start inventory concatenation to itertools

* Fix sky runner scripting bug - added some new comm suggestions

* Fix crash when generating with spoiler_only

* Fix happy-happy teleport not unlocking after beating carpainter

* Hint man hints can now use CreateHint packets to create hints in other games

* Adjust some filler rarity

* Update world to use CreateHints and deprecate old method

* Fix epilogue skip being offset

* Rearrange a couple regions

* Fix tendapants getting deleted in battle

* update doc

* i got scared and forgot i had multiple none checks and am worried about this triggering but tested and it works

* Fix mostly typing errors from silvris

* More type checks

* More typing

* Typema

* Type

* Fix enemy levels overwriting music

* Fix gihugic blunder

* Fix Lumine Hall enabling OSS

* del world

* Rel 4.2.7

* Remove some debug logs

* Fix vanilla bug with weird ambush detection

* Fix Starman Junior having an unscaled Freeze

* Change shop scaling

* Fix shops using the wrong thankful script

* Update some bosses in boss shuffle

* Loc group adjustment

* Update some boss shuffle stuff | Fix Enemizer attacks getting overwritten by Shuffle data | Fix flunkies not updating and still being used with enemizer

* Get rid of some debug stuff

* Get boss shuffle running, dont merge

* Fix json and get boss shuffle no plando back up

* Fix Magicant Boost not initializing to Ness if party count = 4

* Fix belch shop using wrong logic

* Don't re-send goal status

* EBitem

* remove :

* idk if this is whatvi wanted

* All client messagesnow only send when relevant instead of constantly

* Patch up the rest of boss plando

* Fix Giygas being not excluded from enemizer

* Fix epilogue again

* adjust the sphere scaling name

* add the things

* Fix Ness being placed onto monotoli when monotoli was in sea of eden

* Fix prefill properly

* Fix boss shuffle on vanilla slots.

* rename this, apparently

* Update archipelago.json

---------

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2025-12-19 14:52:27 +01:00

338 lines
24 KiB
Python

from typing import Dict, Set, NamedTuple, Optional
from BaseClasses import ItemClassification
class ItemData(NamedTuple):
category: str
code: Optional[int]
classification: ItemClassification
amount: int = 1
item_table: Dict[str, ItemData] = {
"Franklin Badge": ItemData("Key Items", 0xEB0001, ItemClassification.progression),
"Teddy Bear": ItemData("Characters", 0xEB0002, ItemClassification.filler, 0),
"Super Plush Bear": ItemData("Characters", 0xEB0003, ItemClassification.useful, 0),
"Broken Machine": ItemData("Broken Items", 0xEB0004, ItemClassification.useful, 0),
"Broken Gadget": ItemData("Jeff Weapons", 0xEB0005, ItemClassification.useful, 0),
"Broken Air Gun": ItemData("Jeff Weapons", 0xEB0006, ItemClassification.filler, 0),
"Broken Spray Can": ItemData("Broken Items", 0xEB0007, ItemClassification.filler, 0),
"Broken Laser": ItemData("Jeff Weapons", 0xEB0008, ItemClassification.useful, 0),
"Broken Iron": ItemData("Broken Items", 0xEB0009, ItemClassification.filler, 0),
"Broken Pipe": ItemData("Broken Items", 0xEB000A, ItemClassification.useful, 0),
"Broken Cannon": ItemData("Jeff Weapons", 0xEB000B, ItemClassification.useful, 0),
"Broken Tube": ItemData("Broken Items", 0xEB000C, ItemClassification.useful, 0),
"Broken Bazooka": ItemData("Broken Items", 0xEB000D, ItemClassification.useful, 0),
"Broken Trumpet": ItemData("Broken Items", 0xEB000E, ItemClassification.filler, 0),
"Broken Harmonica": ItemData("Jeff Weapons", 0xEB000F, ItemClassification.useful, 0),
"Broken Antenna": ItemData("Jeff Weapons", 0xEB0010, ItemClassification.useful, 0),
"Cracked Bat": ItemData("Ness Weapons", 0xEB0011, ItemClassification.filler, 0),
"Tee Ball Bat": ItemData("Ness Weapons", 0xEB0012, ItemClassification.filler, 0),
"Sand Lot Bat": ItemData("Ness Weapons", 0xEB0013, ItemClassification.filler, 0),
"Minor League Bat": ItemData("Ness Weapons", 0xEB0014, ItemClassification.filler, 0),
"Mr. Baseball Bat": ItemData("Ness Weapons", 0xEB0015, ItemClassification.useful, 0),
"Big League Bat": ItemData("Ness Weapons", 0xEB00D5, ItemClassification.useful, 0),
"Hall of Fame Bat": ItemData("Ness Weapons", 0xEB0017, ItemClassification.useful, 0),
"Magicant Bat": ItemData("Ness Weapons", 0xEB0018, ItemClassification.useful),
"Legendary Bat": ItemData("Ness Weapons", 0xEB0019, ItemClassification.useful),
"Gutsy Bat": ItemData("Ness Weapons", 0xEB001A, ItemClassification.useful, 0),
"Casey Bat": ItemData("Ness Weapons", 0xEB001B, ItemClassification.filler, 0),
"Fry Pan": ItemData("Paula Weapons", 0xEB001C, ItemClassification.filler, 0),
"Thick Fry Pan": ItemData("Paula Weapons", 0xEB001D, ItemClassification.filler, 0),
"Deluxe Fry Pan": ItemData("Paula Weapons", 0xEB001E, ItemClassification.filler, 0),
"Chef's Fry Pan": ItemData("Paula Weapons", 0xEB001F, ItemClassification.useful, 0),
"French Fry Pan": ItemData("Paula Weapons", 0xEB0020, ItemClassification.useful, 0),
"Magic Fry Pan": ItemData("Paula Weapons", 0xEB0021, ItemClassification.useful, 0),
"Holy Fry Pan": ItemData("Paula Weapons", 0xEB0022, ItemClassification.useful, 0),
"Sword of Kings": ItemData("Poo Weapons", 0xEB0023, ItemClassification.useful, 0),
"Pop Gun": ItemData("Jeff Weapons", 0xEB0024, ItemClassification.filler),
"Stun Gun": ItemData("Jeff Weapons", 0xEB0025, ItemClassification.filler),
"Toy Air Gun": ItemData("Jeff Weapons", 0xEB0026, ItemClassification.filler, 0),
"Magnum Air Gun": ItemData("Jeff Weapons", 0xEB0027, ItemClassification.filler, 0),
"Zip Gun": ItemData("Jeff Weapons", 0xEB0028, ItemClassification.filler, 0),
"Laser Gun": ItemData("Jeff Weapons", 0xEB0029, ItemClassification.filler, 0),
"Hyper Beam": ItemData("Jeff Weapons", 0xEB002A, ItemClassification.useful, 0),
"Crusher Beam": ItemData("Jeff Weapons", 0xEB002B, ItemClassification.useful, 0),
"Spectrum Beam": ItemData("Jeff Weapons", 0xEB002C, ItemClassification.useful, 0),
"Death Ray": ItemData("Jeff Weapons", 0xEB002D, ItemClassification.useful),
"Baddest Beam": ItemData("Jeff Weapons", 0xEB002E, ItemClassification.useful, 0),
"Moon Beam Gun": ItemData("Jeff Weapons", 0xEB002F, ItemClassification.useful),
"Gaia Beam": ItemData("Jeff Weapons", 0xEB0030, ItemClassification.useful, 0),
"Yo-yo": ItemData("Alt Weapons", 0xEB0031, ItemClassification.filler, 0),
"Slingshot": ItemData("Alt Weapons", 0xEB0032, ItemClassification.filler, 0),
"Bionic Slingshot": ItemData("Alt Weapons", 0xEB0033, ItemClassification.filler, 0),
"Trick Yo-yo": ItemData("Alt Weapons", 0xEB0034, ItemClassification.filler, 0),
"Combat Yo-yo": ItemData("Alt Weapons", 0xEB0035, ItemClassification.filler, 0),
"Travel Charm": ItemData("Body Equipment", 0xEB0036, ItemClassification.filler),
"Great Charm": ItemData("Body Equipment", 0xEB0037, ItemClassification.filler),
"Crystal Charm": ItemData("Body Equipment", 0xEB0038, ItemClassification.filler, 0),
"Rabbit's Foot": ItemData("Body Equipment", 0xEB0039, ItemClassification.useful),
"Flame Pendant": ItemData("Body Equipment", 0xEB003A, ItemClassification.useful),
"Rain Pendant": ItemData("Body Equipment", 0xEB003B, ItemClassification.useful),
"Night Pendant": ItemData("Body Equipment", 0xEB003C, ItemClassification.useful),
"Sea Pendant": ItemData("Body Equipment", 0xEB003D, ItemClassification.useful),
"Star Pendant": ItemData("Body Equipment", 0xEB003E, ItemClassification.useful, 0),
"Cloak of Kings": ItemData("Poo Equipment", 0xEB003F, ItemClassification.useful),
"Cheap Bracelet": ItemData("Arm Equipment", 0xEB0040, ItemClassification.filler, 0),
"Copper Bracelet": ItemData("Arm Equipment", 0xEB0041, ItemClassification.filler, 0),
"Silver Bracelet": ItemData("Arm Equipment", 0xEB0042, ItemClassification.filler, 0),
"Gold Bracelet": ItemData("Arm Equipment", 0xEB0043, ItemClassification.filler, 0),
"Platinum Band": ItemData("Arm Equipment", 0xEB00D8, ItemClassification.useful),
"Diamond Band": ItemData("Arm Equipment", 0xEB00D9, ItemClassification.useful),
"Pixie's Bracelet": ItemData("Arm Equipment", 0xEB0046, ItemClassification.useful),
"Cherub's Band": ItemData("Arm Equipment", 0xEB0047, ItemClassification.useful),
"Goddess Band": ItemData("Arm Equipment", 0xEB0048, ItemClassification.useful),
"Bracer of Kings": ItemData("Poo Equipment", 0xEB0049, ItemClassification.useful),
"Baseball Cap": ItemData("Other Equipment", 0xEB004A, ItemClassification.filler, 0),
"Holmes Hat": ItemData("Other Equipment", 0xEB004B, ItemClassification.filler, 0),
"Mr. Baseball Cap": ItemData("Other Equipment", 0xEB004C, ItemClassification.filler, 0),
"Hard Hat": ItemData("Other Equipment", 0xEB004D, ItemClassification.filler, 0),
"Ribbon": ItemData("Ribbons", 0xEB004E, ItemClassification.filler, 0),
"Red Ribbon": ItemData("Ribbons", 0xEB004F, ItemClassification.filler, 0),
"Goddess Ribbon": ItemData("Ribbons", 0xEB0050, ItemClassification.useful, 0),
"Coin of Slumber": ItemData("Other Equipment", 0xEB0051, ItemClassification.useful),
"Coin of Defense": ItemData("Other Equipment", 0xEB0052, ItemClassification.useful, 0),
"Lucky Coin": ItemData("Other Equipment", 0xEB0053, ItemClassification.useful, 0),
"Talisman Coin": ItemData("Other Equipment", 0xEB0054, ItemClassification.useful, 0),
"Shiny Coin": ItemData("Other Equipment", 0xEB0055, ItemClassification.useful, 0),
"Souvenir Coin": ItemData("Other Equipment", 0xEB0056, ItemClassification.useful),
"Diadem of Kings": ItemData("Poo Equipment", 0xEB0057, ItemClassification.useful),
"Cookie": ItemData("Food", 0xEB0058, ItemClassification.filler, 0),
"Bag of Fries": ItemData("Food", 0xEB0059, ItemClassification.filler, 0),
"Hamburger": ItemData("Food", 0xEB005A, ItemClassification.filler, 0),
"Boiled Egg": ItemData("Food", 0xEB005B, ItemClassification.filler, 0),
"Fresh Egg": ItemData("Food", 0xEB005C, ItemClassification.filler, 0),
"Picnic Lunch": ItemData("Food", 0xEB005D, ItemClassification.filler, 0),
"Pasta di Summers": ItemData("Food", 0xEB005E, ItemClassification.filler, 0),
"Pizza": ItemData("Food", 0xEB005F, ItemClassification.filler, 0),
"Chef's Special": ItemData("Food", 0xEB0060, ItemClassification.filler, 0),
"Large Pizza": ItemData("Food", 0xEB0061, ItemClassification.filler, 0),
"PSI Caramel": ItemData("Food", 0xEB0062, ItemClassification.useful, 0),
"Magic Truffle": ItemData("Food", 0xEB0063, ItemClassification.useful, 0),
"Brain Food Lunch": ItemData("Food", 0xEB0064, ItemClassification.useful, 0),
"Rock Candy": ItemData("Food", 0xEB0065, ItemClassification.useful, 0),
"Croissant": ItemData("Food", 0xEB0066, ItemClassification.filler, 0),
"Bread Roll": ItemData("Food", 0xEB0067, ItemClassification.filler, 0),
"Pak of Bubble Gum": ItemData("Key Items", 0xEB0068, ItemClassification.progression),
"Jar of Fly Honey": ItemData("Key Items", 0xEB0069, ItemClassification.progression),
"Can of Fruit Juice": ItemData("Food", 0xEB006A, ItemClassification.filler, 0),
"Royal Iced Tea": ItemData("Food", 0xEB006B, ItemClassification.filler, 0),
"Protein Drink": ItemData("Food", 0xEB006C, ItemClassification.filler, 0),
"Kraken Soup": ItemData("Food", 0xEB006D, ItemClassification.filler, 0),
"Bottle of Water": ItemData("Food", 0xEB006E, ItemClassification.filler, 0),
"Cold Remedy": ItemData("Status Heal", 0xEB006F, ItemClassification.filler, 0),
"Vial of Serum": ItemData("Status Heal", 0xEB0070, ItemClassification.filler, 0),
"IQ Capsule": ItemData("Food", 0xEB0071, ItemClassification.useful, 0),
"Guts Capsule": ItemData("Food", 0xEB0072, ItemClassification.useful, 0),
"Speed Capsule": ItemData("Food", 0xEB0073, ItemClassification.useful, 0),
"Vital Capsule": ItemData("Food", 0xEB0074, ItemClassification.useful, 0),
"Luck Capsule": ItemData("Food", 0xEB0075, ItemClassification.useful, 0),
"Ketchup Packet": ItemData("Condiments", 0xEB0076, ItemClassification.filler, 0),
"Sugar Packet": ItemData("Condiments", 0xEB0077, ItemClassification.filler, 0),
"Tin of Cocoa": ItemData("Condiments", 0xEB0078, ItemClassification.filler, 0),
"Carton of Cream": ItemData("Condiments", 0xEB0079, ItemClassification.filler, 0),
"Sprig of Parsley": ItemData("Condiments", 0xEB007A, ItemClassification.filler, 0),
"Jar of Hot Sauce": ItemData("Condiments", 0xEB007B, ItemClassification.filler, 0),
"Salt Packet": ItemData("Condiments", 0xEB007C, ItemClassification.filler, 0),
"Tiny Key": ItemData("Key Items", 0xEB007D, ItemClassification.progression), # Progressive Gun
"Jar of Delisauce": ItemData("Condiments", 0xEB007E, ItemClassification.useful, 0),
"Wet Towel": ItemData("Status Heal", 0xEB007F, ItemClassification.filler, 0),
"Refreshing Herb": ItemData("Status Heal", 0xEB0080, ItemClassification.useful, 0),
"Secret Herb": ItemData("Status Heal", 0xEB0081, ItemClassification.useful, 0),
"Horn of Life": ItemData("Status Heal", 0xEB0082, ItemClassification.useful, 0),
"Counter-PSI Unit": ItemData("Jeff Items", 0xEB0083, ItemClassification.useful, 0),
"Shield Killer": ItemData("Jeff Items", 0xEB0084, ItemClassification.useful, 0),
"Bazooka": ItemData("Jeff Items", 0xEB0085, ItemClassification.useful, 0),
"Heavy Bazooka": ItemData("Jeff Items", 0xEB0086, ItemClassification.useful, 0),
"HP-Sucker": ItemData("Jeff Items", 0xEB0087, ItemClassification.useful),
"Hungry HP-Sucker": ItemData("Jeff Items", 0xEB0088, ItemClassification.useful, 0),
"Xterminator Spray": ItemData("Battle Items", 0xEB0089, ItemClassification.useful, 0),
"Slime Generator": ItemData("Jeff Items", 0xEB008A, ItemClassification.useful, 0),
"Yogurt Dispenser": ItemData("Key Items", 0xEB008B, ItemClassification.progression),
"Ruler": ItemData("Battle Items", 0xEB008C, ItemClassification.filler, 0),
"Snake Bag": ItemData("Battle Items", 0xEB008D, ItemClassification.filler, 0),
"Mummy Wrap": ItemData("Battle Items", 0xEB008E, ItemClassification.filler, 0),
"Protractor": ItemData("Battle Items", 0xEB008F, ItemClassification.filler, 0),
"Bottle Rocket": ItemData("Jeff Items", 0xEB0090, ItemClassification.filler, 0),
"Big Bottle Rocket": ItemData("Jeff Items", 0xEB0091, ItemClassification.useful, 0),
"Multi Bottle Rocket": ItemData("Jeff Items", 0xEB0092, ItemClassification.useful, 0),
"Bomb": ItemData("Battle Items", 0xEB0093, ItemClassification.filler, 0),
"Super Bomb": ItemData("Battle Items", 0xEB0094, ItemClassification.useful, 0),
"Insecticide Spray": ItemData("Battle Items", 0xEB0095, ItemClassification.filler, 0),
"Rust Promoter": ItemData("Battle Items", 0xEB0096, ItemClassification.filler, 0),
"Rust Promoter DX": ItemData("Battle Items", 0xEB0097, ItemClassification.useful, 0),
"Pair of Dirty Socks": ItemData("Battle Items", 0xEB0098, ItemClassification.filler, 0),
"Stag Beetle": ItemData("Battle Items", 0xEB0099, ItemClassification.filler, 0),
"Toothbrush": ItemData("Battle Items", 0xEB009A, ItemClassification.filler, 0),
"Handbag Strap": ItemData("Battle Items", 0xEB009B, ItemClassification.filler, 0),
"Pharaoh's Curse": ItemData("Battle Items", 0xEB009C, ItemClassification.filler, 0),
"Defense Shower": ItemData("Battle Items", 0xEB009D, ItemClassification.useful, 0),
"UFO Engine": ItemData("Key Items", 0xEB009E, ItemClassification.progression),
"Sudden Guts Pill": ItemData("Battle Items", 0xEB009F, ItemClassification.useful, 0),
"Bag of Dragonite": ItemData("Battle Items", 0xEB00A0, ItemClassification.useful, 0),
"Defense Spray": ItemData("Battle Items", 0xEB00A1, ItemClassification.filler, 0),
"Piggy Nose": ItemData("Key Items", 0xEB00A2, ItemClassification.progression),
"For Sale Sign": ItemData("Field Items", 0xEB00A3, ItemClassification.filler),
"Shyness Book": ItemData("Key Items", 0xEB00A4, ItemClassification.progression),
"Picture Postcard": ItemData("Field Items", 0xEB00A5, ItemClassification.filler, 0),
"King Banana": ItemData("Key Items", 0xEB00A6, ItemClassification.progression),
"Letter For Tony": ItemData("Key Items", 0xEB00A7, ItemClassification.progression),
"Chick": ItemData("Field Items", 0xEB00A8, ItemClassification.filler, 0),
"Chicken": ItemData("Field Items", 0xEB00A9, ItemClassification.filler, 0),
"Key to the Shack": ItemData("Key Items", 0xEB00AA, ItemClassification.progression),
"Key to the Cabin": ItemData("Key Items", 0xEB00AB, ItemClassification.progression),
"Bad Key Machine": ItemData("Key Items", 0xEB00AC, ItemClassification.progression),
# "Archipelago Item": ItemData("Key Items", 0xEB00AD, ItemClassification.progression, 0),
"Zombie Paper": ItemData("Key Items", 0xEB00AE, ItemClassification.progression),
"Hawk Eye": ItemData("Key Items", 0xEB00AF, ItemClassification.progression),
"Bicycle": ItemData("Key Items", 0xEB00B0, ItemClassification.useful),
"ATM Card": ItemData("Key Items", 0xEB00B1, ItemClassification.progression, 0),
"Show Ticket": ItemData("Key Items", 0xEB00B2, ItemClassification.filler, 0),
"Tenda Lavapants": ItemData("Key Items", 0xEB00B3, ItemClassification.progression), # Progressive Bat
"Wad of Bills": ItemData("Key Items", 0xEB00B4, ItemClassification.progression),
"Warp Pad": ItemData("Key Items", 0xEB00B5, ItemClassification.progression, 0),
"Diamond": ItemData("Key Items", 0xEB00B6, ItemClassification.progression),
"Signed Banana": ItemData("Key Items", 0xEB00B7, ItemClassification.progression),
"Pencil Eraser": ItemData("Key Items", 0xEB00B8, ItemClassification.progression),
"Hieroglyph Copy": ItemData("Key Items", 0xEB00B9, ItemClassification.progression),
"Meteotite": ItemData("Field Items", 0xEB00BA, ItemClassification.useful, 0),
"Contact Lens": ItemData("Key Items", 0xEB00BB, ItemClassification.progression),
"Hand-Aid": ItemData("Food", 0xEB00BC, ItemClassification.useful),
"Trout Yogurt": ItemData("Food", 0xEB00BD, ItemClassification.filler, 0),
"Banana": ItemData("Food", 0xEB00BE, ItemClassification.filler, 0),
"Calorie Stick": ItemData("Food", 0xEB00BF, ItemClassification.filler, 0),
"Key to the Tower": ItemData("Key Items", 0xEB00C0, ItemClassification.progression),
"Meteorite Piece": ItemData("Key Items", 0xEB00C1, ItemClassification.progression),
"Earth Pendant": ItemData("Body Equipment", 0xEB00C2, ItemClassification.useful, 0),
"Neutralizer": ItemData("Jeff Items", 0xEB00C3, ItemClassification.useful),
"Sound Stone": ItemData("Key Items", 0xEB00C4, ItemClassification.progression, 0),
"Exit Mouse": ItemData("Key Items", 0xEB00C5, ItemClassification.useful, 0),
"Gelato de Resort": ItemData("Food", 0xEB00C6, ItemClassification.filler, 0),
"Snake": ItemData("Battle Items", 0xEB00C7, ItemClassification.filler, 0),
"Viper": ItemData("Battle Items", 0xEB00C8, ItemClassification.filler, 0),
"Brain Stone": ItemData("Battle Items", 0xEB00C9, ItemClassification.filler),
"Police Badge": ItemData("Key Items", 0xEB00CA, ItemClassification.progression),
"Mining Permit": ItemData("Key Items", 0xEB00CB, ItemClassification.progression),
"Suporma": ItemData("Field Items", 0xEB00CC, ItemClassification.trap),
"Key to the Locker": ItemData("Key Items", 0xEB00CD, ItemClassification.progression),
"Insignificant Item": ItemData("Key Items", 0xEB00CE, ItemClassification.progression),
"Magic Tart": ItemData("Food", 0xEB00CF, ItemClassification.useful, 0),
"Tiny Ruby": ItemData("Key Items", 0xEB00D0, ItemClassification.progression),
"Monkey's Love": ItemData("Battle Items", 0xEB00D1, ItemClassification.useful),
"Eraser Eraser": ItemData("Key Items", 0xEB00D2, ItemClassification.progression),
"Tendakraut": ItemData("Key Items", 0xEB00D3, ItemClassification.progression),
"T-Rex's Bat": ItemData("Ness Weapons", 0xEB00D4, ItemClassification.useful, 0),
# "Big League Bat": ItemData("Ness Weapons", 0xEB0016, ItemClassification.useful, 0), Summers copy
"Ultimate Bat": ItemData("Ness Weapons", 0xEB00D6, ItemClassification.useful, 0),
"Double Beam": ItemData("Jeff Weapons", 0xEB00D7, ItemClassification.useful, 0),
# "Platinum Band": ItemData("Arm Equipment", 0xEB00D8, ItemClassification.useful, 0), Summers copy
# "Diamond Band": ItemData("Arm Equipment", 0xEB00D9, ItemClassification.useful, 0), Summers Copy
"Defense Ribbon": ItemData("Ribbons", 0xEB00DA, ItemClassification.useful, 0),
"Talisman Ribbon": ItemData("Ribbons", 0xEB00DB, ItemClassification.useful),
"Saturn Ribbon": ItemData("Ribbons", 0xEB00DC, ItemClassification.useful),
"Coin of Silence": ItemData("Other Equipment", 0xEB00DD, ItemClassification.useful, 0),
"Charm Coin": ItemData("Other Equipment", 0xEB00DE, ItemClassification.useful, 0),
"Cup of Noodles": ItemData("Food", 0xEB00DF, ItemClassification.filler, 0),
"Repel Sandwich": ItemData("Food", 0xEB00E0, ItemClassification.useful, 0),
"Repel Superwich": ItemData("Food", 0xEB00E1, ItemClassification.useful, 0),
"Lucky Sandwich": ItemData("Food", 0xEB00E2, ItemClassification.useful, 0),
"Progressive Bat": ItemData("Progressive Equipment", 0xEB00E3, ItemClassification.useful, 0),
"Progressive Fry Pan": ItemData("Progressive Equipment", 0xEB00E4, ItemClassification.useful, 0),
"Progressive Gun": ItemData("Progressive Equipment", 0xEB00E5, ItemClassification.useful, 0),
"Progressive Bracelet": ItemData("Progressive Equipment", 0xEB00E6, ItemClassification.useful, 0),
"Progressive Other": ItemData("Progressive Equipment", 0xEB00E7, ItemClassification.useful, 0),
"Cup of Coffee": ItemData("Food", 0xEB00E8, ItemClassification.filler, 0),
"Double Burger": ItemData("Food", 0xEB00E9, ItemClassification.filler, 0),
"Peanut Cheese Bar": ItemData("Food", 0xEB00EA, ItemClassification.filler, 0),
"Piggy Jelly": ItemData("Food", 0xEB00EB, ItemClassification.filler, 0),
"Bowl of Rice Gruel": ItemData("Food", 0xEB00EC, ItemClassification.filler, 0),
"Bean Croquette": ItemData("Food", 0xEB00ED, ItemClassification.filler, 0),
"Molokheiya Soup": ItemData("Food", 0xEB00EE, ItemClassification.filler, 0),
"Plain Roll": ItemData("Food", 0xEB00EF, ItemClassification.filler, 0),
"Kabob": ItemData("Food", 0xEB00F0, ItemClassification.filler, 0),
"Plain Yogurt": ItemData("Food", 0xEB00F1, ItemClassification.filler, 0),
"Beef Jerky": ItemData("Food", 0xEB00F2, ItemClassification.filler, 0),
"Mammoth Burger": ItemData("Food", 0xEB00F3, ItemClassification.filler, 0),
"Spicy Jerky": ItemData("Food", 0xEB00F4, ItemClassification.filler, 0),
"Luxury Jerky": ItemData("Food", 0xEB00F5, ItemClassification.filler, 0),
"Bottle of DXwater": ItemData("Food", 0xEB00F6, ItemClassification.useful, 0),
"Magic Pudding": ItemData("Food", 0xEB00F7, ItemClassification.useful, 0),
"Non-Stick Frypan": ItemData("Paula Weapons", 0xEB00F8, ItemClassification.useful, 0),
"Mr. Saturn Coin": ItemData("Other Equipment", 0xEB00F9, ItemClassification.useful),
"Meteornium": ItemData("Field Items", 0xEB00FA, ItemClassification.useful, 0),
"Popsicle": ItemData("Food", 0xEB00FB, ItemClassification.filler, 0),
"Cup of Lifenoodles": ItemData("Status Heal", 0xEB00FC, ItemClassification.useful, 0),
"Carrot Key": ItemData("Key Items", 0xEB00FD, ItemClassification.progression),
"Onett Teleport": ItemData("PSI", 0xEB00FE, ItemClassification.progression),
"Twoson Teleport": ItemData("PSI", 0xEB00FF, ItemClassification.progression),
"Happy-Happy Village Teleport": ItemData("PSI", 0xEB0100, ItemClassification.progression),
"Threed Teleport": ItemData("PSI", 0xEB0101, ItemClassification.progression),
"Saturn Valley Teleport": ItemData("PSI", 0xEB0102, ItemClassification.progression),
"Dusty Dunes Teleport": ItemData("PSI", 0xEB0103, ItemClassification.progression),
"Fourside Teleport": ItemData("PSI", 0xEB0104, ItemClassification.progression),
"Winters Teleport": ItemData("PSI", 0xEB0105, ItemClassification.progression),
"Summers Teleport": ItemData("PSI", 0xEB0106, ItemClassification.progression),
"Scaraba Teleport": ItemData("PSI", 0xEB0107, ItemClassification.progression),
"Dalaam Teleport": ItemData("PSI", 0xEB0108, ItemClassification.progression),
"Deep Darkness Teleport": ItemData("PSI", 0xEB0109, ItemClassification.progression),
"Tenda Village Teleport": ItemData("PSI", 0xEB010A, ItemClassification.progression),
"Lost Underworld Teleport": ItemData("PSI", 0xEB010B, ItemClassification.progression),
"Progressive Poo PSI": ItemData("PSI", 0xEB010C, ItemClassification.useful, 2),
"Magicant Teleport": ItemData("PSI", 0xEB010D, ItemClassification.progression),
"Paula": ItemData("Characters", 0xEB010E, ItemClassification.progression),
"Jeff": ItemData("Characters", 0xEB010F, ItemClassification.progression),
"Poo": ItemData("Characters", 0xEB0110, ItemClassification.progression),
"Flying Man": ItemData("Characters", 0xEB0111, ItemClassification.useful),
"Ness": ItemData("Characters", 0xEB0112, ItemClassification.progression),
"Photograph": ItemData("Photos", 0xEB0113, ItemClassification.trap, 0),
"$10": ItemData("Money", 0xEB0114, ItemClassification.filler, 0),
"$100": ItemData("Money", 0xEB0115, ItemClassification.filler, 0),
"$1000": ItemData("Money", 0xEB0116, ItemClassification.useful, 0),
'Threed Tunnels Clear': ItemData('Events', None, ItemClassification.progression, 0),
'Submarine to Deep Darkness': ItemData('Events', None, ItemClassification.progression, 0),
'Melody': ItemData('Events', None, ItemClassification.progression, 0),
'Saved Earth': ItemData('Events', None, ItemClassification.progression, 0),
"Power of the Earth": ItemData("Events", None, ItemClassification.progression, 0),
"Alternate Goal": ItemData("Events", None, ItemClassification.useful, 0),
"Valley Bridge Repair": ItemData("Events", None, ItemClassification.progression, 0),
"Magicant Unlock": ItemData("Events", None, ItemClassification.progression, 0),
"ATM Access": ItemData("Events", None, ItemClassification.progression, 0)
}
def get_item_names_per_category() -> Dict[str, Set[str]]:
categories: Dict[str, Set[str]] = {}
for name, data in item_table.items():
if data.category != "Events":
categories.setdefault(data.category, set()).add(name)
return categories