Files
tft/.planer/einheiten/backend__tft__model__baseline.py.md
2026-07-24 11:24:24 +02:00

1.6 KiB
Raw Blame History

Einheiten: backend/tft/model/baseline.py

stand: f41ac76b57

backend/tft/model/baseline.py::unit_value

beschreibung: Berechnet einen numerischen Einheitenwert aus Einkaufskosten und Stern-Aufstufung. input: cost (int) und stars (int) output: float-Wert gemäß cost · 3^(stars1) entscheidungen:

  • Höhere Sternstufen werden exponentiell gewichtet, nicht additiv. beleg: "cost * 3 ** (stars - 1)"
  • Die Berechnung ist rein deterministisch ohne Seiteneffekte. beleg: "def unit_value(cost: int, stars: int) -> float:"
  • Das Ergebnis skaliert mit den Kosten der Einheit. beleg: "return cost * 3 ** (stars - 1)" kanten:
  • wird-genutzt-von: backend/tft/model/baseline.py::classify_role

backend/tft/model/baseline.py::classify_role

beschreibung: Ordnet eine Einheit über ihr Rollenattribut (mit Statistik-Fallback) einer strategischen Rolle zu. input: unit (dict) mit mindestens den Schlüsseln "role" und "stats" output: eine der vier Rollenstrings frontline | ad_carry | ap_carry | utility entscheidungen:

  • Fehlende Rollen werden über das letzte Element zu frontline bzw. ad_carry aufgelöst. beleg: "return "frontline" if stats["range"] <= 1 else "ad_carry""
  • Treffererkennung erfolgt robust auf Teilstrings statt auf exakter Gleichheit. beleg: "if "tank" in role:"
  • Magische/AD-Rollen werden gegenüber dem Stat-Fallback bevorzugt geprüft. beleg: "if "caster" in role or "ap" in role:"
  • Die Normalisierung der Rolle erfolgt via lower() auf einen Default-leeren String. beleg: "(unit.get("role") or "").lower()" kanten:
  • wird-genutzt-von: backend/tft/model/baseline.py::unit_value