99 lines
2.9 KiB
Markdown
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
|