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
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m27s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user