Coverage for src / beaverbunch / core / actions.py: 100.0%

20 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-05 20:45 +0000

1from dataclasses import dataclass 

2from enum import Enum, auto 

3 

4 

5class ActionType(Enum): 

6 DRAW_FROM_DECK = auto() 

7 DRAW_FROM_DISCARD = auto() 

8 REPLACE_CARD = auto() 

9 DISCARD_DRAWN = auto() 

10 PEEK_OWN_CARD = auto() 

11 SWAP_CARD = auto() 

12 SNAP = auto() 

13 

14 

15@dataclass(frozen=True) 

16class ReplaceCardAction: 

17 player_id: str 

18 hand_index: int 

19 

20 

21@dataclass(frozen=True) 

22class DiscardDrawnAction: 

23 player_id: str 

24 

25 

26@dataclass(frozen=True) 

27class PeekOwnCardAction: 

28 player_id: str 

29 hand_index: int 

30 

31 

32@dataclass(frozen=True) 

33class SwapCardAction: 

34 player_id: str 

35 own_index: int 

36 target_player_id: str 

37 target_index: int 

38 

39 

40@dataclass(frozen=True) 

41class SnapAction: 

42 player_id: str 

43 hand_index: int