trucoshi 0.0.22 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +37 -37
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +18 -0
  5. package/dist/lib/classes/Deck.d.ts +16 -3
  6. package/dist/lib/classes/Deck.js +38 -38
  7. package/dist/lib/classes/GameLoop.d.ts +20 -0
  8. package/dist/lib/classes/GameLoop.js +103 -0
  9. package/dist/lib/classes/Hand.d.ts +38 -2
  10. package/dist/lib/classes/Hand.js +233 -233
  11. package/dist/lib/classes/Lobby.d.ts +27 -0
  12. package/dist/lib/classes/Lobby.js +114 -0
  13. package/dist/lib/classes/Match.d.ts +18 -2
  14. package/dist/lib/classes/Match.js +115 -115
  15. package/dist/lib/classes/Play.d.ts +21 -2
  16. package/dist/lib/classes/Play.js +39 -39
  17. package/dist/lib/classes/Player.d.ts +24 -3
  18. package/dist/lib/classes/Player.js +71 -71
  19. package/dist/lib/classes/Round.d.ts +17 -2
  20. package/dist/lib/classes/Round.js +34 -34
  21. package/dist/lib/classes/Table.d.ts +12 -2
  22. package/dist/lib/classes/Table.js +30 -30
  23. package/dist/lib/classes/Team.d.ts +17 -3
  24. package/dist/lib/classes/Team.js +58 -58
  25. package/dist/lib/classes/Truco.d.ts +18 -2
  26. package/dist/lib/classes/Truco.js +110 -110
  27. package/dist/lib/classes/index.d.ts +11 -0
  28. package/dist/lib/classes/index.js +27 -0
  29. package/dist/lib/constants.d.ts +45 -52
  30. package/dist/lib/constants.js +85 -93
  31. package/dist/lib/index.d.ts +2 -17
  32. package/dist/lib/index.js +18 -211
  33. package/dist/lib/types.d.ts +50 -206
  34. package/dist/lib/types.js +34 -26
  35. package/dist/lib/utils.d.ts +5 -5
  36. package/dist/lib/utils.js +59 -59
  37. package/dist/server/classes/MatchTable.d.ts +32 -30
  38. package/dist/server/classes/MatchTable.js +77 -77
  39. package/dist/server/classes/User.d.ts +5 -5
  40. package/dist/server/classes/User.js +11 -11
  41. package/dist/server/{match.d.ts → classes/index.d.ts} +0 -0
  42. package/dist/server/{match.js → classes/index.js} +1 -1
  43. package/dist/server/index.d.ts +1 -1
  44. package/dist/server/index.js +379 -391
  45. package/dist/server/types.d.ts +36 -35
  46. package/dist/server/types.js +26 -26
  47. package/dist/test/autoplay.d.ts +1 -1
  48. package/dist/test/autoplay.js +94 -94
  49. package/dist/test/play.d.ts +1 -1
  50. package/dist/test/play.js +214 -214
  51. package/dist/types.d.ts +83 -0
  52. package/dist/types.js +57 -0
  53. package/package.json +2 -2
