aboutsummaryrefslogtreecommitdiffstats
path: root/backend/src/model/actions/coop.ts
blob: e1dfed51b2d1d6aac31870eb79fd372176ae69a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { SessionState } from "../session";

export type CoopSessionCreatedMessage = {
  type: "create";
  payload: {
    sessionId: string;
  };
};

export type ClientJoinedCoopSessionMessage = {
  type: "join";
  payload: {
    numberOfClients: number;
  };
};

export type CoopSessionStateChangeMessage = {
  type: "state";
  payload: {
    state: SessionState;
  };
};

export type CoopSessionMoveMessage = {
  type: "move";
  payload: {
    move: string;
  };
};

export type CoopSessionMoveTimeoutMessage = {
  type: "timeout";
  payload: {
    timeoutUntil: number;
  };
};

export type CoopSessionMessage =
  | CoopSessionCreatedMessage
  | ClientJoinedCoopSessionMessage
  | CoopSessionStateChangeMessage
  | CoopSessionMoveMessage
  | CoopSessionMoveTimeoutMessage;