Files
planer2/daten/TFT/spiel.md
2026-07-29 15:19:41 +02:00

99 lines
2.9 KiB
Markdown

<!-- titel -->
Spiel
----------------------------------------
<!-- art -->
kern
----------------------------------------
<!-- ziel -->
Simuliert einen vollständigen TFT-Spielzug mit Gegnern, Shop und Kampf
----------------------------------------
<!-- regeln -->
- game_id ist 8-stelliger Hex-String
- Board enthält Einheiten mit Items
- Shop enthält Odds und Kosten
- XP zeigt Fortschritt zum Levelaufstieg
- Augment-Angebot erscheint in passenden Runden
- Kampf endet automatisch mit Zustandsänderungen bei allen Beteiligten
- Spieler HP auf 0
- Letzte Runde vorbei
- buy_xp als Aktion
- pick_augment als Aktion
- lock als Aktion
- next als Aktion
- Augment-Auswahl zeigt gewählte Augmente
- Shop zeigt Upgrade-Hinweis für 2- und 3-Sterneinheit
- Spielstand enthält reroll_cost und xp_cost
- Spielstand enthält shop_locked und shop_odds
- Spielstand enthält xp und xp_needed
- Spielstand enthält streak
- Spielstand enthält Log der letzten 8 Einträge
- Spielstand enthält placement
- autoplay als eigene Funktion
----------------------------------------
<!-- funktion -->
Gegner einblenden
<!-- ziel -->
Blickt in die Board-Aufstellung eines Gegners
<!-- regeln -->
- Nur für Nicht-Spieler
- Gegner muss lebendig sein
- Gegner braucht Einheiten auf dem Board
<!-- testen -->
- LMB auf lebenden Gegner
- Scout-Bereich mit Einheiten-Icon erscheint
- Erneuter Klick blendet Scout aus
----------------------------------------
<!-- funktion -->
Runde fortsetzen
<!-- ziel -->
Wechselt zur nächsten Spielphase oder löst den Kampf aus
<!-- regeln -->
- Nächste Phase einleiten
- Kampf ▶ im PvP-Modus auslösen
<!-- testen -->
- Kampf-Button klicken
- Spielzustand fortgeschritten
----------------------------------------
<!-- funktion -->
Spiel starten
<!-- ziel -->
Beginnt ein neues Spiel mit initialem Spielstand
<!-- regeln -->
- Generiert eindeutige game_id
- Lädt statische Spieldaten
- Initialisiert Spieler und Bots
- Antwortet mit vollständigem Spielstand
<!-- testen -->
- LMB auf "Neues Spiel"
- Anfrage an Backend abwarten
- Splash-Bildschirm verschwindet, Spiel-Layout erscheint
----------------------------------------
<!-- funktion -->
Spielaktion ausführen
<!-- ziel -->
Führt Aktionen wie Kaufen, Verkaufen und Bewegen im Spiel aus
<!-- regeln -->
- 404 bei unbekannter Spiel-ID
- 400 bei unbekannter Aktion
- 400 bei ungültiger Aktion
- 400 bei fehlenden Parametern
<!-- testen -->
- POST an Spielaktion-Endpunkt mit action=buy und slot=0
- 200 miterialisierter Spielstand zurück
- Aktion ungültig → 400 mit Fehlermeldung
----------------------------------------
<!-- funktion -->
Spiele automatisch spielen
----------------------------------------
<!-- funktion -->
Spielstand abrufen
<!-- ziel -->
Gibt den aktuellen Spielstand als JSON zurück
<!-- regeln -->
- Unbekannte game_id wirft HTTP 404
<!-- testen -->
- GET auf ungültige game_id
- HTTP 404 mit Fehlermeldung
- GET auf gültige game_id
- HTTP 200 mit Spielstand