@@ -1,206 +1,50 @@
1
- import { IGameLoop } from ".";
2
- import { IPublicPlayer } from "./classes/Player";
3
- import { CARDS } from "./constants";
4
- export type ICard = keyof typeof CARDS;
5
- export interface IDeck {
6
- cards: Array<ICard>;
7
- usedCards: Array<ICard>;
8
- takeCard(): ICard;
9
- shuffle(): IDeck;
10
- }
11
- export interface IPlayedCard {
12
- get key(): string;
13
- player: IPlayer & IPublicPlayer;
14
- card: ICard;
15
- }
16
- export interface IPlayer {
17
- teamIdx: number;
18
- id: string;
19
- session?: string;
20
- hand: Array<ICard>;
21
- commands: Array<ECommand>;
22
- usedHand: Array<ICard>;
23
- prevHand: Array<ICard>;
24
- isTurn: boolean;
25
- disabled: boolean;
26
- ready: boolean;
27
- setTurn(turn: boolean): void;
28
- getPublicPlayer(): IPlayer;
29
- setSession(session: string): void;
30
- enable(): void;
31
- disable(): void;
32
- setReady(ready: boolean): void;
33
- setHand(hand: Array<ICard>): Array<ICard>;
34
- useCard(idx: number, card: ICard): ICard | null;
35
- }
36
- export interface ITeam {
37
- _players: Map<string, IPlayer>;
38
- players: Array<IPlayer>;
39
- points: ITeamPoints;
40
- getPublicTeam(playerSession?: string): ITeam;
41
- isTeamDisabled(): boolean;
42
- disable(player: IPlayer): boolean;
43
- addPoints(matchPoint: number, points: number): ITeamPoints;
44
- }
45
- export interface IMatch {
46
- teams: [ITeam, ITeam];
47
- hands: Array<IHand>;
48
- winner: ITeam | null;
49
- currentHand: IHand | null;
50
- table: ITable;
51
- play(): IPlayInstance | null;
52
- addPoints(points: IHandPoints): [ITeam, ITeam];
53
- pushHand(hand: IHand): void;
54
- setCurrentHand(hand: IHand | null): IHand | null;
55
- setWinner(winner: ITeam): void;
56
- getNextTurn(): IteratorResult<IMatch | null, IMatch | null | void>;
57
- }
58
- export interface ITeamPoints {
59
- buenas: number;
60
- malas: number;
61
- winner: boolean;
62
- }
63
- export interface IHandPoints {
64
- 0: number;
65
- 1: number;
66
- }
67
- export interface IRoundPoints {
68
- 0: number;
69
- 1: number;
70
- ties: number;
71
- }
72
- export declare enum ESayCommand {
73
- QUIERO = "QUIERO",
74
- NO_QUIERO = "NO_QUIERO",
75
- TRUCO = "TRUCO",
76
- MAZO = "MAZO",
77
- FLOR = "FLOR",
78
- CONTRAFLOR = "CONTRAFLOR"
79
- }
80
- export declare enum EEnvidoCommand {
81
- ENVIDO = "ENVIDO",
82
- ENVIDO_ENVIDO = "ENVIDO_ENVIDO",
83
- REAL_ENVIDO = "REAL_ENVIDO",
84
- FALTA_ENVIDO = "FALTA_ENVIDO"
85
- }
86
- export type ECommand = ESayCommand | EEnvidoCommand;
87
- export interface ITruco {
88
- state: 1 | 2 | 3 | 4;
89
- teamIdx: 0 | 1 | null;
90
- answer: boolean | null;
91
- turn: number;
92
- players: Array<IPlayer>;
93
- currentPlayer: IPlayer | null;
94
- generator: Generator<ITruco, void, unknown>;
95
- sayTruco(teamIdx: 0 | 1, players: Array<IPlayer>): ITruco;
96
- setPlayers(players: Array<IPlayer>): void;
97
- setAnswer(answer: boolean | null): ITruco;
98
- setTurn(turn: number): number;
99
- setTeam(idx: 0 | 1): 0 | 1;
100
- setCurrentPlayer(player: IPlayer | null): IPlayer | null;
101
- getNextPlayer(): IteratorResult<ITruco, ITruco | void>;
102
- }
103
- export interface EnvidoState {
104
- accept: number;
105
- decline: number;
106
- teamIdx: 0 | 1 | null;
107
- }
108
- export interface IPlayInstance {
109
- teams: [ITeam, ITeam];
110
- handIdx: number;
111
- roundIdx: number;
112
- state: EHandState;
113
- truco: ITruco;
114
- envido: EnvidoState;
115
- player: IPlayer | null;
116
- commands: Array<ECommand> | null;
117
- rounds: Array<IRound> | null;
118
- use(idx: number, card: ICard): ICard | null;
119
- say(command: ECommand): ECommand | null;
120
- }
121
- export declare enum EHandState {
122
- WAITING_PLAY = "WAITING_PLAY",
123
- WAITING_FOR_TRUCO_ANSWER = "WAITING_FOR_TRUCO_ANSWER",
124
- WAITING_ENVIDO_ANSWER = "WAITING_ENVIDO_ANSWER",
125
- FINISHED = "FINISHED"
126
- }
127
- export type IHandCommands = {
128
- [key in ECommand]: (player: IPlayer) => void;
129
- };
130
- export interface IHand {
131
- idx: number;
132
- state: EHandState;
133
- turn: number;
134
- points: IHandPoints;
135
- truco: ITruco;
136
- envido: EnvidoState;
137
- rounds: Array<IRound>;
138
- _currentPlayer: IPlayer | null;
139
- get currentPlayer(): IPlayer | null;
140
- set currentPlayer(player: IPlayer | null);
141
- currentRound: IRound | null;
142
- commands: IHandCommands;
143
- finished: () => boolean;
144
- play(): IPlayInstance | null;
145
- nextTurn(): void;
146
- use(idx: number, card: ICard): ICard | null;
147
- pushRound(round: IRound): IRound;
148
- setTurn(turn: number): IPlayer;
149
- addPoints(team: 0 | 1, points: number): void;
150
- disablePlayer(player: IPlayer): void;
151
- setCurrentRound(round: IRound | null): IRound | null;
152
- setCurrentPlayer(player: IPlayer | null): IPlayer | null;
153
- setState(state: EHandState): EHandState;
154
- getNextPlayer(): IteratorResult<IHand, IHand | void>;
155
- }
156
- export interface IPrivateLobby {
157
- gameLoop?: IGameLoop;
158
- lastTeamIdx: 0 | 1;
159
- _players: Array<IPlayer | {
160
- id?: undefined;
161
- session?: undefined;
162
- }>;
163
- get players(): Array<IPlayer>;
164
- teams: Array<ITeam>;
165
- maxPlayers: number;
166
- table: ITable | null;
167
- full: boolean;
168
- ready: boolean;
169
- started: boolean;
170
- addPlayer(id: string, session: string, teamIdx?: 0 | 1): IPlayer;
171
- removePlayer(id: string): ILobby;
172
- calculateReady(): boolean;
173
- calculateFull(): boolean;
174
- startMatch(matchPoint?: 9 | 12 | 15): IGameLoop;
175
- }
176
- export interface ILobby extends Pick<IPrivateLobby, "addPlayer" | "removePlayer" | "startMatch" | "ready" | "full" | "started" | "teams" | "players" | "gameLoop" | "table" | "calculateReady"> {
177
- }
178
- export interface ITable {
179
- forehandIdx: number;
180
- cards: Array<Array<IPlayedCard>>;
181
- players: Array<IPlayer>;
182
- nextTurn(): IPlayer;
183
- player(idx?: number): IPlayer;
184
- getPlayerPosition(id: string): number;
185
- }
186
- export interface IRound {
187
- tie: boolean;
188
- winner: IPlayer | null;
189
- highest: number;
190
- cards: Array<IPlayedCard>;
191
- turn: number;
192
- nextTurn(): void;
193
- use(playedCard: IPlayedCard): ICard;
194
- }
195
- export type IEnvidoCalculatorResult = {
196
- accept: number;
197
- decline: number;
198
- next: Array<ECommand>;
199
- };
200
- export type IEnvidoCalculatorArgs = {
201
- teams: [ITeam, ITeam];
202
- matchPoint: number;
203
- };
204
- export type IEnvidoCalculator = {
205
- [key in EEnvidoCommand]: (args?: IEnvidoCalculatorArgs) => IEnvidoCalculatorResult;
206
- };
1
+ import { IPlayer } from "./classes/Player";
2
+ import { ITeam } from "./classes/Team";
3
+ export declare enum ESayCommand {
4
+ QUIERO = "QUIERO",
5
+ NO_QUIERO = "NO_QUIERO",
6
+ TRUCO = "TRUCO",
7
+ MAZO = "MAZO",
8
+ FLOR = "FLOR",
9
+ CONTRAFLOR = "CONTRAFLOR"
10
+ }
11
+ export declare enum EEnvidoCommand {
12
+ ENVIDO = "ENVIDO",
13
+ ENVIDO_ENVIDO = "ENVIDO_ENVIDO",
14
+ REAL_ENVIDO = "REAL_ENVIDO",
15
+ FALTA_ENVIDO = "FALTA_ENVIDO"
16
+ }
17
+ export declare enum EHandState {
18
+ WAITING_PLAY = "WAITING_PLAY",
19
+ WAITING_FOR_TRUCO_ANSWER = "WAITING_FOR_TRUCO_ANSWER",
20
+ WAITING_ENVIDO_ANSWER = "WAITING_ENVIDO_ANSWER",
21
+ FINISHED = "FINISHED"
22
+ }
23
+ export type ECommand = ESayCommand | EEnvidoCommand;
24
+ export declare enum GAME_ERROR {
25
+ MATCH_ALREADY_STARTED = "MATCH_ALREADY_STARTED",
26
+ LOBBY_IS_FULL = "LOBBY_IS_FULL",
27
+ UNEXPECTED_TEAM_SIZE = "UNEXPECTED_TEAM_SIZE",
28
+ TEAM_NOT_READY = "TEAM_NOT_READY",
29
+ TEAM_IS_FULL = "TEAM_IS_FULL"
30
+ }
31
+ export interface EnvidoState {
32
+ accept: number;
33
+ decline: number;
34
+ teamIdx: 0 | 1 | null;
35
+ }
36
+ export type IHandCommands = {
37
+ [key in ECommand]: (player: IPlayer) => void;
38
+ };
39
+ export type IEnvidoCalculatorResult = {
40
+ accept: number;
41
+ decline: number;
42
+ next: Array<ECommand>;
43
+ };
44
+ export type IEnvidoCalculatorArgs = {
45
+ teams: [ITeam, ITeam];
46
+ matchPoint: number;
47
+ };
48
+ export type IEnvidoCalculator = {
49
+ [key in EEnvidoCommand]: (args?: IEnvidoCalculatorArgs) => IEnvidoCalculatorResult;
50
+ };
package/dist/lib/types.js CHANGED
@@ -1,26 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EHandState = exports.EEnvidoCommand = exports.ESayCommand = void 0;
4
- var ESayCommand;
5
- (function (ESayCommand) {
6
- ESayCommand["QUIERO"] = "QUIERO";
7
- ESayCommand["NO_QUIERO"] = "NO_QUIERO";
8
- ESayCommand["TRUCO"] = "TRUCO";
9
- ESayCommand["MAZO"] = "MAZO";
10
- ESayCommand["FLOR"] = "FLOR";
11
- ESayCommand["CONTRAFLOR"] = "CONTRAFLOR";
12
- })(ESayCommand = exports.ESayCommand || (exports.ESayCommand = {}));
13
- var EEnvidoCommand;
14
- (function (EEnvidoCommand) {
15
- EEnvidoCommand["ENVIDO"] = "ENVIDO";
16
- EEnvidoCommand["ENVIDO_ENVIDO"] = "ENVIDO_ENVIDO";
17
- EEnvidoCommand["REAL_ENVIDO"] = "REAL_ENVIDO";
18
- EEnvidoCommand["FALTA_ENVIDO"] = "FALTA_ENVIDO";
19
- })(EEnvidoCommand = exports.EEnvidoCommand || (exports.EEnvidoCommand = {}));
20
- var EHandState;
21
- (function (EHandState) {
22
- EHandState["WAITING_PLAY"] = "WAITING_PLAY";
23
- EHandState["WAITING_FOR_TRUCO_ANSWER"] = "WAITING_FOR_TRUCO_ANSWER";
24
- EHandState["WAITING_ENVIDO_ANSWER"] = "WAITING_ENVIDO_ANSWER";
25
- EHandState["FINISHED"] = "FINISHED";
26
- })(EHandState = exports.EHandState || (exports.EHandState = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GAME_ERROR = exports.EHandState = exports.EEnvidoCommand = exports.ESayCommand = void 0;
4
+ var ESayCommand;
5
+ (function (ESayCommand) {
6
+ ESayCommand["QUIERO"] = "QUIERO";
7
+ ESayCommand["NO_QUIERO"] = "NO_QUIERO";
8
+ ESayCommand["TRUCO"] = "TRUCO";
9
+ ESayCommand["MAZO"] = "MAZO";
10
+ ESayCommand["FLOR"] = "FLOR";
11
+ ESayCommand["CONTRAFLOR"] = "CONTRAFLOR";
12
+ })(ESayCommand = exports.ESayCommand || (exports.ESayCommand = {}));
13
+ var EEnvidoCommand;
14
+ (function (EEnvidoCommand) {
15
+ EEnvidoCommand["ENVIDO"] = "ENVIDO";
16
+ EEnvidoCommand["ENVIDO_ENVIDO"] = "ENVIDO_ENVIDO";
17
+ EEnvidoCommand["REAL_ENVIDO"] = "REAL_ENVIDO";
18
+ EEnvidoCommand["FALTA_ENVIDO"] = "FALTA_ENVIDO";
19
+ })(EEnvidoCommand = exports.EEnvidoCommand || (exports.EEnvidoCommand = {}));
20
+ var EHandState;
21
+ (function (EHandState) {
22
+ EHandState["WAITING_PLAY"] = "WAITING_PLAY";
23
+ EHandState["WAITING_FOR_TRUCO_ANSWER"] = "WAITING_FOR_TRUCO_ANSWER";
24
+ EHandState["WAITING_ENVIDO_ANSWER"] = "WAITING_ENVIDO_ANSWER";
25
+ EHandState["FINISHED"] = "FINISHED";
26
+ })(EHandState = exports.EHandState || (exports.EHandState = {}));
27
+ var GAME_ERROR;
28
+ (function (GAME_ERROR) {
29
+ GAME_ERROR["MATCH_ALREADY_STARTED"] = "MATCH_ALREADY_STARTED";
30
+ GAME_ERROR["LOBBY_IS_FULL"] = "LOBBY_IS_FULL";
31
+ GAME_ERROR["UNEXPECTED_TEAM_SIZE"] = "UNEXPECTED_TEAM_SIZE";
32
+ GAME_ERROR["TEAM_NOT_READY"] = "TEAM_NOT_READY";
33
+ GAME_ERROR["TEAM_IS_FULL"] = "TEAM_IS_FULL";
34
+ })(GAME_ERROR = exports.GAME_ERROR || (exports.GAME_ERROR = {}));
@@ -1,5 +1,5 @@
1
- import { ICard, IRound } from "./types";
2
- export declare function getMaxNumberIndex<T = number>(array: Array<T>): number;
3
- export declare function getCardValue(card: ICard): number;
4
- export declare function shuffleArray<T = unknown>(array: Array<T>): T[];
5
- export declare function checkHandWinner(rounds: Array<IRound>, forehandTeamIdx: 0 | 1): null | 0 | 1;
1
+ import { ICard, IRound } from "./classes";
2
+ export declare function getMaxNumberIndex<T = number>(array: Array<T>): number;
3
+ export declare function getCardValue(card: ICard): number;
4
+ export declare function shuffleArray<T = unknown>(array: Array<T>): T[];
5
+ export declare function checkHandWinner(rounds: Array<IRound>, forehandTeamIdx: 0 | 1): null | 0 | 1;
package/dist/lib/utils.js CHANGED
@@ -1,59 +1,59 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkHandWinner = exports.shuffleArray = exports.getCardValue = exports.getMaxNumberIndex = void 0;
4
- var constants_1 = require("./constants");
5
- function getMaxNumberIndex(array) {
6
- return array.reduce(function (accumulator, current, index) {
7
- return current > array[accumulator] ? index : accumulator;
8
- }, 0);
9
- }
10
- exports.getMaxNumberIndex = getMaxNumberIndex;
11
- function getCardValue(card) {
12
- return constants_1.CARDS[card] || -1;
13
- }
14
- exports.getCardValue = getCardValue;
15
- function shuffleArray(array) {
16
- var _a;
17
- var currentIndex = array.length, randomIndex;
18
- while (currentIndex != 0) {
19
- randomIndex = Math.floor(Math.random() * currentIndex);
20
- currentIndex--;
21
- _a = [array[randomIndex], array[currentIndex]], array[currentIndex] = _a[0], array[randomIndex] = _a[1];
22
- }
23
- return array;
24
- }
25
- exports.shuffleArray = shuffleArray;
26
- function checkHandWinner(rounds, forehandTeamIdx) {
27
- var _a, _b;
28
- var roundsWon = {
29
- 0: 0,
30
- 1: 0,
31
- ties: 0,
32
- };
33
- for (var i = 0; i < rounds.length; i++) {
34
- var round = rounds[i];
35
- if (round.tie) {
36
- roundsWon[0] += 1;
37
- roundsWon[1] += 1;
38
- roundsWon.ties = roundsWon.ties + 1;
39
- continue;
40
- }
41
- if (((_a = round.winner) === null || _a === void 0 ? void 0 : _a.teamIdx) === 0) {
42
- roundsWon[0] += 1;
43
- }
44
- if (((_b = round.winner) === null || _b === void 0 ? void 0 : _b.teamIdx) === 1) {
45
- roundsWon[1] += 1;
46
- }
47
- }
48
- if ((roundsWon[0] > 2 && roundsWon[1] > 2) || (rounds.length > 2 && roundsWon.ties > 0)) {
49
- return forehandTeamIdx;
50
- }
51
- if (roundsWon[0] >= 2 && roundsWon[1] < 2) {
52
- return 0;
53
- }
54
- if (roundsWon[1] >= 2 && roundsWon[0] < 2) {
55
- return 1;
56
- }
57
- return null;
58
- }
59
- exports.checkHandWinner = checkHandWinner;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkHandWinner = exports.shuffleArray = exports.getCardValue = exports.getMaxNumberIndex = void 0;
4
+ var constants_1 = require("./constants");
5
+ function getMaxNumberIndex(array) {
6
+ return array.reduce(function (accumulator, current, index) {
7
+ return current > array[accumulator] ? index : accumulator;
8
+ }, 0);
9
+ }
10
+ exports.getMaxNumberIndex = getMaxNumberIndex;
11
+ function getCardValue(card) {
12
+ return constants_1.CARDS[card] || -1;
13
+ }
14
+ exports.getCardValue = getCardValue;
15
+ function shuffleArray(array) {
16
+ var _a;
17
+ var currentIndex = array.length, randomIndex;
18
+ while (currentIndex != 0) {
19
+ randomIndex = Math.floor(Math.random() * currentIndex);
20
+ currentIndex--;
21
+ _a = [array[randomIndex], array[currentIndex]], array[currentIndex] = _a[0], array[randomIndex] = _a[1];
22
+ }
23
+ return array;
24
+ }
25
+ exports.shuffleArray = shuffleArray;
26
+ function checkHandWinner(rounds, forehandTeamIdx) {
27
+ var _a, _b;
28
+ var roundsWon = {
29
+ 0: 0,
30
+ 1: 0,
31
+ ties: 0,
32
+ };
33
+ for (var i = 0; i < rounds.length; i++) {
34
+ var round = rounds[i];
35
+ if (round.tie) {
36
+ roundsWon[0] += 1;
37
+ roundsWon[1] += 1;
38
+ roundsWon.ties = roundsWon.ties + 1;
39
+ continue;
40
+ }
41
+ if (((_a = round.winner) === null || _a === void 0 ? void 0 : _a.teamIdx) === 0) {
42
+ roundsWon[0] += 1;
43
+ }
44
+ if (((_b = round.winner) === null || _b === void 0 ? void 0 : _b.teamIdx) === 1) {
45
+ roundsWon[1] += 1;
46
+ }
47
+ }
48
+ if ((roundsWon[0] > 2 && roundsWon[1] > 2) || (rounds.length > 2 && roundsWon.ties > 0)) {
49
+ return forehandTeamIdx;
50
+ }
51
+ if (roundsWon[0] >= 2 && roundsWon[1] < 2) {
52
+ return 0;
53
+ }
54
+ if (roundsWon[1] >= 2 && roundsWon[0] < 2) {
55
+ return 1;
56
+ }
57
+ return null;
58
+ }
59
+ exports.checkHandWinner = checkHandWinner;
@@ -1,30 +1,32 @@
1
- import { IPublicPlayer } from "../../lib/classes/Player";
2
- import { IPublicTeam } from "../../lib/classes/Team";
3
- import { IHandPoints, ILobby, IPlayedCard, ITeam } from "../../lib/types";
4
- export interface IPublicMatch {
5
- state: EMatchTableState;
6
- winner: ITeam | null;
7
- matchSessionId: string;
8
- teams: Array<IPublicTeam>;
9
- players: Array<IPublicPlayer>;
10
- me: IPublicPlayer;
11
- rounds: IPlayedCard[][];
12
- prevRounds: IPlayedCard[][] | null;
13
- prevHandPoints?: IHandPoints | null;
14
- }
15
- export interface IMatchTable {
16
- matchSessionId: string;
17
- currentPlayer: IPublicPlayer | null;
18
- lobby: ILobby;
19
- state(): EMatchTableState;
20
- setCurrentPlayer(player: IPublicPlayer): void;
21
- isSessionPlaying(session: string): IPublicPlayer | null;
22
- getPublicMatch(session?: string): IPublicMatch;
23
- }
24
- export declare enum EMatchTableState {
25
- UNREADY = 0,
26
- READY = 1,
27
- STARTED = 2,
28
- FINISHED = 3
29
- }
30
- export declare function MatchTable(matchSessionId: string, teamSize?: 1 | 2 | 3): IMatchTable;
1
+ import { IPlayedCard } from "../../lib/classes/Deck";
2
+ import { IHandPoints } from "../../lib/classes/Hand";
3
+ import { ILobby } from "../../lib/classes/Lobby";
4
+ import { IPublicPlayer } from "../../lib/classes/Player";
5
+ import { IPublicTeam, ITeam } from "../../lib/classes/Team";
6
+ export interface IPublicMatch {
7
+ state: EMatchTableState;
8
+ winner: ITeam | null;
9
+ matchSessionId: string;
10
+ teams: Array<IPublicTeam>;
11
+ players: Array<IPublicPlayer>;
12
+ me: IPublicPlayer;
13
+ rounds: IPlayedCard[][];
14
+ prevRounds: IPlayedCard[][] | null;
15
+ prevHandPoints?: IHandPoints | null;
16
+ }
17
+ export interface IMatchTable {
18
+ matchSessionId: string;
19
+ currentPlayer: IPublicPlayer | null;
20
+ lobby: ILobby;
21
+ state(): EMatchTableState;
22
+ setCurrentPlayer(player: IPublicPlayer): void;
23
+ isSessionPlaying(session: string): IPublicPlayer | null;
24
+ getPublicMatch(session?: string): IPublicMatch;
25
+ }
26
+ export declare enum EMatchTableState {
27
+ UNREADY = 0,
28
+ READY = 1,
29
+ STARTED = 2,
30
+ FINISHED = 3
31
+ }
32
+ export declare function MatchTable(matchSessionId: string, teamSize?: 1 | 2 | 3): IMatchTable;