Commit Graph
56 Commits
Author SHA1 Message Date
FreeTLab 863690168c feat(multidispositivo): reconnection, impostor awareness and protocol fixes
Fixes
- SnapshotPartidaOnline no longer serializes esImpostor unless the game is
  over. Every phase change was broadcasting the impostor roles in clear to
  all clients.
- The impostor clue travels in its own field and only when the game enables
  it. It used to be sent as the category key ("todas" when no category was
  picked) and was overwritten by each phase snapshot.
- Eliminated players can no longer vote nor be voted for, on both the client
  screen and the host listener.
- Nearby listeners are removed on dispose; votes are no longer dispatched
  twice; votacionResultado no longer triggers two navigations.
- _jugadoresHostControlados handed the secret word to the host's own
  impostors in the payload.
- Impostor cap unified as maxImpostoresPara(n) for both modes, and the
  silent clamp in multi-device now reports the effective number.
- palabraAleatoria uses Random.secure.

Impostors know each other
- ConfigPartida.impostoresSeConocen, on by default. companerosImpostores is
  nullable: null means nothing to show, an empty list means "you are the
  only impostor".

Reconnection
- IdentidadDispositivo persists a stable device id; the host uses it as the
  clientId so a phone that drops and returns is the same client. Falls back
  to the endpointId for clients that do not send one.
- Usuario.absorbidoDe records the original owner when the host takes over a
  disconnected player, and they are handed back automatically on return.
- New solicitarResync/resync messages: the host replies with the current
  phase plus that client's own players, and the client jumps straight to the
  running phase.
- Readiness is keyed by clientId instead of endpointId, and a disconnected
  client no longer blocks the round.
- The retry gives up after three minutes, only reconnects to the host it
  belonged to, and is cancelled correctly while shutting down.

Per-word clue support
- The word bank loader accepts both the old list-of-strings format and the
  new one carrying a clue per word, falling back to the category clue.

