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

@@ -152,16 +152,17 @@ func (g *Game) connectToServer() {
joinMsg := WebSocketMessage{
Type: "join",
Payload: game.JoinRequest{
Name: g.playerName,
RoomID: g.roomID,
GameMode: g.gameMode,
IsHost: g.isHost,
TeamName: g.teamName,
Name: g.playerName,
RoomID: g.roomID,
GameMode: g.gameMode,
IsHost: g.isHost,
TeamName: g.teamName,
PlayerCode: g.playerCode,
},
}
g.sendWebSocketMessage(joinMsg)
log.Printf("➡️ JOIN gesendet über WebSocket: Name=%s, RoomID=%s", g.playerName, g.roomID)
log.Printf("➡️ JOIN gesendet über WebSocket: Name=%s, RoomID=%s, PlayerCode=%s", g.playerName, g.roomID, g.playerCode)
}
// sendWebSocketMessage sendet eine Nachricht über WebSocket
@@ -191,14 +192,16 @@ func (g *Game) sendInput(input game.ClientInput) {
// startGame sendet den Start-Befehl über WebSocket
func (g *Game) startGame() {
myID := g.getMyPlayerID()
msg := WebSocketMessage{
Type: "start",
Payload: game.StartRequest{
RoomID: g.roomID,
RoomID: g.roomID,
PlayerID: myID,
},
}
g.sendWebSocketMessage(msg)
log.Printf("▶️ START gesendet über WebSocket: RoomID=%s", g.roomID)
log.Printf("▶️ START gesendet über WebSocket: RoomID=%s, PlayerID=%s", g.roomID, myID)
}
// connectForLeaderboard verbindet für Leaderboard-Abfrage
@@ -281,21 +284,30 @@ func (g *Game) submitScore() {
// Verwende Team-Name für Coop-Mode, sonst Player-Name
displayName := name
teamName := ""
playerCodeToUse := g.playerCode
if g.gameMode == "coop" {
g.stateMutex.Lock()
teamName = g.gameState.TeamName
hostPlayerCode := g.gameState.HostPlayerCode
g.stateMutex.Unlock()
if teamName != "" {
displayName = teamName
}
// In Coop: Verwende Host's PlayerCode für Score
if hostPlayerCode != "" {
playerCodeToUse = hostPlayerCode
log.Printf("🔑 Coop-Mode: Verwende Host PlayerCode für Score-Submission")
}
}
msg := WebSocketMessage{
Type: "score_submit",
Payload: game.ScoreSubmission{
PlayerName: displayName,
PlayerCode: g.playerCode,
PlayerCode: playerCodeToUse,
Name: displayName, // Für Kompatibilität
Score: score,
Mode: g.gameMode,
@@ -305,7 +317,7 @@ func (g *Game) submitScore() {
g.sendWebSocketMessage(msg)
g.scoreSubmitted = true
log.Printf("📊 Score submitted: %s = %d (TeamName: %s)", displayName, score, teamName)
log.Printf("📊 Score submitted: %s = %d (PlayerCode: %s, TeamName: %s)", displayName, score, playerCodeToUse, teamName)
}
// Dummy-Funktionen für Kompatibilität mit anderen Teilen des Codes