Private
Public Access
1
0

add offline mode for solo play with local game state simulation
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 1m47s

This commit is contained in:
Sebastian Unterschütz
2026-04-22 12:37:52 +02:00
parent e295d1ad61
commit de87b76005
4 changed files with 147 additions and 6 deletions

View File

@@ -27,8 +27,10 @@ func (g *Game) drawGameOverScreen(screen *ebiten.Image, myScore int) {
screen.Fill(color.RGBA{20, 20, 30, 255})
// Leaderboard immer beim ersten Mal anfordern (ohne Lock hier!)
if !g.scoreSubmitted && g.gameMode == "solo" {
if !g.scoreSubmitted && g.gameMode == "solo" && !g.isOffline {
g.submitScore() // submitScore() ruft requestLeaderboard() auf
} else if !g.scoreSubmitted && g.gameMode == "solo" && g.isOffline {
// Offline-Solo: Keine automatische Submission
} else {
// Für Coop: Nur Leaderboard anfordern, nicht submitten
g.leaderboardMutex.Lock()
@@ -169,6 +171,9 @@ func (g *Game) drawGameOverScreen(screen *ebiten.Image, myScore int) {
} else if g.gameMode == "solo" && g.scoreSubmitted {
// Solo: Zeige Bestätigungsmeldung
text.Draw(screen, "✓ Runde verifiziert & Score eingereicht!", basicfont.Face7x13, ScreenWidth/2-110, ScreenHeight-100, color.RGBA{0, 255, 0, 255})
} else if g.gameMode == "solo" && g.isOffline {
// Offline Solo
text.Draw(screen, "Offline-Modus: Score lokal gespeichert.", basicfont.Face7x13, ScreenWidth/2-110, ScreenHeight-100, color.RGBA{200, 200, 0, 255})
} else if g.gameMode == "coop" && !g.isHost {
// Coop Non-Host: Warten auf Host
text.Draw(screen, "Warte auf Host...", basicfont.Face7x13, ScreenWidth/2-70, ScreenHeight-100, color.Gray{180})