All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 2m25s
64 lines
2.2 KiB
Go
64 lines
2.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
const (
|
|
Gravity = 0.6
|
|
JumpPower = -12.0
|
|
HighJumpPower = -16.0
|
|
GroundY = 350.0
|
|
PlayerHeight = 50.0
|
|
PlayerYBase = GroundY - PlayerHeight
|
|
BaseSpeed = 5.0
|
|
GameWidth = 800.0
|
|
)
|
|
|
|
// Globale Variablen
|
|
var (
|
|
ctx = context.Background()
|
|
rdb *redis.Client
|
|
defaultConfig GameConfig
|
|
adminUser string
|
|
adminPass string
|
|
)
|
|
|
|
func getEnv(key, fallback string) string {
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func initGameConfig() {
|
|
defaultConfig = GameConfig{
|
|
Obstacles: []ObstacleDef{
|
|
// --- HINDERNISSE ---
|
|
{ID: "desk", Type: "obstacle", Width: 40, Height: 30, Color: "#8B4513", Image: "desk1.png"},
|
|
{ID: "teacher", Type: "teacher", Width: 30, Height: 60, Color: "#000080", Image: "teacher1.png", CanTalk: true, SpeechLines: []string{"Halt!", "Handy weg!"}},
|
|
{ID: "trashcan", Type: "obstacle", Width: 25, Height: 35, Color: "#555", Image: "trash1.png"},
|
|
{ID: "eraser", Type: "obstacle", Width: 30, Height: 20, Color: "#fff", Image: "eraser1.png", YOffset: 35.0},
|
|
|
|
{ID: "principal", Type: "teacher", Width: 40, Height: 70, Color: "#000", Image: "principal1.png", CanTalk: true, SpeechLines: []string{"EXMATRIKULATION!"}},
|
|
|
|
// --- COINS ---
|
|
{ID: "coin0", Type: "coin", Width: 20, Height: 20, Color: "gold", Image: "coin1.png", YOffset: 40.0},
|
|
{ID: "coin1", Type: "coin", Width: 20, Height: 20, Color: "gold", Image: "coin1.png", YOffset: 50.0},
|
|
{ID: "coin2", Type: "coin", Width: 20, Height: 20, Color: "gold", Image: "coin1.png", YOffset: 60.0},
|
|
|
|
// --- POWERUPS ---
|
|
{ID: "p_god", Type: "powerup", Width: 30, Height: 30, Color: "cyan", Image: "powerup_god1.png", YOffset: 20.0}, // Godmode
|
|
{ID: "p_bat", Type: "powerup", Width: 30, Height: 30, Color: "red", Image: "powerup_bat1.png", YOffset: 20.0}, // Schläger
|
|
{ID: "p_boot", Type: "powerup", Width: 30, Height: 30, Color: "lime", Image: "powerup_boot1.png", YOffset: 20.0}, // Boots
|
|
},
|
|
// Mehrere Hintergründe für Level-Wechsel
|
|
Backgrounds: []string{"school-background.jpg", "gym-background.jpg", "school2-background.jpg"},
|
|
}
|
|
log.Println("✅ Config mit Powerups geladen")
|
|
}
|