diff --git a/assets/images/Spare_background.png b/assets/images/Spare_background.png new file mode 100644 index 0000000..8519dce Binary files /dev/null and b/assets/images/Spare_background.png differ diff --git a/lib/views/ingame_screen.dart b/lib/views/ingame_screen.dart index 35b7e61..80a7e2c 100644 --- a/lib/views/ingame_screen.dart +++ b/lib/views/ingame_screen.dart @@ -49,7 +49,9 @@ class _InGameScreenState extends State { ElevatedButton( onPressed: () { setState(() { - widgetHolder = FinalScoreBoard(); + widgetHolder = InGameCardThrow( + numberThrow: 2, + ); }); }, child: Text( diff --git a/lib/widgets/ingame_widgets.dart b/lib/widgets/ingame_widgets.dart index ddfbc7d..fb1dd3e 100644 --- a/lib/widgets/ingame_widgets.dart +++ b/lib/widgets/ingame_widgets.dart @@ -345,7 +345,9 @@ class _UserInGameState extends State { } class InGameCardThrow extends StatefulWidget { - const InGameCardThrow({Key? key}) : super(key: key); + final int numberThrow; + const InGameCardThrow({Key? key, required this.numberThrow}) + : super(key: key); @override State createState() => _InGameCardThrowState(); @@ -412,7 +414,9 @@ class _InGameCardThrowState extends State { image: "assets/images/image_user_red.png"), ], )), - NumberPad(), + NumberPad( + numberThrow: widget.numberThrow, + ), ], ), ); @@ -486,8 +490,45 @@ class StrikeButton extends StatelessWidget { } } +class SpareButton extends StatelessWidget { + final int currentSelected; + final IntCallback onSonChanged; + const SpareButton( + {Key? key, required this.onSonChanged, required this.currentSelected}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + onSonChanged(10); + }, + child: Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/Spare_background.png"), + )), + child: Center( + child: Text( + "SPARE !", + style: GoogleFonts.roboto( + color: + currentSelected == 10 ? Colors.pink : CupertinoColors.black, + decoration: TextDecoration.none, + fontWeight: FontWeight.w900, + fontStyle: FontStyle.italic, + fontSize: 40), + )), + ), + ); + } +} + class NumberPad extends StatefulWidget { - const NumberPad({Key? key}) : super(key: key); + final int numberThrow; + const NumberPad({Key? key, required this.numberThrow}) : super(key: key); @override State createState() => _NumberPadState(); @@ -608,12 +649,19 @@ class _NumberPadState extends State { ], ), ), - StrikeButton( - currentSelected: NumSelected, - onSonChanged: (int newId) { - updateId(newId); - }, - ), + widget.numberThrow == 1 + ? StrikeButton( + currentSelected: NumSelected, + onSonChanged: (int newId) { + updateId(newId); + }, + ) + : SpareButton( + currentSelected: NumSelected, + onSonChanged: (int newId) { + updateId(newId); + }, + ) ], ); }