feat: Add GM library for battle maps and NPC templates
All checks were successful
Deploy Dimension47 / deploy (push) Successful in 35s
All checks were successful
Deploy Dimension47 / deploy (push) Successful in 35s
- Add library page with tabs for maps and combatants - Create map upload modal with grid configuration - Create NPC/monster template modal with abilities - Add library link to campaign page (GM only) - Add battle feature TODO documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
134
docs/BATTLE_TODO.md
Normal file
134
docs/BATTLE_TODO.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user