from typing import Dict, Set, NamedTuple from .ExtractedData import items, logic_items, item_effects item_table = {} class HKItemData(NamedTuple): advancement: bool id: int type: str for i, (item_name, item_type) in enumerate(items.items(), start=0x1000000): item_table[item_name] = HKItemData(advancement=item_name in logic_items or item_name in item_effects, id=i, type=item_type) lookup_id_to_name: Dict[int, str] = {data.id: item_name for item_name, data in item_table.items()} lookup_type_to_names: Dict[str, Set[str]] = {} for item, item_data in item_table.items(): lookup_type_to_names.setdefault(item_data.type, set()).add(item) item_name_groups = {group: lookup_type_to_names[group] for group in ("Skill", "Charm", "Mask", "Vessel", "Relic", "Root", "Map", "Stag", "Cocoon", "Soul", "DreamWarrior", "DreamBoss")}