功能:实现 Group_Horse_Racing 群赛马插件
- 新增群赛马游戏插件,支持多人参与赛马竞猜 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
55
danding_bot/plugins/group_horse_racing/models.py
Normal file
55
danding_bot/plugins/group_horse_racing/models.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class RoomState(str, Enum):
|
||||
WAITING = "waiting"
|
||||
RUNNING = "running"
|
||||
FINISHED = "finished"
|
||||
INTERRUPTED = "interrupted"
|
||||
|
||||
|
||||
class HorseState(str, Enum):
|
||||
READY = "ready"
|
||||
RACING = "racing"
|
||||
FINISHED = "finished"
|
||||
|
||||
|
||||
@dataclass
|
||||
class Horse:
|
||||
owner_id: str
|
||||
name: str
|
||||
position: float = 0.0
|
||||
state: HorseState = HorseState.READY
|
||||
|
||||
|
||||
@dataclass
|
||||
class Bet:
|
||||
user_id: str
|
||||
horse_name: str
|
||||
amount: int
|
||||
|
||||
|
||||
@dataclass
|
||||
class Room:
|
||||
scope: str
|
||||
state: RoomState = RoomState.WAITING
|
||||
created_at: datetime = field(default_factory=datetime.now)
|
||||
horses: dict[str, Horse] = field(default_factory=dict)
|
||||
bets: list[Bet] = field(default_factory=list)
|
||||
champion_name: Optional[str] = None
|
||||
tick_count: int = 0
|
||||
|
||||
|
||||
@dataclass
|
||||
class RaceResult:
|
||||
race_id: str
|
||||
scope: str
|
||||
champion_name: str
|
||||
champion_owner: str
|
||||
participants: list[str]
|
||||
bet_distribution: dict[str, int]
|
||||
duration_ticks: int
|
||||
completed_at: datetime
|
||||
Reference in New Issue
Block a user