#!/bin/bash
# Script para ejecutar JailDoctor's Dilemma en modo headless (sin pantalla)
# Usa Xvfb (X Virtual Framebuffer) para simular un display

# Configuración
GAME_EXECUTABLE="./jaildoctors_dilemma"
DISPLAY_SIZE="1280x720x24"  # Resolución y profundidad de color

# Colores para output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}=== JailDoctor's Dilemma - Modo Headless ===${NC}"
echo ""

# Verificar que Xvfb está instalado
if ! command -v xvfb-run &> /dev/null; then
    echo -e "${YELLOW}ERROR: Xvfb no está instalado${NC}"
    echo "Instálalo con: sudo apt-get install xvfb"
    exit 1
fi

# Verificar que el ejecutable existe
if [ ! -f "$GAME_EXECUTABLE" ]; then
    echo -e "${YELLOW}ERROR: No se encuentra el ejecutable $GAME_EXECUTABLE${NC}"
    echo "Compila el juego primero con: cmake --build build"
    exit 1
fi

echo "Iniciando juego con Xvfb..."
echo "Display virtual: $DISPLAY_SIZE"
echo ""
echo -e "${YELLOW}Nota: El juego está corriendo. Presiona Ctrl+C para detenerlo.${NC}"
echo ""

# Ejecutar el juego con Xvfb
# Opciones:
#   -a: Selecciona automáticamente un número de display disponible
#   -s: Configura el servidor X (resolución y profundidad)
xvfb-run -a -s "-screen 0 ${DISPLAY_SIZE}" "$GAME_EXECUTABLE" "$@"

EXIT_CODE=$?
echo ""
if [ $EXIT_CODE -eq 0 ]; then
    echo -e "${GREEN}Juego finalizado correctamente${NC}"
else
    echo -e "${YELLOW}Juego finalizado con código de salida: $EXIT_CODE${NC}"
fi

exit $EXIT_CODE
