feat: add coin private table
This commit is contained in:
@@ -59,8 +59,10 @@ class GameBloc extends Bloc<GameEvent, GameUiState> {
|
||||
emit(state.copyWith(chatBubbles: next));
|
||||
});
|
||||
on<LeaveGameEvent>((event, emit) => repository.send({'type': 'leave'}));
|
||||
on<StartTableEvent>((event, emit) =>
|
||||
repository.send({'type': 'start_table', 'hands': event.hands}));
|
||||
on<StartTableEvent>((event, emit) => repository.send(
|
||||
{'type': 'start_table', 'hands': event.hands, 'stake': event.stake}));
|
||||
on<SetStakeEvent>((event, emit) =>
|
||||
repository.send({'type': 'set_stake', 'stake': event.stake}));
|
||||
on<RotateTableEvent>((event, emit) =>
|
||||
repository.send({'type': 'rotate_table', 'dir': event.dir}));
|
||||
on<LeaveTableEvent>((event, emit) => repository.send({'type': 'leave_table'}));
|
||||
@@ -115,7 +117,9 @@ class GameBloc extends Bloc<GameEvent, GameUiState> {
|
||||
void sendChatEmoji(String emoji) => add(SendChatEvent(emoji: emoji));
|
||||
void playCard(String card) => add(PlayCardEvent(card));
|
||||
void leave() => add(LeaveGameEvent());
|
||||
void startTable(int hands) => add(StartTableEvent(hands));
|
||||
void startTable(int hands, {int stake = 0}) =>
|
||||
add(StartTableEvent(hands, stake: stake));
|
||||
void setStake(int stake) => add(SetStakeEvent(stake));
|
||||
void rotateTable(int dir) => add(RotateTableEvent(dir));
|
||||
void leaveTable() => add(LeaveTableEvent());
|
||||
void clearNotice() => add(ClearNoticeEvent());
|
||||
|
||||
@@ -50,7 +50,13 @@ class LeaveGameEvent extends GameEvent {}
|
||||
|
||||
class StartTableEvent extends GameEvent {
|
||||
final int hands; // تعداد دستِ انتخابی (۳/۵/۷)
|
||||
StartTableEvent(this.hands);
|
||||
final int stake; // شرطِ سکهایِ هر بازیکن
|
||||
StartTableEvent(this.hands, {this.stake = 0});
|
||||
}
|
||||
|
||||
class SetStakeEvent extends GameEvent {
|
||||
final int stake; // شرطِ سکهایِ میز (تنظیمِ زندهی میزبان)
|
||||
SetStakeEvent(this.stake);
|
||||
}
|
||||
|
||||
class RotateTableEvent extends GameEvent {
|
||||
|
||||
@@ -19,6 +19,7 @@ class TableLobby {
|
||||
final int youSeat; // جایگاهِ مطلقِ خودِ کاربر (برای چیدمانِ صحنه)
|
||||
final int remaining;
|
||||
final bool unlimited;
|
||||
final int stake; // شرطِ سکهایِ هر بازیکن (۰ یعنی رایگان)
|
||||
const TableLobby({
|
||||
required this.code,
|
||||
required this.players,
|
||||
@@ -26,6 +27,7 @@ class TableLobby {
|
||||
required this.youSeat,
|
||||
required this.remaining,
|
||||
required this.unlimited,
|
||||
required this.stake,
|
||||
});
|
||||
|
||||
factory TableLobby.fromJson(Map<String, dynamic> j) => TableLobby(
|
||||
@@ -41,9 +43,10 @@ class TableLobby {
|
||||
youSeat: (j['you_seat'] ?? 0) as int,
|
||||
remaining: (j['remaining'] ?? 0) as int,
|
||||
unlimited: (j['unlimited'] ?? false) as bool,
|
||||
stake: (j['stake'] ?? 0) as int,
|
||||
);
|
||||
|
||||
String get sig => '$code|$isHost|$youSeat|$remaining|$unlimited|'
|
||||
String get sig => '$code|$isHost|$youSeat|$remaining|$unlimited|$stake|'
|
||||
'${players.map((p) => '${p.name}${p.host ? '*' : ''}@${p.seat}').join(',')}';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user