# Battle Screen - TODO ## Phase 2: Grid System ### Frontend - [ ] `grid-overlay.tsx` - Verbessertes Grid-Rendering mit Snap-Preview - [ ] `grid-config-modal.tsx` - Grid konfigurieren (nur GM) - Grid-Größe anpassen (Spalten x Reihen) - Grid-Offset für vorgezeichnete Maps einstellen - Live-Preview beim Anpassen - Zellenfarbe und Transparenz - [ ] Snap-to-Grid beim Token-Platzieren - [ ] Grid Ein-/Ausblenden Toggle (bereits vorhanden, verbessern) --- ## Phase 3: Token Management ### Frontend - [ ] `add-pc-modal.tsx` - PCs aus Kampagne hinzufügen (mit Filter/Suche) - [ ] `add-npc-modal.tsx` - NPCs aus Templates hinzufügen - [ ] `create-combatant-modal.tsx` - Neues NPC-Template erstellen - Name, Level, HP, AC - Rettungswürfe (Fort, Ref, Will) - Wahrnehmung, Geschwindigkeit - Fähigkeiten mit Aktionskosten - Avatar-Upload - [ ] `token-detail-panel.tsx` - Seitenpanel für Token-Details - HP-Management (Schaden/Heilung) - Zustand hinzufügen/entfernen - Notizen - Statistiken anzeigen (für NPCs) - [ ] `initiative-tracker.tsx` - Initiativreihenfolge - Sortierte Liste aller Tokens - Aktueller Zug markiert - Nächster/Vorheriger Zug - Verzögern-Funktion ### Backend WebSocket Events - [ ] `token_conditions_changed` - Zustände aktualisiert - [ ] `turn_started` - Zug beginnt (für aktiven Token) - [ ] `delay_turn` - Zug verzögern --- ## Phase 4: Player View ### Frontend - [ ] `battle-player-view.tsx` - Route: `/campaigns/:id/battle/view` - Vollbild-Ansicht für Spieler (TV-Modus) - Read-only (keine Token-Manipulation) - Sync via gleicher WebSocket-Room - [ ] `battle-tv-window.tsx` - Pop-out Window Logik - "TV-Modus öffnen" Button - Separates Browser-Fenster - Automatische Größenanpassung ### Berechtigungen | Feature | GM View | Player View | |---------|---------|-------------| | Tokens bewegen | Ja | Nein | | PC HP sehen | Ja (Zahlen) | Ja (Zahlen) | | NPC HP sehen | Ja (Zahlen) | Nein (nur Blut-Effekt bei <20%) | | NPC-Stats sehen | Ja | Nein | | Initiative bearbeiten | Ja | Nein | | Grid konfigurieren | Ja | Nein | --- ## Phase 5: Polish & Erweiterte Features ### Drag & Drop - [ ] Touch-Support für mobile Geräte - [ ] Drag-Preview mit Zielzelle hervorheben - [ ] Multi-Select (Shift+Klick) - [ ] Mehrere Tokens gleichzeitig bewegen ### Visuelle Verbesserungen - [ ] Condition-Badges auf Tokens - Icon für häufige Zustände (Frightened, Slowed, etc.) - Anzahl bei gestuften Zuständen - [ ] Blut-Effekt bei niedrigen HP (<20%) - [ ] Token-Avatar anstatt Initialen (wenn vorhanden) - [ ] Verschiedene Token-Formen (rund, eckig) - [ ] Größen-Indikator für Large/Huge/Gargantuan ### Kampf-Tools - [ ] `combat-log.tsx` - Letzte Aktionen anzeigen - Token bewegt - Schaden erhalten - Zustand hinzugefügt - Initiative geändert - [ ] `measure-tool.tsx` - Entfernung messen - Klick & Drag für Linie - Entfernung in Fuß anzeigen - Diagonal-Bewegung nach PF2e-Regeln - [ ] `area-tool.tsx` - Flächeneffekte - Kegel, Linie, Emanation, Burst - Größe einstellen - Betroffene Felder hervorheben ### Map-Features - [ ] Fog of War (nur GM sieht alles) - [ ] Mehrere Ebenen (Untergrund, Obergeschoss) - [ ] Zoom & Pan - [ ] Map-Marker / Notizen --- ## Technische Verbesserungen ### Performance - [ ] Canvas-basiertes Rendering statt DOM für große Maps - [ ] Token-Position nur bei Release senden (nicht während Drag) - [ ] Lazy Loading für Token-Avatare ### Backend - [ ] Combat Log in Datenbank speichern - [ ] Battle Session Snapshots (Undo/Redo) - [ ] Automatisches Aufräumen inaktiver Sessions --- ## Prioritäten 1. **Hoch** - Grid Config Modal (Phase 2) 2. **Hoch** - Initiative Tracker (Phase 3) 3. **Hoch** - Player View / TV-Modus (Phase 4) 4. **Mittel** - Token Detail Panel mit HP-Management 5. **Mittel** - Condition Badges 6. **Mittel** - Combatant Template erstellen 7. **Niedrig** - Measure Tool 8. **Niedrig** - Combat Log 9. **Niedrig** - Fog of War