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: "desk.png"}, {ID: "teacher", Type: "teacher", Width: 30, Height: 60, Color: "#000080", Image: "teacher.png", CanTalk: true, SpeechLines: []string{"Halt!", "Handy weg!"}}, {ID: "trashcan", Type: "obstacle", Width: 25, Height: 35, Color: "#555", Image: "trash.png"}, {ID: "eraser", Type: "obstacle", Width: 30, Height: 20, Color: "#fff", Image: "eraser.png", YOffset: 45.0}, // --- BOSS OBJEKTE (Kommen häufiger im Bosskampf) --- {ID: "principal", Type: "teacher", Width: 40, Height: 70, Color: "#000", Image: "principal.png", CanTalk: true, SpeechLines: []string{"EXMATRIKULATION!"}}, // --- COINS --- {ID: "coin", Type: "coin", Width: 20, Height: 20, Color: "gold", Image: "coin.png", YOffset: 20.0}, // --- POWERUPS --- {ID: "p_god", Type: "powerup", Width: 30, Height: 30, Color: "cyan", Image: "powerup_god.png", YOffset: 20.0}, // Godmode {ID: "p_bat", Type: "powerup", Width: 30, Height: 30, Color: "red", Image: "powerup_bat.png", YOffset: 20.0}, // Schläger {ID: "p_boot", Type: "powerup", Width: 30, Height: 30, Color: "lime", Image: "powerup_boot.png", YOffset: 20.0}, // Boots }, // Mehrere Hintergründe für Level-Wechsel Backgrounds: []string{"gym-background.jpg", "school-background.jpg", "school2-background.jpg"}, } log.Println("✅ Config mit Powerups geladen") }