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

1.2 KiB

Einheiten: backend/tft/sim/pool.py

stand: f41ac76b57

backend/tft/sim/pool.py::Pool

beschreibung: Verwaltet einen endlichen Vorrat pro Champion-API-Einheit und regelt Entnahme sowie Rückgabe. input: Konstruktor erhält ein Mapping von API-Namen zu Einheitendaten sowie eine Liste von Größen je Kostenstufe; Methoden nehmen API-Namen und Mengen entgegen. output: Aktueller verfügbarer Bestand je Einheit, eine Liste lebender Einheiten eines bestimmten Kostens, sowie ein mutierter Vorrat nach Entnahme oder Rückgabe. entscheidungen:

  • Einheiten ohne gültige Kostenstufe (1 bis len(sizes)) werden aus dem Vorrat ausgeschlossen. beleg: "if 1 <= u["cost"] <= len(sizes)"
  • Die Kosten jedes API-Namens werden in einem separaten Mapping gehalten, um günstig nach Kosten zu filtern. beleg: "self.cost_of = {api: u["cost"] for api, u in static_units.items()}"
  • Eine Einheit gilt nur dann als verfügbar, wenn sie noch nicht aufgebraucht ist. beleg: "self.copies[a] > 0"
  • Eine Entnahme über den aktuellen Bestand hinaus wird als Fehler signalisiert. beleg: "raise ValueError(f"pool exhausted for {api_name}")"
  • Nicht im Vorrat enthaltene API-Namen werden bei Anfragen als null verfügbar behandelt. beleg: "return self.copies.get(api_name, 0)" kanten: