nuevas pantallas

This commit is contained in:
2026-05-11 18:44:51 +02:00
parent f8545fc783
commit 2503b64d34
18 changed files with 179 additions and 67 deletions
+73
View File
@@ -22,6 +22,19 @@ class FondoFarolero extends StatelessWidget {
decoration: const BoxDecoration(gradient: TemaApp.gradienteFondo),
child: Stack(
children: [
if (intenso)
Positioned.fill(
child: IgnorePointer(
child: Image.asset(
'assets/ui/generated/gameplay/gameplay_atmosphere_bg.png',
fit: BoxFit.cover,
opacity: const AlwaysStoppedAnimation(0.30),
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) =>
const SizedBox.shrink(),
),
),
),
Positioned.fill(
child: CustomPaint(painter: _FondoFaroleroPainter(intenso: intenso)),
),
@@ -383,6 +396,56 @@ class BotonFarolero extends StatelessWidget {
}
}
class ArteGameplayFarolero extends StatelessWidget {
final String assetPath;
final double height;
final double opacity;
final EdgeInsetsGeometry padding;
const ArteGameplayFarolero({
super.key,
required this.assetPath,
this.height = 128,
this.opacity = 0.92,
this.padding = EdgeInsets.zero,
});
const ArteGameplayFarolero.fase({
super.key,
this.height = 128,
this.opacity = 0.92,
this.padding = EdgeInsets.zero,
}) : assetPath = 'assets/ui/generated/gameplay/gameplay_phase_emblem.png';
const ArteGameplayFarolero.notas({
super.key,
this.height = 150,
this.opacity = 0.94,
this.padding = EdgeInsets.zero,
}) : assetPath = 'assets/ui/generated/gameplay/notes_strategy_art.png';
@override
Widget build(BuildContext context) {
return ExcludeSemantics(
child: Padding(
padding: padding,
child: SizedBox(
height: height,
width: double.infinity,
child: Image.asset(
assetPath,
fit: BoxFit.contain,
opacity: AlwaysStoppedAnimation(opacity),
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) =>
const SizedBox.shrink(),
),
),
),
);
}
}
class AccesoFarolero extends StatelessWidget {
final String etiqueta;
final IconData icono;
@@ -452,6 +515,16 @@ class TarjetaPalabraFarolero extends StatelessWidget {
child: Stack(
alignment: Alignment.center,
children: [
Positioned.fill(
child: Image.asset(
'assets/ui/generated/gameplay/gameplay_phase_emblem.png',
fit: BoxFit.contain,
opacity: const AlwaysStoppedAnimation(0.14),
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) =>
const SizedBox.shrink(),
),
),
Positioned.fill(
child: Image.asset(
'assets/ui/premium/word_reveal_glow.png',