State Machines
Session FSM
См. state-session.
| From | Event | To |
|---|---|---|
| — | createSession | Lobby |
| Lobby | hostOpensCatalog | GameSelection |
| GameSelection | startGame | InGame |
| InGame | gameEnds | GameSelection |
| GameSelection | switchGame | InGame |
| * | closeSession | Closed |
GameInstance FSM
| Status | Описание |
|---|---|
active |
Идёт игра |
finished |
Победитель или ничья |
aborted |
Host отменил |
stateDiagram-v2
[*] --> active: created
active --> finished: plugin.is_finished
active --> aborted: host abort
finished --> [*]
aborted --> [*]
dice_board Turn FSM
См. state-game.
| Phase | Allowed actions |
|---|---|
| RollDice | roll_dice |
| AwaitCellChoice | choose_cell |
| GameOver | none |
Participant FSM (presence)
stateDiagram-v2
[*] --> Offline
Offline --> OnlineWeb: ws connect
Offline --> OnlineTG: bot /join
OnlineWeb --> DualOnline: tg connect
OnlineTG --> DualOnline: web connect
DualOnline --> OnlineWeb: tg disconnect
DualOnline --> OnlineTG: web disconnect
OnlineWeb --> Offline: ws disconnect
OnlineTG --> Offline: /leave
Control channel
При действии с канала X: control_channel = X (FR-029).