diff --git a/assets/ui/generated/meta/history_ledger_art.png b/assets/ui/generated/meta/history_ledger_art.png new file mode 100644 index 0000000..e2355b8 Binary files /dev/null and b/assets/ui/generated/meta/history_ledger_art.png differ diff --git a/assets/ui/generated/meta/result_verdict_art.png b/assets/ui/generated/meta/result_verdict_art.png new file mode 100644 index 0000000..7b349ab Binary files /dev/null and b/assets/ui/generated/meta/result_verdict_art.png differ diff --git a/assets/ui/generated/meta/settings_profile_art.png b/assets/ui/generated/meta/settings_profile_art.png new file mode 100644 index 0000000..ade679f Binary files /dev/null and b/assets/ui/generated/meta/settings_profile_art.png differ diff --git a/lib/pantallas/pantalla_ajustes.dart b/lib/pantallas/pantalla_ajustes.dart index 2908caf..39f6f16 100644 --- a/lib/pantallas/pantalla_ajustes.dart +++ b/lib/pantallas/pantalla_ajustes.dart @@ -33,6 +33,8 @@ class _PantallaAjustesState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + const ArteGameplayFarolero.ajustes(height: 142), + const SizedBox(height: 8), Card( child: InkWell( borderRadius: BorderRadius.circular(12), @@ -157,6 +159,8 @@ class _PantallaAjustesState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ + const ArteGameplayFarolero.ajustes(height: 118), + const SizedBox(height: 12), TextField( controller: nombreController, textCapitalization: TextCapitalization.words, diff --git a/lib/pantallas/pantalla_historial.dart b/lib/pantallas/pantalla_historial.dart index 2762518..87aa425 100644 --- a/lib/pantallas/pantalla_historial.dart +++ b/lib/pantallas/pantalla_historial.dart @@ -23,10 +23,17 @@ class PantallaHistorial extends StatelessWidget { ? Center( child: Padding( padding: const EdgeInsets.all(20), - child: EstadoVacioFarolero( - icono: Icons.history_rounded, - titulo: l10n.history, - subtitulo: l10n.noSavedGames, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const ArteGameplayFarolero.historial(height: 156), + const SizedBox(height: 12), + EstadoVacioFarolero( + icono: Icons.history_rounded, + titulo: l10n.history, + subtitulo: l10n.noSavedGames, + ), + ], ), ), ) @@ -34,10 +41,13 @@ class PantallaHistorial extends StatelessWidget { top: false, child: ListView.separated( padding: const EdgeInsets.fromLTRB(16, 12, 16, 24), - itemCount: partidas.length, + itemCount: partidas.length + 1, separatorBuilder: (_, __) => const SizedBox(height: 12), itemBuilder: (context, index) { - final partida = partidas[index]; + if (index == 0) { + return const ArteGameplayFarolero.historial(height: 132); + } + final partida = partidas[index - 1]; final ganaronJugadores = partida.ganador == 'jugadores'; final color = ganaronJugadores ? TemaApp.colorVerde diff --git a/lib/pantallas/pantalla_resultado.dart b/lib/pantallas/pantalla_resultado.dart index 80b4d39..327e0e5 100644 --- a/lib/pantallas/pantalla_resultado.dart +++ b/lib/pantallas/pantalla_resultado.dart @@ -73,7 +73,7 @@ class _PantallaResultadoState extends State children: [ // Animación de suspense if (!_revelado) ...[ - const Text('🥁', style: TextStyle(fontSize: 64)), + const ArteGameplayFarolero.resultado(height: 152), const SizedBox(height: 16), Text( l10n.revealing, @@ -89,10 +89,7 @@ class _PantallaResultadoState extends State opacity: _animOpacidad, child: Column( children: [ - Text( - widget.resultado.eraImpostor ? '🎭' : '😇', - style: const TextStyle(fontSize: 72), - ), + const ArteGameplayFarolero.resultado(height: 164), const SizedBox(height: 16), Text( widget.resultado.eliminadoNombre, diff --git a/lib/pantallas/pantalla_resultado_online.dart b/lib/pantallas/pantalla_resultado_online.dart index e2922a3..a90df4b 100644 --- a/lib/pantallas/pantalla_resultado_online.dart +++ b/lib/pantallas/pantalla_resultado_online.dart @@ -222,7 +222,7 @@ class _PantallaResultadoOnlineState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - const Icon(Icons.hourglass_top, size: 48), + const ArteGameplayFarolero.resultado(height: 142), const SizedBox(height: 16), Text( _snapshot.mensaje ?? l10n.impostorCanGuess, @@ -261,6 +261,8 @@ class _PantallaResultadoOnlineState extends State { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + const ArteGameplayFarolero.resultado(height: 132), + const SizedBox(height: 12), Container( width: double.infinity, padding: const EdgeInsets.all(20), diff --git a/lib/pantallas/pantalla_revision_palabra.dart b/lib/pantallas/pantalla_revision_palabra.dart index 385cc72..4613cba 100644 --- a/lib/pantallas/pantalla_revision_palabra.dart +++ b/lib/pantallas/pantalla_revision_palabra.dart @@ -21,6 +21,8 @@ Future mostrarRevisionPalabraOnline({ shrinkWrap: true, padding: const EdgeInsets.all(16), children: [ + const ArteGameplayFarolero.fase(height: 108), + const SizedBox(height: 10), Text( AppLocalizations.of(sheetContext)!.seeYourWord, style: Theme.of(sheetContext).textTheme.titleLarge, @@ -72,6 +74,8 @@ class _DialogoRevisionPalabra extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.min, children: [ + const ArteGameplayFarolero.fase(height: 118), + const SizedBox(height: 10), Text( jugador.nombre, style: Theme.of(context).textTheme.titleLarge, diff --git a/lib/tema/componentes_farolero.dart b/lib/tema/componentes_farolero.dart index 99fec1c..48894ed 100644 --- a/lib/tema/componentes_farolero.dart +++ b/lib/tema/componentes_farolero.dart @@ -424,6 +424,27 @@ class ArteGameplayFarolero extends StatelessWidget { this.padding = EdgeInsets.zero, }) : assetPath = 'assets/ui/generated/gameplay/notes_strategy_art.png'; + const ArteGameplayFarolero.ajustes({ + super.key, + this.height = 150, + this.opacity = 0.94, + this.padding = EdgeInsets.zero, + }) : assetPath = 'assets/ui/generated/meta/settings_profile_art.png'; + + const ArteGameplayFarolero.historial({ + super.key, + this.height = 150, + this.opacity = 0.94, + this.padding = EdgeInsets.zero, + }) : assetPath = 'assets/ui/generated/meta/history_ledger_art.png'; + + const ArteGameplayFarolero.resultado({ + super.key, + this.height = 150, + this.opacity = 0.94, + this.padding = EdgeInsets.zero, + }) : assetPath = 'assets/ui/generated/meta/result_verdict_art.png'; + @override Widget build(BuildContext context) { return ExcludeSemantics( diff --git a/pubspec.yaml b/pubspec.yaml index ce506a4..d07b6bd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,3 +47,4 @@ flutter: - assets/ui/generated/join_lobby/ - assets/ui/generated/final_rewards/ - assets/ui/generated/gameplay/ + - assets/ui/generated/meta/