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.
This commit is contained in:
@@ -39,6 +39,7 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
String? _palabraRecibida;
|
||||
bool _esImpostor = false;
|
||||
String? _pistaCategoria;
|
||||
String? _partidaId;
|
||||
final List<Jugador> _jugadores = [];
|
||||
final List<JugadorInicioPartida> _jugadoresControlados = [];
|
||||
|
||||
@@ -87,8 +88,24 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
} else {
|
||||
_palabraRecibida = mensaje.datos['palabra'] as String?;
|
||||
_esImpostor = mensaje.datos['esImpostor'] as bool? ?? false;
|
||||
if (_palabraRecibida != null) {
|
||||
_jugadoresControlados.add(
|
||||
JugadorInicioPartida(
|
||||
jugadorId: nearby.miClientId ?? '_legacy',
|
||||
nombre: _nombreController.text.trim().isEmpty
|
||||
? 'Jugador'
|
||||
: _nombreController.text.trim(),
|
||||
esImpostor: _esImpostor,
|
||||
palabra: _palabraRecibida,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
_pistaCategoria = mensaje.datos['categoria'] as String?;
|
||||
_partidaId = (mensaje.datos['roomId'] as String?) ??
|
||||
nearby.roomId ??
|
||||
(mensaje.datos['clientId'] as String?) ??
|
||||
DateTime.now().microsecondsSinceEpoch.toString();
|
||||
});
|
||||
// Navegar a pantalla de palabra del cliente
|
||||
if (mounted && (_jugadoresControlados.isNotEmpty || _palabraRecibida != null)) {
|
||||
@@ -160,6 +177,10 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
datosFase?['tiempoDebateSegundos'] as int?,
|
||||
primerTurnoNombre:
|
||||
datosFase?['primerTurnoNombre'] as String?,
|
||||
partidaId: _partidaId ?? context.read<ServicioNearby>().roomId,
|
||||
pistaCategoria: _pistaCategoria,
|
||||
jugadores: List.unmodifiable(_jugadores),
|
||||
jugadoresControlados: List.unmodifiable(_jugadoresControlados),
|
||||
onSolicitarVotacion: () {
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
if (nearby.hostEndpointId != null) {
|
||||
@@ -182,6 +203,8 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
builder: (_) => PantallaVotacionCliente(
|
||||
jugadores: _jugadores,
|
||||
jugadoresControlados: List.unmodifiable(_jugadoresControlados),
|
||||
partidaId: _partidaId ?? context.read<ServicioNearby>().roomId,
|
||||
pistaCategoria: _pistaCategoria,
|
||||
onVotos: (votos) {
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
if (nearby.hostEndpointId != null) {
|
||||
|
||||
Reference in New Issue
Block a user