algunos iconos PRO
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../estado/estado_juego.dart';
|
||||
@@ -122,6 +122,7 @@ class _PantallaAdivinanzaState extends State<PantallaAdivinanza> {
|
||||
child: BotonFarolero(
|
||||
texto: l10n.guess,
|
||||
icono: Icons.send,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_impostor_mask.webp',
|
||||
onPressed: _controlador.text.trim().isNotEmpty ? _intentarAdivinar : null,
|
||||
),
|
||||
),
|
||||
@@ -173,6 +174,7 @@ class _PantallaAdivinanzaState extends State<PantallaAdivinanza> {
|
||||
BotonFarolero(
|
||||
texto: acierto ? l10n.seeEndResult : l10n.nextRound,
|
||||
icono: acierto ? Icons.emoji_events : Icons.skip_next,
|
||||
assetIconPath: acierto ? 'assets/ui/generated/actions/action_result_trophy.webp' : null,
|
||||
onPressed: acierto
|
||||
? () {
|
||||
Navigator.pushReplacement(
|
||||
|
||||
@@ -122,6 +122,7 @@ class _PantallaDebateState extends State<PantallaDebate> {
|
||||
child: BotonFarolero.oscuro(
|
||||
texto: l10n.notes,
|
||||
icono: Icons.edit_note,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_notes_quill.webp',
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
@@ -136,6 +137,7 @@ class _PantallaDebateState extends State<PantallaDebate> {
|
||||
child: BotonFarolero(
|
||||
texto: l10n.goToVoting,
|
||||
icono: Icons.how_to_vote,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_vote_mask.webp',
|
||||
onPressed: _irAVotacion,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'dart:async';
|
||||
import 'dart:async';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
||||
@@ -205,6 +205,9 @@ class _PantallaDebateClienteState extends State<PantallaDebateCliente> {
|
||||
icono: _votacionSolicitada
|
||||
? Icons.hourglass_empty
|
||||
: Icons.how_to_vote,
|
||||
assetIconPath: _votacionSolicitada
|
||||
? null
|
||||
: 'assets/ui/generated/actions/action_vote_mask.webp',
|
||||
onPressed: _votacionSolicitada
|
||||
? null
|
||||
: () {
|
||||
|
||||
@@ -804,12 +804,14 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
||||
return BotonFarolero.secundario(
|
||||
texto: l10n.goToVoting,
|
||||
icono: Icons.how_to_vote,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_vote_mask.webp',
|
||||
onPressed: () => _avanzarAFase(FaseJuego.votacion),
|
||||
);
|
||||
case FaseJuego.votacion:
|
||||
return BotonFarolero(
|
||||
texto: todosVotaron ? l10n.revealResult : l10n.waitingVoting,
|
||||
icono: Icons.visibility,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_result_trophy.webp',
|
||||
onPressed: todosVotaron ? () => _avanzarAFase(FaseJuego.resultado) : null,
|
||||
);
|
||||
case FaseJuego.resultado:
|
||||
@@ -843,6 +845,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
||||
return BotonFarolero(
|
||||
texto: l10n.seeEndResult,
|
||||
icono: Icons.emoji_events,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_result_trophy.webp',
|
||||
onPressed: () => _finalizarPartidaOnline(context),
|
||||
);
|
||||
}
|
||||
@@ -853,6 +856,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
||||
BotonFarolero.oscuro(
|
||||
texto: l10n.impostorGuessWord,
|
||||
icono: Icons.psychology,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_impostor_mask.webp',
|
||||
onPressed: () => _iniciarAdivinanzaOnline(context),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
@@ -878,6 +882,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
||||
BotonFarolero(
|
||||
texto: l10n.guess,
|
||||
icono: Icons.check_circle,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_impostor_mask.webp',
|
||||
onPressed: () => _resolverAdivinanzaOnline(context),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:farolero/tema/componentes_farolero.dart';
|
||||
import 'package:farolero/tema/tema_app.dart';
|
||||
|
||||
/// Pantalla que ve cada jugador cuando recibe su palabra (modo multidispositivo).
|
||||
/// El cliente recibe la palabra vía ServicioNearby y se navega aquí.
|
||||
/// El cliente recibe la palabra vÃa ServicioNearby y se navega aquÃ.
|
||||
/// NO es la pantalla del host.
|
||||
class PantallaPalabraCliente extends StatefulWidget {
|
||||
final String palabra;
|
||||
@@ -166,7 +166,7 @@ class _PantallaPalabraClienteState extends State<PantallaPalabraCliente> {
|
||||
),
|
||||
|
||||
const Spacer(),
|
||||
// Botón confirmar
|
||||
// Botón confirmar
|
||||
BotonFarolero(
|
||||
texto: _haRevelado ? l10n.iveSeenIt : l10n.tapToSee,
|
||||
icono: Icons.check,
|
||||
|
||||
@@ -102,6 +102,7 @@ class _PantallaVotacionState extends State<PantallaVotacion> {
|
||||
BotonFarolero(
|
||||
texto: l10n.confirmVote,
|
||||
icono: Icons.how_to_vote,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_vote_mask.webp',
|
||||
onPressed: _seleccionado != null
|
||||
? () {
|
||||
estado.registrarVoto(votanteActual.id, _seleccionado!);
|
||||
@@ -147,6 +148,7 @@ class _PantallaVotacionState extends State<PantallaVotacion> {
|
||||
BotonFarolero(
|
||||
texto: l10n.revealResult,
|
||||
icono: Icons.visibility,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_result_trophy.webp',
|
||||
onPressed: () {
|
||||
final resultado = estado.procesarVotacion();
|
||||
if (resultado != null) {
|
||||
|
||||
@@ -12,7 +12,7 @@ import 'package:farolero/tema/componentes_farolero.dart';
|
||||
import 'package:farolero/tema/tema_app.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
/// Pantalla de votación para cliente multidispositivo.
|
||||
/// Pantalla de votación para cliente multidispositivo.
|
||||
/// Un cliente puede manejar uno o varios jugadores, por eso se recoge un voto
|
||||
/// por cada jugador controlado activo.
|
||||
class PantallaVotacionCliente extends StatefulWidget {
|
||||
@@ -186,6 +186,7 @@ class _PantallaVotacionClienteState extends State<PantallaVotacionCliente> {
|
||||
BotonFarolero.secundario(
|
||||
texto: l10n.votar,
|
||||
icono: Icons.how_to_vote,
|
||||
assetIconPath: 'assets/ui/generated/actions/action_vote_mask.webp',
|
||||
onPressed: _votacionCompleta
|
||||
? () => widget.onVotos(Map.unmodifiable(_votosPorVotante))
|
||||
: null,
|
||||
|
||||
@@ -233,6 +233,7 @@ class LogoFarolero extends StatelessWidget {
|
||||
class BotonFarolero extends StatelessWidget {
|
||||
final String texto;
|
||||
final IconData icono;
|
||||
final String? assetIconPath;
|
||||
final VoidCallback? onPressed;
|
||||
final LinearGradient gradient;
|
||||
final Color foreground;
|
||||
@@ -242,6 +243,7 @@ class BotonFarolero extends StatelessWidget {
|
||||
super.key,
|
||||
required this.texto,
|
||||
required this.icono,
|
||||
this.assetIconPath,
|
||||
required this.onPressed,
|
||||
this.gradient = TemaApp.gradientePrimario,
|
||||
this.foreground = Colors.black,
|
||||
@@ -252,6 +254,7 @@ class BotonFarolero extends StatelessWidget {
|
||||
super.key,
|
||||
required this.texto,
|
||||
required this.icono,
|
||||
this.assetIconPath,
|
||||
required this.onPressed,
|
||||
}) : gradient = const LinearGradient(
|
||||
colors: [TemaApp.colorPurpura, Color(0xFF2B1736)],
|
||||
@@ -265,6 +268,7 @@ class BotonFarolero extends StatelessWidget {
|
||||
super.key,
|
||||
required this.texto,
|
||||
required this.icono,
|
||||
this.assetIconPath,
|
||||
required this.onPressed,
|
||||
}) : gradient = const LinearGradient(
|
||||
colors: [Color(0xFF151F27), Color(0xFF090E13)],
|
||||
@@ -303,7 +307,14 @@ class BotonFarolero extends StatelessWidget {
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 44,
|
||||
child: Icon(icono, color: colorTexto, size: 30),
|
||||
height: 40,
|
||||
child: assetIconPath == null
|
||||
? Icon(icono, color: colorTexto, size: 30)
|
||||
: Image.asset(
|
||||
assetIconPath!,
|
||||
fit: BoxFit.contain,
|
||||
filterQuality: FilterQuality.medium,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
|
||||
Reference in New Issue
Block a user