64 lines
1.8 KiB
Dart
64 lines
1.8 KiB
Dart
import '../../../../core/network/ws_client.dart';
|
|
|
|
abstract class GameEvent {}
|
|
|
|
/// شروع اتصال با اقدامِ ورود (join_queue / create_table / join_table).
|
|
class ConnectGameEvent extends GameEvent {
|
|
final Map<String, dynamic> joinAction;
|
|
ConnectGameEvent(this.joinAction);
|
|
}
|
|
|
|
/// پیام دریافتی از سرور (داخلی).
|
|
class GameMessageReceived extends GameEvent {
|
|
final Map<String, dynamic> message;
|
|
GameMessageReceived(this.message);
|
|
}
|
|
|
|
/// تغییر وضعیت اتصال (داخلی).
|
|
class GameStatusChanged extends GameEvent {
|
|
final WsStatus status;
|
|
GameStatusChanged(this.status);
|
|
}
|
|
|
|
class ChooseTrumpEvent extends GameEvent {
|
|
final String suit;
|
|
ChooseTrumpEvent(this.suit);
|
|
}
|
|
|
|
class PlayCardEvent extends GameEvent {
|
|
final String card;
|
|
PlayCardEvent(this.card);
|
|
}
|
|
|
|
class ReshuffleEvent extends GameEvent {} // بُرِ مجدد با مصرفِ یک بلیت
|
|
|
|
/// ارسالِ پیام/شکلک (یکی از text یا emoji پر است).
|
|
class SendChatEvent extends GameEvent {
|
|
final String? text;
|
|
final String? emoji;
|
|
SendChatEvent({this.text, this.emoji});
|
|
}
|
|
|
|
/// پاککردنِ حبابِ پیامِ یک جایگاه پس از انقضا (id برای جلوگیری از پاکِ حبابِ جدیدتر).
|
|
class ExpireChatEvent extends GameEvent {
|
|
final int seat;
|
|
final int id;
|
|
ExpireChatEvent(this.seat, this.id);
|
|
}
|
|
|
|
class LeaveGameEvent extends GameEvent {}
|
|
|
|
class StartTableEvent extends GameEvent {
|
|
final int hands; // تعداد دستِ انتخابی (۳/۵/۷)
|
|
StartTableEvent(this.hands);
|
|
}
|
|
|
|
class RotateTableEvent extends GameEvent {
|
|
final int dir; // +۱/−۱ جهتِ چرخشِ جایگاهها
|
|
RotateTableEvent(this.dir);
|
|
}
|
|
|
|
class LeaveTableEvent extends GameEvent {}
|
|
|
|
class ClearNoticeEvent extends GameEvent {}
|