Gamificación
This commit is contained in:
@@ -314,11 +314,15 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
|
||||
if (!mounted) return;
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
final perfil = context.read<ServicioPerfilUsuario>().perfil;
|
||||
final servicioPerfil = context.read<ServicioPerfilUsuario>();
|
||||
final perfil = servicioPerfil.perfil;
|
||||
final gamificacion = servicioPerfil.resumenGamificacion;
|
||||
final ok = await nearby.buscarHosts(
|
||||
_nombreController.text.trim(),
|
||||
miNick: perfil.nick,
|
||||
miAvatar: perfil.avatarAsset,
|
||||
miFuego: gamificacion.fuego,
|
||||
miMedallas: gamificacion.medallas,
|
||||
);
|
||||
|
||||
if (ok) {
|
||||
@@ -342,7 +346,9 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
});
|
||||
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
final perfil = context.read<ServicioPerfilUsuario>().perfil;
|
||||
final servicioPerfil = context.read<ServicioPerfilUsuario>();
|
||||
final perfil = servicioPerfil.perfil;
|
||||
final gamificacion = servicioPerfil.resumenGamificacion;
|
||||
// Parar discovery antes de conectar
|
||||
await nearby.pararBusqueda();
|
||||
final ok = await nearby.conectarAHost(
|
||||
@@ -350,6 +356,8 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
_nombreController.text.trim(),
|
||||
miNick: perfil.nick,
|
||||
miAvatar: perfil.avatarAsset,
|
||||
miFuego: gamificacion.fuego,
|
||||
miMedallas: gamificacion.medallas,
|
||||
);
|
||||
|
||||
if (!ok && mounted) {
|
||||
@@ -389,11 +397,15 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
// Iniciar búsqueda para que Nearby encuentre al host
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
if (!nearby.buscando) {
|
||||
final perfil = context.read<ServicioPerfilUsuario>().perfil;
|
||||
final servicioPerfil = context.read<ServicioPerfilUsuario>();
|
||||
final perfil = servicioPerfil.perfil;
|
||||
final gamificacion = servicioPerfil.resumenGamificacion;
|
||||
await nearby.buscarHosts(
|
||||
_nombreController.text.trim(),
|
||||
miNick: perfil.nick,
|
||||
miAvatar: perfil.avatarAsset,
|
||||
miFuego: gamificacion.fuego,
|
||||
miMedallas: gamificacion.medallas,
|
||||
);
|
||||
}
|
||||
return;
|
||||
@@ -835,11 +847,15 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
);
|
||||
|
||||
if (nombre != null && nombre.trim().isNotEmpty) {
|
||||
final gamificacion =
|
||||
context.read<ServicioPerfilUsuario>().resumenGamificacion;
|
||||
await nearby.crearUsuarioSala(
|
||||
nombre.trim(),
|
||||
seleccionar: true,
|
||||
nick: perfil.nick,
|
||||
avatar: perfil.avatarAsset,
|
||||
fuego: gamificacion.fuego,
|
||||
medallas: gamificacion.medallas,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -861,17 +877,29 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
usuario.estaSeleccionado && usuario.clienteIdSeleccionado != miClientId;
|
||||
|
||||
return ListTile(
|
||||
leading: Text(
|
||||
usuario.avatar ?? '??',
|
||||
style: const TextStyle(fontSize: 24),
|
||||
leading: AvatarFarolero(
|
||||
texto: usuario.nombre.isEmpty ? '?' : usuario.nombre[0],
|
||||
assetPath: usuario.avatar,
|
||||
size: 38,
|
||||
fuego: usuario.fuego,
|
||||
medallas: usuario.medallas,
|
||||
),
|
||||
title: Text(usuario.nombre),
|
||||
subtitle: Text(
|
||||
seleccionadoPorMi
|
||||
? 'Seleccionado por este m?vil'
|
||||
: seleccionadoPorOtro
|
||||
? 'No disponible'
|
||||
: 'Disponible',
|
||||
subtitle: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
seleccionadoPorMi
|
||||
? 'Seleccionado por este móvil'
|
||||
: seleccionadoPorOtro
|
||||
? 'No disponible'
|
||||
: 'Disponible',
|
||||
),
|
||||
if (usuario.medallas.isNotEmpty) ...[
|
||||
const SizedBox(height: 4),
|
||||
MedallasCompactasFarolero(ids: usuario.medallas),
|
||||
],
|
||||
],
|
||||
),
|
||||
trailing: seleccionadoPorMi
|
||||
? IconButton(
|
||||
|
||||
Reference in New Issue
Block a user