jp.ms.common.engine 1.0.3 → 1.0.4
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.
- package/dist/base/game-control-player-turn.d.ts +4 -4
- package/dist/base/game-control-player-turn.d.ts.map +1 -1
- package/dist/base/game-control-player-turn.js.map +1 -1
- package/dist/base/game-master.d.ts +24 -21
- package/dist/base/game-master.d.ts.map +1 -1
- package/dist/base/game-master.js +6 -2
- package/dist/base/game-master.js.map +1 -1
- package/dist/base/game-player-connections-helper.d.ts +15 -0
- package/dist/base/game-player-connections-helper.d.ts.map +1 -0
- package/dist/base/game-player-connections-helper.js +33 -0
- package/dist/base/game-player-connections-helper.js.map +1 -0
- package/dist/base/game-player.d.ts +3 -1
- package/dist/base/game-player.d.ts.map +1 -1
- package/dist/base/game-player.js +3 -1
- package/dist/base/game-player.js.map +1 -1
- package/dist/base/game-room.d.ts +15 -17
- package/dist/base/game-room.d.ts.map +1 -1
- package/dist/base/game-room.js +16 -17
- package/dist/base/game-room.js.map +1 -1
- package/dist/base/game-round.d.ts +7 -10
- package/dist/base/game-round.d.ts.map +1 -1
- package/dist/base/game-round.js +2 -4
- package/dist/base/game-round.js.map +1 -1
- package/dist/base/game-state-machine.d.ts +4 -4
- package/dist/base/game-state-machine.d.ts.map +1 -1
- package/dist/base/game-state-machine.js.map +1 -1
- package/dist/base/game-summary-result.d.ts +3 -0
- package/dist/base/game-summary-result.d.ts.map +1 -0
- package/dist/base/game-summary-result.js +7 -0
- package/dist/base/game-summary-result.js.map +1 -0
- package/dist/base/game-table-seat.d.ts +3 -3
- package/dist/base/game-table-seat.d.ts.map +1 -1
- package/dist/base/game-table-seat.js.map +1 -1
- package/dist/base/game-table-seats.d.ts +12 -12
- package/dist/base/game-table-seats.d.ts.map +1 -1
- package/dist/base/game-table-seats.js.map +1 -1
- package/dist/base/game-table.d.ts +25 -51
- package/dist/base/game-table.d.ts.map +1 -1
- package/dist/base/game-table.js.map +1 -1
- package/dist/base/index.d.ts +2 -1
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +3 -1
- package/dist/base/index.js.map +1 -1
- package/dist/base/standard-game-state.d.ts +2 -2
- package/dist/base/standard-game-state.d.ts.map +1 -1
- package/dist/base/standard-game-state.js +1 -1
- package/dist/base/standard-game-state.js.map +1 -1
- package/dist/base-rooms/fast-tournament-room.d.ts +0 -13
- package/dist/base-rooms/fast-tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/fast-tournament-room.js +59 -51
- package/dist/base-rooms/fast-tournament-room.js.map +1 -1
- package/dist/base-rooms/index.d.ts +1 -5
- package/dist/base-rooms/index.d.ts.map +1 -1
- package/dist/base-rooms/index.js +3 -9
- package/dist/base-rooms/index.js.map +1 -1
- package/dist/base-rooms/scheduled-tournament-room.d.ts +0 -27
- package/dist/base-rooms/scheduled-tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/scheduled-tournament-room.js +181 -164
- package/dist/base-rooms/scheduled-tournament-room.js.map +1 -1
- package/dist/base-rooms/simple-room.d.ts +5 -4
- package/dist/base-rooms/simple-room.d.ts.map +1 -1
- package/dist/base-rooms/simple-room.js +16 -0
- package/dist/base-rooms/simple-room.js.map +1 -1
- package/dist/base-rooms/tournament-room.d.ts +0 -46
- package/dist/base-rooms/tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/tournament-room.js +169 -109
- package/dist/base-rooms/tournament-room.js.map +1 -1
- package/dist/base-rooms/tournament-state.d.ts +2 -2
- package/dist/base-rooms/tournament-state.d.ts.map +1 -1
- package/dist/base-rooms/tournament-state.js +2 -2
- package/dist/base-rooms/tournament-state.js.map +1 -1
- package/dist/board-game/base/board-cell.d.ts +0 -15
- package/dist/board-game/base/board-cell.d.ts.map +1 -1
- package/dist/board-game/base/board-cell.js +50 -40
- package/dist/board-game/base/board-cell.js.map +1 -1
- package/dist/board-game/base/board-figure.d.ts +0 -15
- package/dist/board-game/base/board-figure.d.ts.map +1 -1
- package/dist/board-game/base/board-figure.js +49 -36
- package/dist/board-game/base/board-figure.js.map +1 -1
- package/dist/board-game/base/board-game-master.d.ts +0 -18
- package/dist/board-game/base/board-game-master.d.ts.map +1 -1
- package/dist/board-game/base/board-game-master.js +56 -34
- package/dist/board-game/base/board-game-master.js.map +1 -1
- package/dist/board-game/base/board-player-move.d.ts +0 -10
- package/dist/board-game/base/board-player-move.d.ts.map +1 -1
- package/dist/board-game/base/board-player-move.js +29 -28
- package/dist/board-game/base/board-player-move.js.map +1 -1
- package/dist/board-game/base/board-player.d.ts +0 -12
- package/dist/board-game/base/board-player.d.ts.map +1 -1
- package/dist/board-game/base/board-player.js +43 -29
- package/dist/board-game/base/board-player.js.map +1 -1
- package/dist/board-game/base/board-table.d.ts +0 -16
- package/dist/board-game/base/board-table.d.ts.map +1 -1
- package/dist/board-game/base/board-table.js +52 -33
- package/dist/board-game/base/board-table.js.map +1 -1
- package/dist/board-game/d1-board-game/d1-board-table.d.ts +0 -18
- package/dist/board-game/d1-board-game/d1-board-table.d.ts.map +1 -1
- package/dist/board-game/d1-board-game/d1-board-table.js +56 -39
- package/dist/board-game/d1-board-game/d1-board-table.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts +0 -11
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-cell.js +30 -24
- package/dist/board-game/d2-board-game/d2-board-cell.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts +0 -28
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js +79 -49
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-table.d.ts +0 -48
- package/dist/board-game/d2-board-game/d2-board-table.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-table.js +262 -182
- package/dist/board-game/d2-board-game/d2-board-table.js.map +1 -1
- package/dist/board-game/d2-board-game/types.d.ts +0 -4
- package/dist/board-game/d2-board-game/types.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/types.js +4 -1
- package/dist/board-game/d2-board-game/types.js.map +1 -1
- package/dist/board-game/dice.js +2 -2
- package/dist/board-game/dice.js.map +1 -1
- package/dist/board-game/index.d.ts +0 -12
- package/dist/board-game/index.d.ts.map +1 -1
- package/dist/board-game/index.js +28 -24
- package/dist/board-game/index.js.map +1 -1
- package/dist/cards-game/cards-game-master.d.ts +7 -8
- package/dist/cards-game/cards-game-master.d.ts.map +1 -1
- package/dist/cards-game/cards-game-master.js +13 -10
- package/dist/cards-game/cards-game-master.js.map +1 -1
- package/dist/cards-game/cards-player.d.ts.map +1 -1
- package/dist/cards-game/cards-player.js +1 -1
- package/dist/cards-game/cards-player.js.map +1 -1
- package/dist/cards-game/index.d.ts +1 -2
- package/dist/cards-game/index.d.ts.map +1 -1
- package/dist/cards-game/index.js +1 -3
- package/dist/cards-game/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts +6 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js +14 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts +28 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js +90 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts +9 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.js +21 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.js.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.d.ts +3 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.d.ts.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.js +30 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.js.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.d.ts +2 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.d.ts.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.js +34 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.js.map +1 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.d.ts +6 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.d.ts.map +1 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js +13 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js.map +1 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.d.ts +2 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.d.ts.map +1 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js +58 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js.map +1 -0
- package/dist/tests/just-black-jack/tests/common.d.ts +11 -0
- package/dist/tests/just-black-jack/tests/common.d.ts.map +1 -0
- package/dist/tests/just-black-jack/tests/common.js +51 -0
- package/dist/tests/just-black-jack/tests/common.js.map +1 -0
- package/package.json +2 -1
- package/src/base/game-control-player-turn.ts +5 -5
- package/src/base/game-master.ts +25 -19
- package/src/base/game-player-connections-helper.ts +40 -0
- package/src/base/game-player.ts +5 -2
- package/src/base/game-room.ts +26 -30
- package/src/base/game-round.ts +10 -16
- package/src/base/game-state-machine.ts +7 -7
- package/src/base/game-summary-result.ts +3 -0
- package/src/base/game-table-seat.ts +3 -3
- package/src/base/game-table-seats.ts +13 -13
- package/src/base/game-table.ts +28 -79
- package/src/base/index.ts +2 -0
- package/src/base/standard-game-state.ts +2 -2
- package/src/base-rooms/fast-tournament-room.ts +59 -59
- package/src/base-rooms/index.ts +9 -9
- package/src/base-rooms/scheduled-tournament-room.ts +181 -181
- package/src/base-rooms/simple-room.ts +15 -4
- package/src/base-rooms/tournament-room.ts +169 -169
- package/src/base-rooms/tournament-state.ts +2 -2
- package/src/board-game/base/board-cell.ts +50 -50
- package/src/board-game/base/board-figure.ts +49 -49
- package/src/board-game/base/board-game-master.ts +56 -56
- package/src/board-game/base/board-player-move.ts +29 -29
- package/src/board-game/base/board-player.ts +43 -43
- package/src/board-game/base/board-table.ts +52 -52
- package/src/board-game/d1-board-game/d1-board-table.ts +56 -56
- package/src/board-game/d2-board-game/d2-board-cell.ts +30 -30
- package/src/board-game/d2-board-game/d2-board-pattern-move-figure.ts +79 -79
- package/src/board-game/d2-board-game/d2-board-table.ts +262 -262
- package/src/board-game/d2-board-game/types.ts +4 -4
- package/src/board-game/dice.ts +1 -1
- package/src/board-game/index.ts +28 -28
- package/src/cards-game/cards-game-master.ts +19 -16
- package/src/cards-game/cards-player.ts +2 -1
- package/src/cards-game/index.ts +0 -2
- package/src/index.ts +1 -1
- package/src/tests/just-black-jack/domain/black-jack-dealer.ts +15 -0
- package/src/tests/just-black-jack/domain/black-jack-game-master.ts +103 -0
- package/src/tests/just-black-jack/domain/black-jack-player.ts +27 -0
- package/src/tests/just-black-jack/helpers/calculate-result.test.ts +49 -0
- package/src/tests/just-black-jack/helpers/calculate-result.ts +34 -0
- package/src/tests/just-black-jack/rooms/black-jack-simple-room.ts +10 -0
- package/src/tests/just-black-jack/tests/black-jack-simple-room.test.ts +75 -0
- package/src/tests/just-black-jack/tests/common.ts +63 -0
- package/dist/cards-game/cards-table.d.ts +0 -11
- package/dist/cards-game/cards-table.d.ts.map +0 -1
- package/dist/cards-game/cards-table.js +0 -20
- package/dist/cards-game/cards-table.js.map +0 -1
- package/src/cards-game/cards-table.ts +0 -28
package/src/base/game-table.ts
CHANGED
|
@@ -2,58 +2,9 @@ import { compact, first, remove, slice } from 'lodash';
|
|
|
2
2
|
|
|
3
3
|
import { GamePlayer } from './game-player';
|
|
4
4
|
import { GameTableSeats } from './game-table-seats';
|
|
5
|
+
import { GameMaster } from './game-master';
|
|
5
6
|
|
|
6
|
-
export
|
|
7
|
-
getId (): string;
|
|
8
|
-
|
|
9
|
-
hasInQueue (PlayerId: string): boolean;
|
|
10
|
-
|
|
11
|
-
hasInWatchers (PlayerId: string): boolean;
|
|
12
|
-
|
|
13
|
-
isFull (): boolean;
|
|
14
|
-
|
|
15
|
-
getSeats (): GameTableSeats<GP>;
|
|
16
|
-
|
|
17
|
-
hasSeats (): boolean;
|
|
18
|
-
|
|
19
|
-
addPlayerToQueue (player: GP);
|
|
20
|
-
|
|
21
|
-
addPlayerToSeat (player: GP);
|
|
22
|
-
|
|
23
|
-
removePlayerFromSeat (player: GP);
|
|
24
|
-
|
|
25
|
-
removePlayerFromQueue (player: GP);
|
|
26
|
-
|
|
27
|
-
removePlayerFromWatchers (player: GP);
|
|
28
|
-
|
|
29
|
-
addPlayerToWatchers (player: GP);
|
|
30
|
-
|
|
31
|
-
getPlayers (): Array<GP>;
|
|
32
|
-
|
|
33
|
-
getPlayerByColor (color: number): GP | undefined;
|
|
34
|
-
|
|
35
|
-
getPlayersWithQueue (): Array<GP>;
|
|
36
|
-
|
|
37
|
-
getEmptyStackPlayers (): Array<GP>;
|
|
38
|
-
|
|
39
|
-
remainOnePlayer (): boolean;
|
|
40
|
-
|
|
41
|
-
startNewRound (): void;
|
|
42
|
-
|
|
43
|
-
getQueue (): Array<GP>;
|
|
44
|
-
|
|
45
|
-
getTableSize (): number;
|
|
46
|
-
|
|
47
|
-
getRedundantQueuers (): Array<GP>;
|
|
48
|
-
|
|
49
|
-
getLastPlayer (): GP | null;
|
|
50
|
-
|
|
51
|
-
getTurnTimeout (): number;
|
|
52
|
-
|
|
53
|
-
getRestartTimeout (): number;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export type GameTableConfig<GP extends GamePlayer> = {
|
|
7
|
+
export type GameTableConfig = {
|
|
57
8
|
roomId: string;
|
|
58
9
|
number: number;
|
|
59
10
|
tableSize: number;
|
|
@@ -61,25 +12,25 @@ export type GameTableConfig<GP extends GamePlayer> = {
|
|
|
61
12
|
rulesType: string;
|
|
62
13
|
turnTimeout: number;
|
|
63
14
|
restartTimeout: number;
|
|
64
|
-
onRoomFinishRound: (table:
|
|
65
|
-
onRoomRestartRound: (table:
|
|
15
|
+
onRoomFinishRound: (table: GameTable) => void
|
|
16
|
+
onRoomRestartRound: (table: GameTable) => void
|
|
66
17
|
}
|
|
67
18
|
|
|
68
|
-
export
|
|
19
|
+
export class GameTable {
|
|
69
20
|
private readonly roomId: string;
|
|
70
21
|
private readonly number: number;
|
|
71
22
|
private readonly tableSize: number;
|
|
72
23
|
private readonly bet: number;
|
|
73
24
|
private readonly turnTimeout: number;
|
|
74
25
|
private readonly restartTimeout: number;
|
|
75
|
-
private readonly queue: Array<
|
|
76
|
-
private readonly watchers: Array<
|
|
77
|
-
public readonly seats: GameTableSeats
|
|
78
|
-
public master:
|
|
79
|
-
public onRoomFinishRound: (table:
|
|
80
|
-
public onRoomRestartRound: (table:
|
|
81
|
-
|
|
82
|
-
|
|
26
|
+
private readonly queue: Array<GamePlayer>;
|
|
27
|
+
private readonly watchers: Array<GamePlayer>;
|
|
28
|
+
public readonly seats: GameTableSeats;
|
|
29
|
+
public master: GameMaster;
|
|
30
|
+
public onRoomFinishRound: (table: GameTable) => void;
|
|
31
|
+
public onRoomRestartRound: (table: GameTable) => void;
|
|
32
|
+
|
|
33
|
+
constructor (config: GameTableConfig) {
|
|
83
34
|
this.queue = [];
|
|
84
35
|
this.watchers = [];
|
|
85
36
|
this.onRoomFinishRound = config.onRoomFinishRound;
|
|
@@ -93,8 +44,6 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
93
44
|
this.seats = new GameTableSeats(this.getTableSize());
|
|
94
45
|
}
|
|
95
46
|
|
|
96
|
-
abstract startNewRound (): void
|
|
97
|
-
|
|
98
47
|
getRoomId () {
|
|
99
48
|
return this.roomId;
|
|
100
49
|
}
|
|
@@ -127,7 +76,7 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
127
76
|
return this.restartTimeout;
|
|
128
77
|
}
|
|
129
78
|
|
|
130
|
-
addPlayerToSeat (player:
|
|
79
|
+
addPlayerToSeat (player: GamePlayer): boolean {
|
|
131
80
|
const freeSeat = this.seats.findFreeSeat();
|
|
132
81
|
if (freeSeat) {
|
|
133
82
|
freeSeat.addPlayer(player);
|
|
@@ -138,7 +87,7 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
138
87
|
return false;
|
|
139
88
|
}
|
|
140
89
|
|
|
141
|
-
removePlayerFromSeat (player:
|
|
90
|
+
removePlayerFromSeat (player: GamePlayer): void {
|
|
142
91
|
const seat = this.seats.getSeat(player.getSeatNumber());
|
|
143
92
|
if (seat) {
|
|
144
93
|
seat.removePlayer();
|
|
@@ -146,19 +95,19 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
146
95
|
}
|
|
147
96
|
}
|
|
148
97
|
|
|
149
|
-
getPlayers (): Array<
|
|
98
|
+
getPlayers (): Array<GamePlayer> {
|
|
150
99
|
return compact(this.seats.getSeats().map((seat) => seat.getPlayer()));
|
|
151
100
|
}
|
|
152
101
|
|
|
153
|
-
getPlayerByColor (color: number):
|
|
102
|
+
getPlayerByColor (color: number): GamePlayer | undefined {
|
|
154
103
|
return this.getPlayers().find((item) => item.getColor() === color);
|
|
155
104
|
}
|
|
156
105
|
|
|
157
|
-
getPlayersWithQueue (): Array<
|
|
106
|
+
getPlayersWithQueue (): Array<GamePlayer> {
|
|
158
107
|
return [...this.getPlayers(), ...this.queue];
|
|
159
108
|
}
|
|
160
109
|
|
|
161
|
-
getLastPlayer ():
|
|
110
|
+
getLastPlayer (): GamePlayer | null {
|
|
162
111
|
return first(this.getPlayers()) ?? null;
|
|
163
112
|
}
|
|
164
113
|
|
|
@@ -170,24 +119,24 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
170
119
|
return this.getPlayers().length > 1;
|
|
171
120
|
}
|
|
172
121
|
|
|
173
|
-
getEmptyStackPlayers (): Array<
|
|
122
|
+
getEmptyStackPlayers (): Array<GamePlayer> {
|
|
174
123
|
return this.getPlayers().filter((player) => player.hasEmptyStack());
|
|
175
124
|
}
|
|
176
125
|
|
|
177
|
-
getQueue (): Array<
|
|
126
|
+
getQueue (): Array<GamePlayer> {
|
|
178
127
|
return this.queue;
|
|
179
128
|
}
|
|
180
129
|
|
|
181
|
-
getRedundantQueuers (): Array<
|
|
130
|
+
getRedundantQueuers (): Array<GamePlayer> {
|
|
182
131
|
return slice(this.queue, this.getTableSize() - this.getPlayers().length - 1);
|
|
183
132
|
}
|
|
184
133
|
|
|
185
|
-
addPlayerToQueue (player:
|
|
134
|
+
addPlayerToQueue (player: GamePlayer): void {
|
|
186
135
|
this.queue.push(player);
|
|
187
136
|
player.getInTableQueue(this.getRoomId(), this.getId());
|
|
188
137
|
}
|
|
189
138
|
|
|
190
|
-
removePlayerFromQueue (player:
|
|
139
|
+
removePlayerFromQueue (player: GamePlayer): void {
|
|
191
140
|
remove(this.queue, (queuer) => queuer.getId() === player.getId());
|
|
192
141
|
player.quit();
|
|
193
142
|
}
|
|
@@ -196,16 +145,16 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
196
145
|
return !!this.getQueue().find((queuer) => queuer.getId() === PlayerId);
|
|
197
146
|
}
|
|
198
147
|
|
|
199
|
-
getWatchers (): Array<
|
|
148
|
+
getWatchers (): Array<GamePlayer> {
|
|
200
149
|
return this.watchers;
|
|
201
150
|
}
|
|
202
151
|
|
|
203
|
-
addPlayerToWatchers (player:
|
|
152
|
+
addPlayerToWatchers (player: GamePlayer): void {
|
|
204
153
|
this.watchers.push(player);
|
|
205
154
|
player.watch(this.getRoomId(), this.getId());
|
|
206
155
|
}
|
|
207
156
|
|
|
208
|
-
removePlayerFromWatchers (player:
|
|
157
|
+
removePlayerFromWatchers (player: GamePlayer): void {
|
|
209
158
|
remove(this.watchers, (watcher) => watcher.getId() === player.getId());
|
|
210
159
|
player.quit();
|
|
211
160
|
}
|
|
@@ -218,7 +167,7 @@ export abstract class GameTable<GP extends GamePlayer, GM, GSR> implements IGame
|
|
|
218
167
|
return !this.seats.findFreeSeat();
|
|
219
168
|
}
|
|
220
169
|
|
|
221
|
-
getSeats (): GameTableSeats
|
|
170
|
+
getSeats (): GameTableSeats {
|
|
222
171
|
return this.seats;
|
|
223
172
|
}
|
|
224
173
|
|
package/src/base/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { GameStateMachine, StateMachineConfig } from './game-state-machine';
|
|
|
9
9
|
import { GameTable, GameTableConfig } from './game-table';
|
|
10
10
|
import { GameTableSeat } from './game-table-seat';
|
|
11
11
|
import { GameTableSeats } from './game-table-seats';
|
|
12
|
+
import { StandardGameState } from './standard-game-state';
|
|
12
13
|
|
|
13
14
|
export {
|
|
14
15
|
GameControlPlayerTurn,
|
|
@@ -25,4 +26,5 @@ export {
|
|
|
25
26
|
GameTableSeat,
|
|
26
27
|
GameTableSeats,
|
|
27
28
|
GameRoomConfig,
|
|
29
|
+
StandardGameState,
|
|
28
30
|
}
|
|
@@ -42,7 +42,7 @@ const config: StateMachineConfig = {
|
|
|
42
42
|
},
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
export class StandardGameState extends GameStateMachine
|
|
45
|
+
export class StandardGameState extends GameStateMachine {
|
|
46
46
|
constructor () {
|
|
47
47
|
super(StandardStateMachineStates.STATE_WAITING_FOR_PLAYERS, config);
|
|
48
48
|
}
|
|
@@ -55,7 +55,7 @@ export class StandardGameState extends GameStateMachine<StandardStateMachineStat
|
|
|
55
55
|
return this.getCurrentState() === StandardStateMachineStates.STATE_IN_PROGRESS;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
isFinish () {
|
|
59
59
|
return this.getCurrentState() === StandardStateMachineStates.STATE_END;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import { GamePlayer } from '../base';
|
|
2
|
-
import { IGameTable } from '../base/game-table';
|
|
3
|
-
|
|
4
|
-
import { TournamentRoom, TournamentRoomConfig } from './tournament-room';
|
|
5
|
-
|
|
6
|
-
export abstract class FastTournamentRoom<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
> extends TournamentRoom<GT, GP> {
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
1
|
+
// import { GamePlayer } from '../base';
|
|
2
|
+
// import { IGameTable } from '../base/game-table';
|
|
3
|
+
//
|
|
4
|
+
// import { TournamentRoom, TournamentRoomConfig } from './tournament-room';
|
|
5
|
+
//
|
|
6
|
+
// export abstract class FastTournamentRoom<
|
|
7
|
+
// GT extends IGameTable<GP>,
|
|
8
|
+
// GP extends GamePlayer,
|
|
9
|
+
// > extends TournamentRoom<GT, GP> {
|
|
10
|
+
// constructor (config: TournamentRoomConfig) {
|
|
11
|
+
// super(config);
|
|
12
|
+
// this.createTable();
|
|
13
|
+
// }
|
|
14
|
+
//
|
|
15
|
+
// handleJoinTournament (player: GP) {
|
|
16
|
+
// const onlyTable = this.getFirstTable();
|
|
17
|
+
// if (this.getState().isWaiting() && onlyTable && onlyTable.hasSeats()) {
|
|
18
|
+
// onlyTable.addPlayerToSeat(player);
|
|
19
|
+
// if (onlyTable.isFull()) {
|
|
20
|
+
// this.startTournament();
|
|
21
|
+
// }
|
|
22
|
+
// }
|
|
23
|
+
// }
|
|
24
|
+
//
|
|
25
|
+
// handleLeaveTournament (player: GP) {
|
|
26
|
+
// const onlyTable = this.getFirstTable();
|
|
27
|
+
// if (onlyTable) {
|
|
28
|
+
// if (player.isPlayer()) {
|
|
29
|
+
// onlyTable.removePlayerFromSeat(player);
|
|
30
|
+
// } else {
|
|
31
|
+
// onlyTable.removePlayerFromWatchers(player);
|
|
32
|
+
// }
|
|
33
|
+
// }
|
|
34
|
+
// }
|
|
35
|
+
//
|
|
36
|
+
// handleFinishRound = () => {
|
|
37
|
+
// };
|
|
38
|
+
//
|
|
39
|
+
// handleRestartRound = () => {
|
|
40
|
+
// if (this.isTournamentFinish()) {
|
|
41
|
+
// this.finishTournament();
|
|
42
|
+
// }
|
|
43
|
+
// };
|
|
44
|
+
//
|
|
45
|
+
// startTournament () {
|
|
46
|
+
// this.getFirstTable()?.getPlayers().forEach((player) => this.addParticipant(player));
|
|
47
|
+
// this.getState().toStart();
|
|
48
|
+
// this.getFirstTable()?.startNewRound();
|
|
49
|
+
// }
|
|
50
|
+
//
|
|
51
|
+
// finishTournament () {
|
|
52
|
+
// this.getState().toFinish();
|
|
53
|
+
// this.calculateWinners();
|
|
54
|
+
// }
|
|
55
|
+
//
|
|
56
|
+
// isTournamentFinish (): boolean {
|
|
57
|
+
// return this.getFirstTable()?.remainOnePlayer() ?? false;
|
|
58
|
+
// }
|
|
59
|
+
// }
|
package/src/base-rooms/index.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { FastTournamentRoom } from './fast-tournament-room';
|
|
2
|
-
import { ScheduledTournamentRoom } from './scheduled-tournament-room';
|
|
1
|
+
// import { FastTournamentRoom } from './fast-tournament-room';
|
|
2
|
+
// import { ScheduledTournamentRoom } from './scheduled-tournament-room';
|
|
3
3
|
import { SimpleRoom } from './simple-room';
|
|
4
4
|
import { ITournamentParticipant } from './tournament-participant';
|
|
5
5
|
import { TournamentPrizes } from './tournament-prize';
|
|
6
|
-
import { TournamentRoom, TournamentRoomConfig } from './tournament-room';
|
|
7
|
-
import { TournamentState } from './tournament-state';
|
|
6
|
+
// import { TournamentRoom, TournamentRoomConfig } from './tournament-room';
|
|
7
|
+
// import { TournamentState } from './tournament-state';
|
|
8
8
|
import { ITournamentWinner } from './tournament-winner';
|
|
9
9
|
|
|
10
10
|
export {
|
|
11
|
-
TournamentRoomConfig,
|
|
12
|
-
FastTournamentRoom,
|
|
11
|
+
// TournamentRoomConfig,
|
|
12
|
+
// FastTournamentRoom,
|
|
13
13
|
SimpleRoom,
|
|
14
14
|
ITournamentParticipant,
|
|
15
15
|
TournamentPrizes,
|
|
16
|
-
ScheduledTournamentRoom,
|
|
17
|
-
TournamentRoom,
|
|
18
|
-
TournamentState,
|
|
16
|
+
// ScheduledTournamentRoom,
|
|
17
|
+
// TournamentRoom,
|
|
18
|
+
// TournamentState,
|
|
19
19
|
ITournamentWinner,
|
|
20
20
|
}
|