from typing import NamedTuple from BaseClasses import Item, ItemClassification class SonicFrontiersItem(Item): game: str = "Sonic Frontiers" class SonicFrontiersItemData(NamedTuple): id: int item_class: ItemClassification = ItemClassification.progression offset: int = 101000 item_list = { "Kronos Memory Token": SonicFrontiersItemData(offset, ItemClassification.filler), "Kronos Portal Gear": SonicFrontiersItemData(offset + 1, ItemClassification.filler), "Kronos Vault Key": SonicFrontiersItemData(offset + 2, ItemClassification.progression), "Ares Memory Token": SonicFrontiersItemData(offset + 3, ItemClassification.filler), "Ares Portal Gear": SonicFrontiersItemData(offset + 4, ItemClassification.filler), "Ares Vault Key": SonicFrontiersItemData(offset + 5, ItemClassification.progression), "Chaos Memory Token": SonicFrontiersItemData(offset + 6, ItemClassification.filler), "Chaos Portal Gear": SonicFrontiersItemData(offset + 7, ItemClassification.filler), "Chaos Vault Key": SonicFrontiersItemData(offset + 8, ItemClassification.progression), "Ouranos Memory Token": SonicFrontiersItemData(offset + 9, ItemClassification.filler), "Ouranos Portal Gear": SonicFrontiersItemData(offset + 10, ItemClassification.filler), "Ouranos Vault Key": SonicFrontiersItemData(offset + 11, ItemClassification.progression), "Progressive Chaos Emerald": SonicFrontiersItemData(offset + 12, ItemClassification.progression), "Kronos Memory Treasure": SonicFrontiersItemData(offset + 36, ItemClassification.progression), "Ares Memory Treasure": SonicFrontiersItemData(offset + 37, ItemClassification.progression), "Chaos Memory Treasure": SonicFrontiersItemData(offset + 38, ItemClassification.progression), "Ouranos Memory Treasure": SonicFrontiersItemData(offset + 39, ItemClassification.progression), "Red Power Seed": SonicFrontiersItemData(offset + 40, ItemClassification.filler), "Blue Power Seed": SonicFrontiersItemData(offset + 41, ItemClassification.filler), "Nothing!": SonicFrontiersItemData(offset + 42, ItemClassification.filler), "Phantom Rush": SonicFrontiersItemData(offset + 43, ItemClassification.useful), "Air Trick":SonicFrontiersItemData(offset + 44, ItemClassification.useful), "Stomp Attack": SonicFrontiersItemData(offset + 45, ItemClassification.progression), "Quick Cyloop": SonicFrontiersItemData(offset + 46, ItemClassification.useful), "Spin Dash": SonicFrontiersItemData(offset + 47, ItemClassification.useful), "Sonic Boom": SonicFrontiersItemData(offset + 48, ItemClassification.useful), "Parry": SonicFrontiersItemData(offset + 49, ItemClassification.progression), "Homing Shot": SonicFrontiersItemData(offset + 50, ItemClassification.useful), "Spin Slash": SonicFrontiersItemData(offset + 51, ItemClassification.useful), "Recovery Smash": SonicFrontiersItemData(offset +52, ItemClassification.useful), "Cyclone Kick": SonicFrontiersItemData(offset + 53, ItemClassification.useful), "Cross Slash": SonicFrontiersItemData(offset + 54, ItemClassification.useful), "Grand Slam": SonicFrontiersItemData(offset + 55, ItemClassification.useful), "1-2 Unlocked": SonicFrontiersItemData(offset + 56,ItemClassification.progression), "1-3 Unlocked": SonicFrontiersItemData(offset + 57,ItemClassification.progression), "1-4 Unlocked": SonicFrontiersItemData(offset + 58,ItemClassification.progression), "1-5 Unlocked": SonicFrontiersItemData(offset + 59,ItemClassification.progression), "1-6 Unlocked": SonicFrontiersItemData(offset + 60,ItemClassification.progression), "1-7 Unlocked": SonicFrontiersItemData(offset + 61,ItemClassification.progression), "2-1 Unlocked": SonicFrontiersItemData(offset + 62,ItemClassification.progression), "2-2 Unlocked": SonicFrontiersItemData(offset + 63,ItemClassification.progression), "2-3 Unlocked": SonicFrontiersItemData(offset + 64,ItemClassification.progression), "2-4 Unlocked": SonicFrontiersItemData(offset + 65,ItemClassification.progression), "2-5 Unlocked": SonicFrontiersItemData(offset + 66,ItemClassification.progression), "2-6 Unlocked": SonicFrontiersItemData(offset + 67,ItemClassification.progression), "2-7 Unlocked": SonicFrontiersItemData(offset + 68,ItemClassification.progression), "3-1 Unlocked": SonicFrontiersItemData(offset + 69,ItemClassification.progression), "3-2 Unlocked": SonicFrontiersItemData(offset + 70,ItemClassification.progression), "3-3 Unlocked": SonicFrontiersItemData(offset + 71,ItemClassification.progression), "3-4 Unlocked": SonicFrontiersItemData(offset + 72,ItemClassification.progression), "3-5 Unlocked": SonicFrontiersItemData(offset + 73,ItemClassification.progression), "3-6 Unlocked": SonicFrontiersItemData(offset + 74,ItemClassification.progression), "3-7 Unlocked": SonicFrontiersItemData(offset + 75,ItemClassification.progression), "4-1 Unlocked": SonicFrontiersItemData(offset + 76,ItemClassification.progression), "4-2 Unlocked": SonicFrontiersItemData(offset + 78,ItemClassification.progression), "4-3 Unlocked": SonicFrontiersItemData(offset + 79,ItemClassification.progression), "4-4 Unlocked": SonicFrontiersItemData(offset + 80,ItemClassification.progression), "4-5 Unlocked": SonicFrontiersItemData(offset + 81,ItemClassification.progression), "4-6 Unlocked": SonicFrontiersItemData(offset + 82,ItemClassification.progression), "4-7 Unlocked": SonicFrontiersItemData(offset + 83,ItemClassification.progression), "4-8 Unlocked": SonicFrontiersItemData(offset + 84,ItemClassification.progression), "4-9 Unlocked": SonicFrontiersItemData(offset + 85,ItemClassification.progression), "Victory": SonicFrontiersItemData(offset + 86,ItemClassification.progression), } kronos_amount = { "Kronos Memory Treasure": 9, "Kronos Vault Key": 20, "Progressive Chaos Emerald": 6, "1-2 Unlocked" : 1, "1-3 Unlocked" : 1, "1-4 Unlocked" : 1, "1-5 Unlocked" : 1, "1-6 Unlocked" : 1, "1-7 Unlocked" : 1, "Phantom Rush": 1, "Air Trick": 1, "Stomp Attack": 1, "Quick Cyloop": 1, "Spin Dash": 1, "Sonic Boom": 1, "Parry": 1, "Homing Shot": 1, "Spin Slash": 1, "Recovery Smash": 1, "Cyclone Kick": 1, "Cross Slash": 1, "Grand Slam": 1, } ares_amount = { "Ares Memory Treasure": 32, "Ares Vault Key": 24, "Progressive Chaos Emerald": 6, "2-1 Unlocked" : 1, "2-2 Unlocked" : 1, "2-3 Unlocked" : 1, "2-4 Unlocked" : 1, "2-5 Unlocked" : 1, "2-6 Unlocked" : 1, "2-7 Unlocked" : 1, } chaos_amount = { "Chaos Memory Treasure": 20, "Chaos Vault Key": 25, "Progressive Chaos Emerald": 6, "3-1 Unlocked" : 1, "3-2 Unlocked" : 1, "3-3 Unlocked" : 1, "3-4 Unlocked" : 1, "3-5 Unlocked" : 1, "3-6 Unlocked" : 1, "3-7 Unlocked" : 1, } ouranos_amount = { "4-1 Unlocked" : 1, "4-2 Unlocked" : 1, "4-3 Unlocked" : 1, "4-4 Unlocked" : 1, "4-5 Unlocked" : 1, "4-6 Unlocked" : 1, "4-7 Unlocked" : 1, "4-8 Unlocked" : 1, "4-9 Unlocked" : 1, "Ouranos Memory Treasure": 26, "Ouranos Vault Key": 33, "Progressive Chaos Emerald": 6, } fillers = { "Red Power Seed": 15, "Blue Power Seed": 15, "Nothing!": 10, "Kronos Portal Gear": 5, "Kronos Vault Key": 5, "Ares Portal Gear": 4, "Ares Vault Key": 4, "Chaos Vault Key": 3, "Chaos Portal Gear": 3, "Ouranos Portal Gear": 2, "Ouranos Vault Key": 2, } # #traps = { # "Water", # "Timescale";