Private
Public Access
1
0

Add PlayerCode for enhanced score tracking and host validation logic in cooperative mode. Optimize UI for mobile devices with new responsive styles.
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m27s

This commit is contained in:
Sebastian Unterschütz
2026-01-04 17:34:19 +01:00
parent 8f49a691f7
commit 400a7e752b
6 changed files with 102 additions and 29 deletions

View File

@@ -148,6 +148,14 @@ func main() {
// Spieler hinzufügen (ID, Name)
room.AddPlayer(playerID, req.Name)
// Falls Host, speichere PlayerCode
if req.IsHost && req.PlayerCode != "" {
room.Mutex.Lock()
room.HostPlayerCode = req.PlayerCode
room.Mutex.Unlock()
log.Printf("🔑 Host PlayerCode gesetzt: %s", req.PlayerCode)
}
// Session speichern
playerSessions[playerID] = room
log.Printf("➡️ Spieler '%s' ist Raum '%s' beigetreten.", playerID, roomID)
@@ -160,7 +168,7 @@ func main() {
// 4. HANDLER: GAME START (broadcast - alle Pods empfangen, nur der mit dem Raum reagiert)
_, _ = ec.Subscribe("game.start", func(req *game.StartRequest) {
log.Printf("▶️ START empfangen: RoomID=%s", req.RoomID)
log.Printf("▶️ START empfangen: RoomID=%s, PlayerID=%s", req.RoomID, req.PlayerID)
mu.RLock()
room, exists := rooms[req.RoomID]
@@ -168,9 +176,17 @@ func main() {
if exists {
room.Mutex.Lock()
// Prüfe ob der Spieler der Host ist
if room.HostID != "" && room.HostID != req.PlayerID {
log.Printf("⚠️ Spieler '%s' ist nicht Host von Raum '%s' (Host: %s)", req.PlayerID, req.RoomID, room.HostID)
room.Mutex.Unlock()
return
}
room.StartCountdown()
room.Mutex.Unlock()
log.Printf("🎮 Raum '%s' Countdown gestartet", req.RoomID)
log.Printf("🎮 Raum '%s' Countdown gestartet von Host '%s'", req.RoomID, req.PlayerID)
} else {
log.Printf("❌ Raum '%s' nicht gefunden", req.RoomID)
}