- Random.secure() para selección de impostores (no predecible)
- Random.secure() también en desempate de votación
- Nueva PantallaGestorHost para coordinación multi-device
- Navegación: host va a gestor tras iniciar, no a pantalla de palabra
- PantallaPalabraCliente: cada jugador ve su palabra en su móvil
- PantallaDebateCliente: debate con timer y botón solicitar votación
- PantallaVotacionCliente: voto desde el móvil del cliente
- PantallaUnirse: listener que reacciona a partidaInicio y cambia de fase
- Protocolo: listo/voto/solicitoVotacion via Nearby hacia el host
- Nuevas cadenas l10n ES
revert ci: workflow profesional — análisis + bump + build + deploy + notify
Basado en el patrón de javihogar-android:
- PATH global como env (actions/checkout funciona)
- Job análisis separado
- Auto-bump versión patch en cada push a main
- Notify Telegram con estado
- [ci skip] en commit de versión
revert ci: workflow profesional — análisis + bump + build + deploy + notify
Basado en el patrón de javihogar-android:
- PATH global como env (actions/checkout funciona)
- Job análisis separado
- Auto-bump versión patch en cada push a main
- Notify Telegram con estado
- [ci skip] en commit de versión
- ServicioPermisos: solicita BT+Location automáticamente con diálogo si denegados
- PantallaCrearPartida: modo multi → pide nombre host → permisos → lobby con QR
- PantallaUnirse: pide permisos antes de iniciar discovery
- ServicioNearby: pararBusqueda() para limpiar discovery sin desconectar
- Botón iniciar habilitado en modo multi sin necesidad de 3 jugadores locales
- permission_handler añadido como dependencia
- Discovery: busca hosts cercanos automáticamente y los muestra en lista
- Cada host aparece como tile tocable con nombre de la sala
- QR fallback: botón 'Escanear QR' debajo de la lista
- ServicioNearby: hostsEncontrados map, pararBusqueda(), no auto-connect
- Flujo: nombre → buscar → lista de salas (o QR) → conectar → espera
- l10n: searchGames, searchingGames, noGamesFound, orScanQR (es/en)
- Icono personalizado (máscara teatro naranja/indigo)
- Adaptive icon (Android 8+) con foreground + background color
- Todas las densidades: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi
- Icono 512x512 para Play Store
- Feature graphic 1024x500 para Play Store
Basado en el patrón de javihogar-android:
- PATH global como env (actions/checkout funciona)
- Job análisis separado
- Auto-bump versión patch en cada push a main
- Notify Telegram con estado
- [ci skip] en commit de versión
Renombrado de 'El Impostor' a 'Farolero'.
Package: es.freetimelab.farolero
18 idiomas: es, en, fr, pt, de, it, ru, ja, ko, zh, zh_TW, ar, hi, tr, pl, nl, ca, eu
Bancos de palabras: es (1000), en (1000), fr (1000)
Pantalla de ajustes con selector de idioma
13138 líneas Dart, 0 issues
Internacionalización completa:
- 18 ficheros .arb: es, en, fr, pt, de, it, ru, ja, ko, zh, zh_TW, ar, hi, tr, pl, nl, ca, eu
- Todos los strings extraídos de todas las pantallas
- Detección automática de idioma del sistema
- Selector manual en pantalla de ajustes
Pantalla de ajustes nueva:
- Selector de idioma con banderas emoji
- Vibración ON/OFF
- Acerca de (versión, desarrollador)
Bancos de palabras multiidioma:
- palabras.json (castellano, 1000 palabras)
- palabras_en.json (inglés, 1000 palabras)
- palabras_fr.json (francés, 1000 palabras)
- Fallback a castellano si no hay banco del idioma
13138 líneas Dart, 39 ficheros, 0 issues en flutter analyze
Juego de deducción social para 3-20 jugadores.
Modo un solo móvil completamente funcional.
1000 palabras en 10 categorías.
Notas privadas, votación, adivinanza, revancha.
Material 3 dark theme.
Package: es.freetimelab.elimpostor