- Cambia comportamiento de selectUuid() para usar window.open()
- Aplica también a botón "Seleccionar Aleatorio"
- Mantiene comportamiento de QR modal cuando modo QR está activo
- Mejora flujo de trabajo para abrir múltiples jugadores
- Mueve checkbox a la parte inferior junto a otros botones
- Cambia texto para ser más explícito sobre función QR
- "Modo QR activo - Click para ver código" cuando activado
- "Activar modo QR para acceso rápido" cuando desactivado
- Mejora estilos con más padding y sombras sutiles
- Ajusta responsive design para nueva posición
- Checkbox que cambia comportamiento del click en UUID cards
- Modo QR: muestra modal QR en lugar de redirigir
- Modo normal: comportamiento original de navegación
- Botón descriptivo que indica el modo actual
- Estilos responsive para móviles
- Facilita acceso a QR para usuarios sin click derecho
- Agrega botón "📤 Compartir" en el modal de QR
- Implementa navigator.share() con fallback a clipboard
- Incluye estilos con gradiente rosa para el botón
- Mejora la experiencia de usuario para compartir links
Corrige los proxies de /api y /ws para apuntar al servidor Colyseus
en puerto 2567 en lugar del puerto 3000. Esto resuelve el problema
de que las APIs del admin devolvían HTML en lugar de JSON.
Aplica el mismo patrón que funciona en UuidSelector: intenta
uuids-with-names con fallback a uuids, y mapea correctamente
los datos para extraer solo los UUIDs.
- Click derecho en UUIDs muestra menú contextual con opción de imprimir QR
- Modal de vista previa con diseño portrait optimizado para móviles
- Generación de QR codes que redirigen a la URL específica del UUID
- Funcionalidad de impresión directa con estilos embebidos
- Descarga como PNG de alta resolución con todos los estilos preservados
- Diseño de tarjeta con gradiente, información del jugador e instrucciones
- Librerías: qrcode para generación QR, html2canvas para captura PNG
- Dashboard: agregar opciones de 50 pestañas deterministas (lotes 1-4)
- Dashboard: botón para cerrar salas individuales y expulsar jugadores
- Dashboard: selector de variante G por sala individual en tabla
- Nuevo selector moderno de UUID en página principal
- Mostrar nombres de jugadores en selector de UUID
- Búsqueda por UUID o nombre de jugador
- Redireccionar /missing-uuid a selector principal
- Endpoints para obtener UUIDs con nombres y cerrar/cambiar variante de salas
- Agregados botones de control global: pausar, reanudar, reiniciar, cambiar variante, enviar al lobby
- Implementados endpoints API para operaciones masivas en todas las game rooms
- Agregado método executeAdminCommand en GameRoom para manejo unificado de comandos admin
- Mejorado manejo de desconexión automática al lobby cuando admin cierra rooms
- Interfaz responsiva con confirmaciones de usuario y estados de carga
- Sistema robusto de limpieza de rooms con fallback de forzado
- Agregado UUID persistente en base de datos local (LokiJS)
- Nombres únicos por UUID en lugar de sessionId
- Nombres persisten entre reconexiones mientras el servidor esté activo
- Migración automática de perfiles existentes
- Registrados handlers para evitar warnings de mensajes no encontrados
- Implementación de Server-Sent Events (SSE) para actualizaciones en tiempo real
- Nuevo componente RoomsTable para vista de águila con animaciones de tokens
- Componente RoomCard extraído para reutilización
- Modal para ver detalles de rooms
- SystemMessageDisplay usando AnimatedNumber creativamente
- Indicador de conexión SSE con fallback a polling
- Colores dinámicos de texto basados en brillo del fondo
- Backend: broadcast de actualizaciones del dashboard
- Backend: mensajes del sistema (excepto cambios de ronda) visibles en dashboard
- Configuración de Vite para acceso desde red local
- Add server validation to prevent P2 from taking multiple actions on the same offer
- Hide P2 action buttons after an action is taken (using \!state.p2Action condition)
- Add offer details display to G3, G4, and G5 (was missing)
- Fix G2 to show offer details instead of just 'Oferta activa'
- Reset game status to PLAYING when changing variant from FINISHED state
- Ensure P2 can only make one decision per offer in all variants
- Add variable offer system where P1 can offer any amount of tokens
- Players start with 10 tokens each (P1: pavos, P2: elotes)
- Implement offer/request mechanism with token validation
- Auto-advance rounds after P2 actions or P1 no-offer
- G2: Force offer by default, disable no-offer button when forced
- G3: Wait for shame decision after snatch before advancing
- G4: Implement inverse sanction (P1 gets requested without giving offered)
- Reset rounds to 1 when changing game variants
- Fix OfferControls responsiveness issues
- Hide offer controls after active offer
- Update all G1-G5 components with proper offer flow