Not verified on real devices: Nearby reconnection timing still needs two
Android phones.
2026-07-25 20:36:32 +02:00
FreeTLab 90ada9099f Multitud de iconos más
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m46s
2026-05-12 01:36:41 +02:00
FreeTLab 158a7ae6a8 Iconografía básica 2026-05-12 01:20:19 +02:00
FreeTLab 1885c85de9 uso de imágenes y eliminación de innecesarias 2026-05-12 01:09:05 +02:00
FreeTLab be255d5ea3 algunos iconos PRO 2026-05-12 00:11:43 +02:00
FreeTLab 532e3b84f1 correcciones
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m34s
2026-05-11 23:21:13 +02:00
FreeTLab 4599678e77 refactorización de pantallas 2026-05-11 23:16:38 +02:00
FreeTLab 1929d86689 corrección a un error
Build & Deploy Farolero / Análisis de código (push) Successful in 22s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m13s
2026-05-11 22:05:07 +02:00
FreeTLab 3c5d98d6dd literales y unificación de resultados en los dos modos de juego 2026-05-11 21:57:46 +02:00
FreeTLab 9007728310 A ver qué tal los nuevos botones ahora 2026-05-11 21:10:39 +02:00
FreeTLab e7c5b08ec0 Limpieza de peso de imágenes 2026-05-11 20:30:59 +02:00
FreeTLab 928cbd8a1d Corrección de errores
Build & Deploy Farolero / Análisis de código (push) Successful in 52s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m17s
2026-05-11 19:14:49 +02:00
FreeTLab df2659ab9d Nuevos assets para otras pantallas (meta)
Build & Deploy Farolero / Análisis de código (push) Failing after 56s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-11 19:04:45 +02:00
FreeTLab 2503b64d34 nuevas pantallas 2026-05-11 18:44:51 +02:00
FreeTLab 112a8a6142 Cambio de icono y traducciones 2026-05-11 18:05:13 +02:00
FreeTLab a93bab290a más mejoras 2026-05-10 23:54:09 +02:00
FreeTLab a8494f7b01 corrección de botonesa, y por lo visto también traducciones 2026-05-10 23:36:31 +02:00
FreeTLab fa7901019f aplicadas correcciones 2026-05-10 22:53:41 +02:00
FreeTLab 12af58d828 correcciones
Build & Deploy Farolero / Análisis de código (push) Successful in 35s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m49s
2026-05-10 22:27:10 +02:00
FreeTLab 79a66c2e82 nueva pantalla molona 2026-05-10 21:59:38 +02:00
FreeTLab a5a4040daf super assets 2026-05-10 21:32:28 +02:00
FreeTLab 42f01949c4 Cambios visuales completos 2026-05-10 17:28:35 +02:00
FreeTLab 4ca793cd37 feat(ui): premium main screen 2026-05-10 15:21:48 +02:00
FreeTLab b7a00d1394 Prueba diseño
Build & Deploy Farolero / Análisis de código (push) Successful in 19s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m29s
2026-05-10 14:36:36 +02:00
FreeTLab 5a315098a4 feat(ui): premium finish screen pipeline 2026-05-10 13:26:00 +02:00
FreeTLab 28554207ef Resumen de fin de partida espectacular 2026-05-10 02:07:08 +02:00
FreeTLab 8d1c712be7 avatares más grandes y usuario por defecto en partida individual 2026-05-10 00:26:26 +02:00
FreeTLab fbff87d108 avatares 2026-05-09 23:58:58 +02:00
FreeTLab c77c6bb128 Nuevos avatares 2026-05-09 21:18:25 +02:00
FreeTLab e2cebafdbb Gamificación 2026-05-09 17:24:46 +02:00
FreeTLab a5d24c2721 NUEVA GESTIÓN DE USUARIOS Y PARTIDAS 2026-05-09 16:23:55 +02:00
FreeTLab 0772ec526e Eliminar valores innecesarios de la configuración 2026-05-05 23:00:29 +02:00
FreeTLab 08235999d3 Mostrar la versión en la app 2026-05-05 22:56:25 +02:00
FreeTLab 031c190d74 Subidas para permitir compilación
Build & Deploy Farolero / Análisis de código (push) Successful in 11s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m20s
2026-05-05 22:48:05 +02:00
FreeTLab cfe5d479ff Posible mejora en el multidispositivo 2026-05-05 22:45:51 +02:00
FreeTLab 6e5e423ab4 Implementado:
No se puede marcar “vista” sin revelar la palabra antes.
Se puede volver a ver la palabra durante debate/votación/resultado.
Notas online privadas por partida y jugador.
Tests añadidos para notas scoped.
Ajusté roomId en el payload de inicio para que las notas no se mezclen entre partidas.
2026-05-05 21:49:40 +02:00
FreeTLab 1abdeb2f56 Ahora sí, corregido en teoría
Build & Deploy Farolero / Análisis de código (push) Successful in 10s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m58s
2026-05-05 20:54:13 +02:00
FreeTLab ff01d6c9e6 corrección de errores de compilación, eso espero
Build & Deploy Farolero / Análisis de código (push) Failing after 11s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-05 20:48:23 +02:00
FreeTLab 5c9e8b2b9c Reintentos de ejecución de partidas online! 2026-05-05 20:38:13 +02:00
FreeTLab 3b0b10ea50 traducciones 2026-05-04 22:23:11 +02:00
FreeTLab 957b42ea0c Gestión de usuarios y avatares en la aplicación. Gestión de traducciones de las palabras. 2026-05-04 20:58:02 +02:00
FreeTLab 7dd6c7bd74 Mejora flujo de datos en partidas multidispositivos
Build & Deploy Farolero / Análisis de código (push) Successful in 12s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m53s
2026-05-04 20:23:47 +02:00
FreeTLab 841f94e543 Completo y absoluto cambio de diseño
Build & Deploy Farolero / Análisis de código (push) Successful in 23s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m53s
2026-05-04 13:57:55 +02:00
Javier Bautista Fernández 5d3b3ef271 feat: Add eliminarUsuario message type and handle user removal in ServicioNearby 2026-04-27 16:04:03 +02:00
Javier Bautista Fernández a8d5b0f002 feat: Implement multiplayer game session management
Build & Deploy Farolero / Análisis de código (push) Has been cancelled
Build & Deploy Farolero / Build APK + AAB release (push) Has been cancelled
- Add models for managing player assignments and game session initialization in `inicio_partida_multijugador.dart`.
- Create a multiplayer room state management system in `sala_multijugador.dart`, including user registration, selection, and session validation.
- Develop a UI screen for displaying player words sequentially in `pantalla_palabras_cliente.dart`.
- Implement unit tests for the multiplayer session management and player assignment logic in `inicio_partida_multijugador_test.dart` and `sala_multijugador_test.dart`.
2026-04-27 14:02:33 +02:00
FreeTLab f41fbc7dd9 fix: boton ver palabra del host ahora funciona 2026-04-24 21:34:40 +02:00
FreeTLab 1231b32c3c feat: host como jugador 2026-04-24 20:01:54 +02:00
ShanaiaBot d3fc3386f9 feat(multi-device): host puede participar como jugador
- Añadido modelo Usuario con pool de usuarios sincronizado
- El host ahora recibe palabra y rol como cualquier jugador
- UI de selección de perfil en pantallas de lobby
- Los clientes pueden ver usuarios del servidor o crear nuevos
- El juego no inicia hasta que el host selecciona perfil
2026-04-24 18:47:56 +02:00
ShanaiaBot eb2662f561 fix: multidispositivo - Random seguro + gestor host + reacción clientes
Build & Deploy Farolero / Análisis de código (push) Has been cancelled
Build & Deploy Farolero / Build APK + AAB release (push) Has been cancelled
- 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
2026-04-15 02:09:05 +02:00
ShanaiaBot 723c075524 feat: permisos automáticos + cableado crear partida → lobby multi
Build & Deploy Farolero / Análisis de código (push) Successful in 9s
Build & Deploy Farolero / Build APK + AAB release (push) Failing after 4s
- 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
2026-04-04 03:41:13 +02:00