update
This commit is contained in:
19
.planer/einheiten/backend__tft__sim__pool.py.md
Normal file
19
.planer/einheiten/backend__tft__sim__pool.py.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Einheiten: backend/tft/sim/pool.py
|
||||
stand: f41ac76b5789
|
||||
|
||||
## 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:
|
||||
Reference in New Issue
Block a user