feat: add coin private table
This commit is contained in:
@@ -230,14 +230,30 @@ class _LobbyViewState extends State<_LobbyView> {
|
||||
for (final h in [3, 5, 7]) _handChip(h, lobby.isHost),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
const Text('ورودی (سکه) — برنده کل را میبرد',
|
||||
style: TextStyle(color: Colors.white70)),
|
||||
const SizedBox(height: 10),
|
||||
Wrap(
|
||||
alignment: WrapAlignment.center,
|
||||
spacing: 8,
|
||||
runSpacing: 8,
|
||||
children: [
|
||||
for (final v in const [0, 500, 1000, 5000, 20000])
|
||||
_stakeChip(v, lobby.isHost, lobby.stake),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
if (lobby.isHost)
|
||||
GameButton(
|
||||
label: 'شروع بازی',
|
||||
label: lobby.stake > 0
|
||||
? 'شروع بازی (${lobby.stake} سکه)'
|
||||
: 'شروع بازی',
|
||||
icon: Icons.play_arrow,
|
||||
width: double.infinity,
|
||||
colors: const [AppColors.success, AppColors.successDark],
|
||||
onTap: () => context.read<GameBloc>().startTable(_hands),
|
||||
onTap: () =>
|
||||
context.read<GameBloc>().startTable(_hands, stake: lobby.stake),
|
||||
)
|
||||
else
|
||||
const Text(
|
||||
@@ -374,6 +390,45 @@ class _LobbyViewState extends State<_LobbyView> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// چیپِ شرطِ سکه؛ میزبان با انتخاب، setStake را زنده برای همه پخش میکند.
|
||||
Widget _stakeChip(int value, bool editable, int current) {
|
||||
final selected = current == value;
|
||||
final label = value == 0 ? 'رایگان' : '$value';
|
||||
return GestureDetector(
|
||||
onTap: editable ? () => context.read<GameBloc>().setStake(value) : null,
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 8),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
gradient: selected
|
||||
? const LinearGradient(colors: [AppColors.gold, AppColors.goldDark])
|
||||
: null,
|
||||
color: selected ? null : AppColors.panel,
|
||||
border: Border.all(
|
||||
color: selected ? AppColors.gold : AppColors.goldDark,
|
||||
width: 1.6,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
if (value > 0)
|
||||
Icon(Icons.monetization_on,
|
||||
size: 16, color: selected ? AppColors.bg : AppColors.gold),
|
||||
if (value > 0) const SizedBox(width: 4),
|
||||
Text(
|
||||
label,
|
||||
style: TextStyle(
|
||||
color: selected ? AppColors.bg : Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// اوورلی شمارش معکوس ۳، ۲، ۱ پیش از شروع بازی.
|
||||
|
||||
Reference in New Issue
Block a user