191 lines
12 KiB
Python
191 lines
12 KiB
Python
import typing
|
|
|
|
from BaseClasses import Item, ItemClassification
|
|
|
|
|
|
class ItemData(typing.NamedTuple):
|
|
code: int
|
|
itemName: str
|
|
classification: ItemClassification
|
|
itemID: int
|
|
|
|
|
|
class MLSSItem(Item):
|
|
game: str = "Mario & Luigi Superstar Saga"
|
|
|
|
|
|
itemList: typing.List[ItemData] = [
|
|
ItemData(77771000, "5 Coins", ItemClassification.filler, 0x4),
|
|
ItemData(77771001, "Mushroom", ItemClassification.filler, 0xA),
|
|
ItemData(77771002, "Super Mushroom", ItemClassification.filler, 0xB),
|
|
ItemData(77771003, "Ultra Mushroom", ItemClassification.filler, 0xC),
|
|
ItemData(77771004, "Max Mushroom", ItemClassification.filler, 0xD),
|
|
ItemData(77771005, "Nuts", ItemClassification.filler, 0xE),
|
|
ItemData(77771006, "Super Nuts", ItemClassification.filler, 0xF),
|
|
ItemData(77771007, "Ultra Nuts", ItemClassification.useful, 0x10),
|
|
ItemData(77771008, "Max Nuts", ItemClassification.useful, 0x11),
|
|
ItemData(77771009, "Syrup", ItemClassification.filler, 0x12),
|
|
ItemData(77771010, "Super Syrup", ItemClassification.filler, 0x13),
|
|
ItemData(77771011, "Ultra Syrup", ItemClassification.useful, 0x14),
|
|
ItemData(77771012, "Max Syrup", ItemClassification.useful, 0x15),
|
|
ItemData(77771013, "1-UP Mushroom", ItemClassification.useful, 0x16),
|
|
ItemData(77771014, "1-UP Super", ItemClassification.useful, 0x17),
|
|
ItemData(77771015, "Golden Mushroom", ItemClassification.useful, 0x18),
|
|
ItemData(77771016, "Refreshing Herb", ItemClassification.filler, 0x19),
|
|
ItemData(77771017, "Red Pepper", ItemClassification.useful, 0x1A),
|
|
ItemData(77771018, "Green Pepper", ItemClassification.useful, 0x1B),
|
|
ItemData(77771019, "Hoo Bean", ItemClassification.filler, 0x1D),
|
|
ItemData(77771020, "Chuckle Bean", ItemClassification.filler, 0x1E),
|
|
ItemData(77771021, "Woohoo Blend", ItemClassification.useful, 0x20),
|
|
ItemData(77771022, "Hoohoo Blend", ItemClassification.useful, 0x21),
|
|
ItemData(77771023, "Chuckle Blend", ItemClassification.useful, 0x22),
|
|
ItemData(77771024, "Teehee Blend", ItemClassification.useful, 0x23),
|
|
ItemData(77771025, "Hoolumbian", ItemClassification.useful, 0x24),
|
|
ItemData(77771026, "Chuckoccino", ItemClassification.useful, 0x25),
|
|
ItemData(77771027, "Teeheespresso", ItemClassification.useful, 0x26),
|
|
ItemData(77771028, "Peasley's Rose", ItemClassification.progression, 0x31),
|
|
ItemData(77771029, "Beanbean Brooch", ItemClassification.progression, 0x32),
|
|
ItemData(77771030, "Red Goblet", ItemClassification.progression, 0x33),
|
|
ItemData(77771031, "Green Goblet", ItemClassification.progression, 0x34),
|
|
ItemData(77771032, "Red Chuckola Fruit", ItemClassification.progression, 0x35),
|
|
ItemData(77771033, "White Chuckola Fruit", ItemClassification.progression, 0x36),
|
|
ItemData(77771034, "Purple Chuckola Fruit", ItemClassification.progression, 0x37),
|
|
ItemData(77771035, "Hammers", ItemClassification.progression, 0x38),
|
|
ItemData(77771036, "Firebrand", ItemClassification.progression, 0x39),
|
|
ItemData(77771037, "Thunderhand", ItemClassification.progression, 0x3A),
|
|
ItemData(77771038, "Membership Card", ItemClassification.progression, 0x40),
|
|
ItemData(77771039, "Winkle Card", ItemClassification.progression, 0x41),
|
|
ItemData(77771040, "Peach's Extra Dress", ItemClassification.progression, 0x42),
|
|
ItemData(77771041, "Fake Beanstar", ItemClassification.progression, 0x43),
|
|
ItemData(77771042, "Red Pearl Bean", ItemClassification.progression, 0x45),
|
|
ItemData(77771043, "Green Pearl Bean", ItemClassification.progression, 0x46),
|
|
ItemData(77771044, "Bean Fruit 1", ItemClassification.progression_skip_balancing, 0x47),
|
|
ItemData(77771045, "Bean Fruit 2", ItemClassification.progression_skip_balancing, 0x50),
|
|
ItemData(77771046, "Bean Fruit 3", ItemClassification.progression_skip_balancing, 0x51),
|
|
ItemData(77771047, "Bean Fruit 4", ItemClassification.progression_skip_balancing, 0x52),
|
|
ItemData(77771048, "Bean Fruit 5", ItemClassification.progression_skip_balancing, 0x53),
|
|
ItemData(77771049, "Bean Fruit 6", ItemClassification.progression_skip_balancing, 0x54),
|
|
ItemData(77771050, "Bean Fruit 7", ItemClassification.progression_skip_balancing, 0x55),
|
|
ItemData(77771051, "Blue Neon Egg", ItemClassification.progression, 0x56),
|
|
ItemData(77771052, "Red Neon Egg", ItemClassification.progression, 0x57),
|
|
ItemData(77771053, "Green Neon Egg", ItemClassification.progression, 0x60),
|
|
ItemData(77771054, "Yellow Neon Egg", ItemClassification.progression, 0x61),
|
|
ItemData(77771055, "Purple Neon Egg", ItemClassification.progression, 0x62),
|
|
ItemData(77771056, "Orange Neon Egg", ItemClassification.progression, 0x63),
|
|
ItemData(77771057, "Azure Neon Egg", ItemClassification.progression, 0x64),
|
|
ItemData(77771058, "Beanstar Piece 1", ItemClassification.progression, 0x65),
|
|
ItemData(77771059, "Beanstar Piece 2", ItemClassification.progression, 0x66),
|
|
ItemData(77771060, "Beanstar Piece 3", ItemClassification.progression, 0x67),
|
|
ItemData(77771061, "Beanstar Piece 4", ItemClassification.progression, 0x70),
|
|
ItemData(77771062, "Spangle", ItemClassification.progression, 0x72),
|
|
ItemData(77771063, "Beanlet 1", ItemClassification.filler, 0x73),
|
|
ItemData(77771064, "Beanlet 2", ItemClassification.filler, 0x74),
|
|
ItemData(77771065, "Beanlet 3", ItemClassification.filler, 0x75),
|
|
ItemData(77771066, "Beanlet 4", ItemClassification.filler, 0x76),
|
|
ItemData(77771067, "Beanlet 5", ItemClassification.filler, 0x77),
|
|
ItemData(77771068, "Beanstone 1", ItemClassification.filler, 0x80),
|
|
ItemData(77771069, "Beanstone 2", ItemClassification.filler, 0x81),
|
|
ItemData(77771070, "Beanstone 3", ItemClassification.filler, 0x82),
|
|
ItemData(77771071, "Beanstone 4", ItemClassification.filler, 0x83),
|
|
ItemData(77771072, "Beanstone 5", ItemClassification.filler, 0x84),
|
|
ItemData(77771073, "Beanstone 6", ItemClassification.filler, 0x85),
|
|
ItemData(77771074, "Beanstone 7", ItemClassification.filler, 0x86),
|
|
ItemData(77771075, "Beanstone 8", ItemClassification.filler, 0x87),
|
|
ItemData(77771076, "Beanstone 9", ItemClassification.filler, 0x90),
|
|
ItemData(77771077, "Beanstone 10", ItemClassification.filler, 0x91),
|
|
ItemData(77771078, "Secret Scroll 1", ItemClassification.useful, 0x92),
|
|
ItemData(77771079, "Secret Scroll 2", ItemClassification.useful, 0x93),
|
|
ItemData(77771080, "Castle Badge", ItemClassification.useful, 0x9F),
|
|
ItemData(77771081, "Pea Badge", ItemClassification.useful, 0xA0),
|
|
ItemData(77771082, "Bean B. Badge", ItemClassification.useful, 0xA1),
|
|
ItemData(77771083, "Counter Badge", ItemClassification.useful, 0xA2),
|
|
ItemData(77771084, "Charity Badge", ItemClassification.useful, 0xA3),
|
|
ItemData(77771085, "Bros. Badge", ItemClassification.useful, 0xA4),
|
|
ItemData(77771086, "Miracle Badge", ItemClassification.useful, 0xA5),
|
|
ItemData(77771087, "Ohoracle Badge", ItemClassification.useful, 0xA6),
|
|
ItemData(77771088, "Mush Badge", ItemClassification.useful, 0xA7),
|
|
ItemData(77771089, "Mari-Lui Badge", ItemClassification.useful, 0xA8),
|
|
ItemData(77771090, "Muscle Badge", ItemClassification.useful, 0xA9),
|
|
ItemData(77771091, "Spiny Badge AA", ItemClassification.useful, 0xAA),
|
|
ItemData(77771092, "Mush Badge A", ItemClassification.useful, 0xAB),
|
|
ItemData(77771093, "Grab Badge", ItemClassification.useful, 0xAC),
|
|
ItemData(77771094, "Mush Badge AA", ItemClassification.useful, 0xAD),
|
|
ItemData(77771095, "Power Badge", ItemClassification.useful, 0xAE),
|
|
ItemData(77771096, "Wonder Badge", ItemClassification.useful, 0xAF),
|
|
ItemData(77771097, "Beauty Badge", ItemClassification.useful, 0xB0),
|
|
ItemData(77771098, "Salvage Badge", ItemClassification.useful, 0xB1),
|
|
ItemData(77771099, "Oh-Pah Badge", ItemClassification.useful, 0xB2),
|
|
ItemData(77771100, "Brilliant Badge", ItemClassification.useful, 0xB3),
|
|
ItemData(77771101, "Sarge Badge", ItemClassification.useful, 0xB4),
|
|
ItemData(77771102, "General Badge", ItemClassification.useful, 0xB5),
|
|
ItemData(77771103, "Tank Badge", ItemClassification.useful, 0xB6),
|
|
ItemData(77771104, "Bros. Rock", ItemClassification.useful, 0xBD),
|
|
ItemData(77771105, "Soulful Bros.", ItemClassification.useful, 0xC0),
|
|
ItemData(77771106, "High-End Badge", ItemClassification.useful, 0xC1),
|
|
ItemData(77771107, "Bean Pants", ItemClassification.useful, 0xCC),
|
|
ItemData(77771108, "Bean Trousers", ItemClassification.useful, 0xCD),
|
|
ItemData(77771109, "Blue Jeans", ItemClassification.useful, 0xCE),
|
|
ItemData(77771110, "Parasol Pants", ItemClassification.useful, 0xCF),
|
|
ItemData(77771111, "Hard Pants", ItemClassification.useful, 0xD0),
|
|
ItemData(77771112, "Heart Jeans", ItemClassification.useful, 0xD1),
|
|
ItemData(77771113, "Plaid Trousers", ItemClassification.useful, 0xD2),
|
|
ItemData(77771114, "#1 Trousers", ItemClassification.useful, 0xD3),
|
|
ItemData(77771115, "Safety Slacks", ItemClassification.useful, 0xD4),
|
|
ItemData(77771116, "Shroom Pants", ItemClassification.useful, 0xD5),
|
|
ItemData(77771117, "Shroom Bells", ItemClassification.useful, 0xD6),
|
|
ItemData(77771118, "Shroom Slacks", ItemClassification.useful, 0xD7),
|
|
ItemData(77771119, "Peachy Jeans", ItemClassification.useful, 0xD8),
|
|
ItemData(77771120, "Mushwin Pants", ItemClassification.useful, 0xD9),
|
|
ItemData(77771121, "Mushluck Pants", ItemClassification.useful, 0xDA),
|
|
ItemData(77771122, "Scandal Jeans", ItemClassification.useful, 0xDB),
|
|
ItemData(77771123, "Street Jeans", ItemClassification.useful, 0xDC),
|
|
ItemData(77771124, "Tropic Slacks", ItemClassification.useful, 0xDD),
|
|
ItemData(77771125, "Hermetic Pants", ItemClassification.useful, 0xDE),
|
|
ItemData(77771126, "Beanstar Pants", ItemClassification.useful, 0xDF),
|
|
ItemData(77771127, "Peasley Slacks", ItemClassification.useful, 0xE0),
|
|
ItemData(77771128, "Queen B. Jeans", ItemClassification.useful, 0xE1),
|
|
ItemData(77771129, "B. Brand Jeans", ItemClassification.useful, 0xE2),
|
|
ItemData(77771130, "Heart Slacks", ItemClassification.useful, 0xE3),
|
|
ItemData(77771131, "Casual Slacks", ItemClassification.useful, 0xE4),
|
|
ItemData(77771132, "Casual Coral", ItemClassification.useful, 0xEB),
|
|
ItemData(77771133, "Harhall's Pants", ItemClassification.useful, 0xF1),
|
|
ItemData(77771134, "Wool Trousers", ItemClassification.useful, 0xF3),
|
|
ItemData(77771135, "Iron Pants", ItemClassification.useful, 0xF7),
|
|
ItemData(77771136, "Greed Wallet", ItemClassification.useful, 0xF8),
|
|
ItemData(77771137, "Bonus Ring", ItemClassification.useful, 0xF9),
|
|
ItemData(77771138, "Excite Spring", ItemClassification.useful, 0xFA),
|
|
ItemData(77771139, "Great Force", ItemClassification.useful, 0xFB),
|
|
ItemData(77771140, "Power Grip", ItemClassification.useful, 0xFC),
|
|
ItemData(77771141, "Cobalt Necktie", ItemClassification.useful, 0xFD),
|
|
ItemData(77771142, "Game Boy Horror SP", ItemClassification.useful, 0xFE),
|
|
ItemData(77771143, "Woo Bean", ItemClassification.skip_balancing, 0x1C),
|
|
ItemData(77771144, "Hee Bean", ItemClassification.skip_balancing, 0x1F),
|
|
]
|
|
|
|
item_frequencies: typing.Dict[str, int] = {
|
|
"5 Coins": 40,
|
|
"Mushroom": 55,
|
|
"Super Mushroom": 15,
|
|
"Ultra Mushroom": 12,
|
|
"Nuts": 10,
|
|
"Super Nuts": 5,
|
|
"Ultra Nuts": 5,
|
|
"Max Nuts": 2,
|
|
"Syrup": 28,
|
|
"Super Syrup": 10,
|
|
"Ultra Syrup": 10,
|
|
"Max Syrup": 2,
|
|
"1-Up Mushroom": 15,
|
|
"1-Up Super": 5,
|
|
"Golden Mushroom": 3,
|
|
"Refreshing Herb": 9,
|
|
"Red Pepper": 2,
|
|
"Green Pepper": 2,
|
|
"Hoo Bean": 100,
|
|
"Chuckle Bean": 200,
|
|
"Hammers": 3,
|
|
}
|
|
|
|
item_table: typing.Dict[str, ItemData] = {item.itemName: item for item in itemList}
|
|
items_by_id: typing.Dict[int, ItemData] = {item.code: item for item in itemList}
|