diff --git a/backend/tft/model/artifact.py b/backend/tft/model/artifact.py index 3a4aac8..c3b03af 100644 --- a/backend/tft/model/artifact.py +++ b/backend/tft/model/artifact.py @@ -35,12 +35,16 @@ def recipes(static_items: dict) -> dict: def component_pool(static_items: dict) -> list[str]: - """Die Basis-Komponenten — das, was Loot tatsächlich droppt.""" - return sorted({ - comp - for api in craftable_items(static_items) - for comp in static_items[api]["composition"] - }) + """Die Basis-Komponenten — das, was Loot tatsächlich droppt. + + Echte Komponenten stecken in vielen Rezepten; Sondervarianten + (z.B. CursedBlade) nur in einzelnen. + """ + counts: dict[str, int] = {} + for api in craftable_items(static_items): + for comp in static_items[api]["composition"]: + counts[comp] = counts.get(comp, 0) + 1 + return sorted(c for c, n in counts.items() if n >= 3) def tier_profiles(static: dict, roles: dict) -> dict: