Skip to content

Commit 3fee00e

Browse files
committed
release: v1.4.5 – improved strike logic, UI fixes, footer links
1 parent b62f792 commit 3fee00e

16 files changed

Lines changed: 9195 additions & 9 deletions
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
# Changelog – One Chance
2+
3+
Alle relevanten Änderungen am Projekt werden hier dokumentiert.
4+
Format: [Semantische Versionierung](https://semver.org/lang/de/) `vMAJOR.MINOR.PATCH`
5+
6+
---
7+
8+
## [v1.4.4] – 2026-03-11
9+
10+
### Neu
11+
12+
- **Groß-/Kleinschreibung bei Duplikaten**: „Schatten" und „SCHATTEN" werden jetzt als identisch erkannt und beide gestrichen
13+
- **Geheimwort-Treffer automatisch streichen**: Hinweise die das gesuchte Wort enthalten (z.B. „Kuchen" bei Gesucht: „Käsekuchen") oder im Geheimwort enthalten sind werden animiert gestrichen und nicht an den Rater weitergegeben
14+
15+
---
16+
17+
## [v1.4.3] – 2026-03-11
18+
19+
### Neu
20+
21+
- **Lobby/Spiel verlassen** für Spieler & Zuschauer: „↩ Verlassen"-Button erscheint floating auf allen Spielscreens sowie als fixer Button im Lobby-Screen
22+
- **In der Lobby**: direkt verlassen ohne Bestätigung – im laufenden Spiel kurze Bestätigung
23+
- **Tippgeber verlässt Clue-Phase**: sein Hinweis wird gelöscht, Zähler neu geprüft – die Gruppe wartet nicht mehr auf ihn
24+
- **Rater verlässt laufendes Spiel**: alle Clients werden automatisch zurück in die Lobby gesetzt (Toast: „🚶 Der Rater hat die Lobby verlassen")
25+
26+
### Fixes
27+
28+
- **Moderator zählt nicht zum Spielerlimit**: Limit-Check, Lobby-Zähler und Start-Button schließen den Mod korrekt aus
29+
- **Mod-Review springt nicht an**: Wortgeber-Zähler schloss den Moderator nicht aus – nun korrekt gefiltert
30+
31+
---
32+
33+
## [v1.4.2] – 2026-03-11
34+
35+
### Fixes & Verbesserungen
36+
37+
- **„↩ Zur Lobby"-Button** (floating, nur für Host): Bricht die laufende Runde ab und bringt alle Clients zurück in die Lobby
38+
- **„Lobby schließen"-Button** im Lobby-Screen: Löscht die Lobby komplett – alle Spieler landen auf dem Start-Screen mit Toast „🚪 Die Lobby wurde vom Host geschlossen."
39+
- **Zentraler Listener-Refactor**: `startCentralListener()` läuft außerhalb von `State.listeners[]` und überlebt Phasenwechsel – alle Clients reagieren zuverlässig auf Lobby-Löschung und Abbruch ohne manuellen Reload
40+
- **Spieler-Reconnect**: Spieler die beim Spielstart dabei waren können nach einem Reload automatisch wieder in die laufende Runde einspringen
41+
- **Phasenwechsel-Fix**: Clue-Zähler liest Spielerliste direkt aus Firebase statt aus lokalem State – Weiterleitung zur nächsten Phase funktioniert zuverlässig
42+
43+
---
44+
45+
## [v1.4.0] – 2026-03-11
46+
47+
### Neu: Rollen
48+
49+
- **Zuschauer**: Spieler können beim Beitreten "Zuschauer" wählen. Sie sehen in Echtzeit das Geheimwort und alle Eingaben. Sie zählen nicht zum Spielerlimit.
50+
- **Moderator**: Host kann einen Spieler als Moderator setzen. Moderatoren sehen alles wie Zuschauer, können aber nach der Clue-Phase manuell Hinweise streichen (Regelverstoß). Erst nach ihrer Bestätigung sehen Wortgeber die Animations-Phase.
51+
- **TV-Spieler**: Host markiert einen Spieler als TV-Spieler. Dieser rät immer (nie Wortgeber), sieht erst nach der Reveal-Animation die Hinweise und sitzt mit dem Rücken zum Fernseher. Richtig/Falsch wird durch Mod oder Host bestätigt.
52+
53+
### Neu: Spielmechanik
54+
55+
- **Moderator-Prüfungsphase** (`mod-review`): Wenn ein Moderator existiert, kommt nach der Clue-Phase ein eigener Screen für den Mod zum manuellen Streichen von Hinweisen.
56+
- **Automatische Weiterleitung** nach Reveal: Countdown-Ring (5 Sek.) ersetzt den "Weiter"-Button – kein Admin-Klick mehr nötig.
57+
- **Verdikt-System** (TV-Modus): Moderator (oder Host) sieht "✓ Richtig / ✗ Falsch" Buttons und entscheidet das Ergebnis manuell.
58+
- **Rater sieht Reveal NICHT mehr**: Rater und TV-Spieler bleiben auf dem Warte-Screen während die Durchstreich-Animation läuft.
59+
60+
### Neu: Kategorien & Wortlisten
61+
62+
- 4 Wortlisten als separate Dateien: `words-leicht.js`, `words-mittel.js`, `words-schwer.js`, `words-fsk18.js`
63+
- Kategorie-Auswahl per Chips auf Start-Screen und in der Lobby (Host kann ändern)
64+
- Kategorie wird in Firebase gespeichert und für alle Clients sichtbar
65+
66+
### Neu: UI
67+
68+
- **QR-Code** in Lobby wenn TV-Spieler gesetzt – schnelles Beitreten mit Smartphone
69+
- **Schieberegler** für Spieler-Limit (statt Dropdown)
70+
- **Responsivität**: Logo bricht nicht mehr aus dem Container; Geheimwort skaliert automatisch mit der Textlänge; Layout nutzt auf großen Screens (Desktop, TV) viel mehr Platz (Lobby zweispaltig)
71+
- Neuer Badge-Typ: `mod-badge` (lila), `tv-badge` (rot), überarbeitete Aktionsbuttons in Spielerliste
72+
- Kick-Rechte für Moderatoren ergänzt
73+
74+
### Dateien
75+
76+
```
77+
assets/words/words-leicht.js ← neu
78+
assets/words/words-mittel.js ← neu
79+
assets/words/words-schwer.js ← neu
80+
assets/words/words-fsk18.js ← neu
81+
```
82+
83+
---
84+
85+
## [v1.3.0] – 2025-XX-XX
86+
87+
### Neu
88+
89+
- **Host-Reconnect**: UID wird in `localStorage` gespeichert (statt `sessionStorage`).
90+
Beim Seitenaufruf wird geprüft ob noch eine aktive Host-Lobby existiert – falls ja,
91+
kehrt der Host automatisch zur Lobby zurück ohne neu beitreten zu müssen.
92+
- **Spieler-Limit**: Host kann die maximale Spieleranzahl (3–12) festlegen –
93+
sowohl beim Erstellen einer Lobby (Start-Screen) als auch danach in der Lobby.
94+
Beitrittsversuche über dem Limit werden mit Fehlermeldung blockiert.
95+
- **Spieler kicken**: Host sieht neben jedem Spieler einen ✕-Button.
96+
Gekickte Spieler werden in `/kicked/` eingetragen, erhalten sofort einen
97+
Toast-Hinweis und landen auf dem Start-Screen.
98+
- **Einlade-Link**: Generiert einen direkten URL mit `?lobby=CODE`.
99+
Button zum Kopieren + WhatsApp-Teilen-Button in der Lobby.
100+
Beim Öffnen des Links wird der Code automatisch ins Beitrittsfeld eingetragen.
101+
- **Toast-Benachrichtigungen**: Kurze animierte Einblendungen für Systemereignisse
102+
(Kick, Reconnect, Link kopiert, Limit gesetzt).
103+
- **Letzter Name**: Wird in `localStorage` gespeichert und beim nächsten Start vorausgefüllt.
104+
- **Spielerzähler**: Zeigt `X / Limit` in der Lobby-Überschrift.
105+
- **Ich-Badge**: Spieler sehen ihr eigenes Profil in der Liste mit „Du"-Markierung.
106+
107+
### Geändert
108+
109+
- `getOrCreateUID()` nutzt jetzt `localStorage` statt `sessionStorage`
110+
- `enterLobbyScreen()` ruft `removeAllListeners()` auf (verhindert doppelte Listener bei Rundenende)
111+
- `watchForResult()` als eigenständiger Listener statt separater Funktion konsolidiert
112+
113+
---
114+
115+
## [v1.2.0] – 2025-XX-XX
116+
117+
### Geändert
118+
119+
- Firebase-Konfiguration direkt in `assets/js/game.js` eingebaut (kein Setup-Modal mehr nötig)
120+
- `databaseURL` der Realtime Database (`europe-west1`) ergänzt
121+
- Config-Modal komplett entfernt aus `index.html` und `game.js`
122+
- `loadFirebaseConfig()` und `saveFirebaseConfig()` entfernt (nicht mehr benötigt)
123+
- `initFirebase()` benötigt keinen Parameter mehr – nutzt `FIREBASE_CONFIG` direkt
124+
- Fehlermeldung im Start-Screen als Fallback bei Firebase-Verbindungsfehler
125+
126+
---
127+
128+
## [v1.1.0] – 2025-XX-XX
129+
130+
### Geändert
131+
132+
- Projekt umbenannt von „Just One" zu **„One Chance"**
133+
- Dateistruktur reorganisiert: CSS und JS liegen jetzt in `assets/css/` bzw. `assets/js/`
134+
- Nur `index.html` liegt im Root-Verzeichnis (GitHub Pages kompatibel)
135+
- `localStorage`- und `sessionStorage`-Schlüssel auf `onechance_*` umgestellt
136+
- Logger-Präfix von `[JustOne]` auf `[OneChance]` aktualisiert
137+
- `CHANGELOG.md` hinzugefügt
138+
- `README.md` überarbeitet mit Firebase-Schritt-für-Schritt-Anleitung
139+
- `.gitignore` hinzugefügt
140+
141+
### Dateistruktur
142+
143+
```
144+
one-chance/
145+
├── index.html
146+
├── README.md
147+
├── CHANGELOG.md
148+
├── .gitignore
149+
└── assets/
150+
├── css/style.css
151+
└── js/game.js
152+
```
153+
154+
---
155+
156+
## [v1.0.0] – 2025-XX-XX
157+
158+
### Neu
159+
160+
- Lobby-System mit zufälligem 6-stelligen Code
161+
- Beliebig viele Spieler (Minimum: 3)
162+
- Zufällige Rater-Zuteilung pro Runde
163+
- Geheimwort nur für Wortgeber sichtbar
164+
- Hinweis-Eingabe mit Firebase-Echtzeit-Synchronisierung
165+
- Animierte Streich-Animation für doppelte Hinweise
166+
- Rater-Screen mit gefilterten (validen) Hinweisen
167+
- Ergebnis-Auswertung mit Richtig/Falsch-Anzeige
168+
- Mehrere Runden in derselben Lobby möglich
169+
- Firebase-Konfiguration via UI-Modal (kein Code-Edit nötig)
170+
- Browser-Konsolen-Logger mit Zeitstempel für alle Spielaktionen
171+
- Dunkles Design mit animierten Hintergrund-Orbs
172+
- Vollständig responsiv (Mobile + Desktop)
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# Changelog – One Chance
2+
3+
Alle relevanten Änderungen am Projekt werden hier dokumentiert.
4+
Format: [Semantische Versionierung](https://semver.org/lang/de/) `vMAJOR.MINOR.PATCH`
5+
6+
---
7+
8+
## [v1.4.5] – 2026-03-11
9+
10+
### Neu
11+
12+
- **GitHub & Buy Me a Coffee Links** auf Start- und Ergebnis-Screen
13+
- **Leere Hinweisliste**: Wenn alle Hinweise gestrichen wurden, sieht der Rater „😬 Alle Hinweise wurden gestrichen – viel Glück!" statt einer leeren Liste
14+
- **Ergebnis-Screen**: „Das gesuchte Wort war: …" wird bei richtiger Antwort ausgeblendet – das Wort steht bereits in der Antwort
15+
- **Textfelder**: Alle Eingabefelder sind jetzt zentriert
16+
17+
---
18+
19+
## [v1.4.4] – 2026-03-11
20+
21+
### Neu
22+
23+
- **Groß-/Kleinschreibung bei Duplikaten**: „Schatten" und „SCHATTEN" werden jetzt als identisch erkannt und beide gestrichen
24+
- **Geheimwort-Treffer automatisch streichen**: Hinweise die das gesuchte Wort enthalten (z.B. „Kuchen" bei Gesucht: „Käsekuchen") oder im Geheimwort enthalten sind werden animiert gestrichen und nicht an den Rater weitergegeben
25+
26+
---
27+
28+
## [v1.4.3] – 2026-03-11
29+
30+
### Neu
31+
32+
- **Lobby/Spiel verlassen** für Spieler & Zuschauer: „↩ Verlassen"-Button erscheint floating auf allen Spielscreens sowie als fixer Button im Lobby-Screen
33+
- **In der Lobby**: direkt verlassen ohne Bestätigung – im laufenden Spiel kurze Bestätigung
34+
- **Tippgeber verlässt Clue-Phase**: sein Hinweis wird gelöscht, Zähler neu geprüft – die Gruppe wartet nicht mehr auf ihn
35+
- **Rater verlässt laufendes Spiel**: alle Clients werden automatisch zurück in die Lobby gesetzt (Toast: „🚶 Der Rater hat die Lobby verlassen")
36+
37+
### Fixes
38+
39+
- **Moderator zählt nicht zum Spielerlimit**: Limit-Check, Lobby-Zähler und Start-Button schließen den Mod korrekt aus
40+
- **Mod-Review springt nicht an**: Wortgeber-Zähler schloss den Moderator nicht aus – nun korrekt gefiltert
41+
42+
---
43+
44+
## [v1.4.2] – 2026-03-11
45+
46+
### Fixes & Verbesserungen
47+
48+
- **„↩ Zur Lobby"-Button** (floating, nur für Host): Bricht die laufende Runde ab und bringt alle Clients zurück in die Lobby
49+
- **„Lobby schließen"-Button** im Lobby-Screen: Löscht die Lobby komplett – alle Spieler landen auf dem Start-Screen mit Toast „🚪 Die Lobby wurde vom Host geschlossen."
50+
- **Zentraler Listener-Refactor**: `startCentralListener()` läuft außerhalb von `State.listeners[]` und überlebt Phasenwechsel – alle Clients reagieren zuverlässig auf Lobby-Löschung und Abbruch ohne manuellen Reload
51+
- **Spieler-Reconnect**: Spieler die beim Spielstart dabei waren können nach einem Reload automatisch wieder in die laufende Runde einspringen
52+
- **Phasenwechsel-Fix**: Clue-Zähler liest Spielerliste direkt aus Firebase statt aus lokalem State – Weiterleitung zur nächsten Phase funktioniert zuverlässig
53+
54+
---
55+
56+
## [v1.4.0] – 2026-03-11
57+
58+
### Neu: Rollen
59+
60+
- **Zuschauer**: Spieler können beim Beitreten "Zuschauer" wählen. Sie sehen in Echtzeit das Geheimwort und alle Eingaben. Sie zählen nicht zum Spielerlimit.
61+
- **Moderator**: Host kann einen Spieler als Moderator setzen. Moderatoren sehen alles wie Zuschauer, können aber nach der Clue-Phase manuell Hinweise streichen (Regelverstoß). Erst nach ihrer Bestätigung sehen Wortgeber die Animations-Phase.
62+
- **TV-Spieler**: Host markiert einen Spieler als TV-Spieler. Dieser rät immer (nie Wortgeber), sieht erst nach der Reveal-Animation die Hinweise und sitzt mit dem Rücken zum Fernseher. Richtig/Falsch wird durch Mod oder Host bestätigt.
63+
64+
### Neu: Spielmechanik
65+
66+
- **Moderator-Prüfungsphase** (`mod-review`): Wenn ein Moderator existiert, kommt nach der Clue-Phase ein eigener Screen für den Mod zum manuellen Streichen von Hinweisen.
67+
- **Automatische Weiterleitung** nach Reveal: Countdown-Ring (5 Sek.) ersetzt den "Weiter"-Button – kein Admin-Klick mehr nötig.
68+
- **Verdikt-System** (TV-Modus): Moderator (oder Host) sieht "✓ Richtig / ✗ Falsch" Buttons und entscheidet das Ergebnis manuell.
69+
- **Rater sieht Reveal NICHT mehr**: Rater und TV-Spieler bleiben auf dem Warte-Screen während die Durchstreich-Animation läuft.
70+
71+
### Neu: Kategorien & Wortlisten
72+
73+
- 4 Wortlisten als separate Dateien: `words-leicht.js`, `words-mittel.js`, `words-schwer.js`, `words-fsk18.js`
74+
- Kategorie-Auswahl per Chips auf Start-Screen und in der Lobby (Host kann ändern)
75+
- Kategorie wird in Firebase gespeichert und für alle Clients sichtbar
76+
77+
### Neu: UI
78+
79+
- **QR-Code** in Lobby wenn TV-Spieler gesetzt – schnelles Beitreten mit Smartphone
80+
- **Schieberegler** für Spieler-Limit (statt Dropdown)
81+
- **Responsivität**: Logo bricht nicht mehr aus dem Container; Geheimwort skaliert automatisch mit der Textlänge; Layout nutzt auf großen Screens (Desktop, TV) viel mehr Platz (Lobby zweispaltig)
82+
- Neuer Badge-Typ: `mod-badge` (lila), `tv-badge` (rot), überarbeitete Aktionsbuttons in Spielerliste
83+
- Kick-Rechte für Moderatoren ergänzt
84+
85+
### Dateien
86+
87+
```
88+
assets/words/words-leicht.js ← neu
89+
assets/words/words-mittel.js ← neu
90+
assets/words/words-schwer.js ← neu
91+
assets/words/words-fsk18.js ← neu
92+
```
93+
94+
---
95+
96+
## [v1.3.0] – 2025-XX-XX
97+
98+
### Neu
99+
100+
- **Host-Reconnect**: UID wird in `localStorage` gespeichert (statt `sessionStorage`).
101+
Beim Seitenaufruf wird geprüft ob noch eine aktive Host-Lobby existiert – falls ja,
102+
kehrt der Host automatisch zur Lobby zurück ohne neu beitreten zu müssen.
103+
- **Spieler-Limit**: Host kann die maximale Spieleranzahl (3–12) festlegen –
104+
sowohl beim Erstellen einer Lobby (Start-Screen) als auch danach in der Lobby.
105+
Beitrittsversuche über dem Limit werden mit Fehlermeldung blockiert.
106+
- **Spieler kicken**: Host sieht neben jedem Spieler einen ✕-Button.
107+
Gekickte Spieler werden in `/kicked/` eingetragen, erhalten sofort einen
108+
Toast-Hinweis und landen auf dem Start-Screen.
109+
- **Einlade-Link**: Generiert einen direkten URL mit `?lobby=CODE`.
110+
Button zum Kopieren + WhatsApp-Teilen-Button in der Lobby.
111+
Beim Öffnen des Links wird der Code automatisch ins Beitrittsfeld eingetragen.
112+
- **Toast-Benachrichtigungen**: Kurze animierte Einblendungen für Systemereignisse
113+
(Kick, Reconnect, Link kopiert, Limit gesetzt).
114+
- **Letzter Name**: Wird in `localStorage` gespeichert und beim nächsten Start vorausgefüllt.
115+
- **Spielerzähler**: Zeigt `X / Limit` in der Lobby-Überschrift.
116+
- **Ich-Badge**: Spieler sehen ihr eigenes Profil in der Liste mit „Du"-Markierung.
117+
118+
### Geändert
119+
120+
- `getOrCreateUID()` nutzt jetzt `localStorage` statt `sessionStorage`
121+
- `enterLobbyScreen()` ruft `removeAllListeners()` auf (verhindert doppelte Listener bei Rundenende)
122+
- `watchForResult()` als eigenständiger Listener statt separater Funktion konsolidiert
123+
124+
---
125+
126+
## [v1.2.0] – 2025-XX-XX
127+
128+
### Geändert
129+
130+
- Firebase-Konfiguration direkt in `assets/js/game.js` eingebaut (kein Setup-Modal mehr nötig)
131+
- `databaseURL` der Realtime Database (`europe-west1`) ergänzt
132+
- Config-Modal komplett entfernt aus `index.html` und `game.js`
133+
- `loadFirebaseConfig()` und `saveFirebaseConfig()` entfernt (nicht mehr benötigt)
134+
- `initFirebase()` benötigt keinen Parameter mehr – nutzt `FIREBASE_CONFIG` direkt
135+
- Fehlermeldung im Start-Screen als Fallback bei Firebase-Verbindungsfehler
136+
137+
---
138+
139+
## [v1.1.0] – 2025-XX-XX
140+
141+
### Geändert
142+
143+
- Projekt umbenannt von „Just One" zu **„One Chance"**
144+
- Dateistruktur reorganisiert: CSS und JS liegen jetzt in `assets/css/` bzw. `assets/js/`
145+
- Nur `index.html` liegt im Root-Verzeichnis (GitHub Pages kompatibel)
146+
- `localStorage`- und `sessionStorage`-Schlüssel auf `onechance_*` umgestellt
147+
- Logger-Präfix von `[JustOne]` auf `[OneChance]` aktualisiert
148+
- `CHANGELOG.md` hinzugefügt
149+
- `README.md` überarbeitet mit Firebase-Schritt-für-Schritt-Anleitung
150+
- `.gitignore` hinzugefügt
151+
152+
### Dateistruktur
153+
154+
```
155+
one-chance/
156+
├── index.html
157+
├── README.md
158+
├── CHANGELOG.md
159+
├── .gitignore
160+
└── assets/
161+
├── css/style.css
162+
└── js/game.js
163+
```
164+
165+
---
166+
167+
## [v1.0.0] – 2025-XX-XX
168+
169+
### Neu
170+
171+
- Lobby-System mit zufälligem 6-stelligen Code
172+
- Beliebig viele Spieler (Minimum: 3)
173+
- Zufällige Rater-Zuteilung pro Runde
174+
- Geheimwort nur für Wortgeber sichtbar
175+
- Hinweis-Eingabe mit Firebase-Echtzeit-Synchronisierung
176+
- Animierte Streich-Animation für doppelte Hinweise
177+
- Rater-Screen mit gefilterten (validen) Hinweisen
178+
- Ergebnis-Auswertung mit Richtig/Falsch-Anzeige
179+
- Mehrere Runden in derselben Lobby möglich
180+
- Firebase-Konfiguration via UI-Modal (kein Code-Edit nötig)
181+
- Browser-Konsolen-Logger mit Zeitstempel für alle Spielaktionen
182+
- Dunkles Design mit animierten Hintergrund-Orbs
183+
- Vollständig responsiv (Mobile + Desktop)

0 commit comments

Comments
 (0)