jp.ms.common.engine 1.0.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.
- package/dist/base/game-control-player-turn.d.ts +12 -0
- package/dist/base/game-control-player-turn.d.ts.map +1 -0
- package/dist/base/game-control-player-turn.js +27 -0
- package/dist/base/game-control-player-turn.js.map +1 -0
- package/dist/base/game-control-restart.d.ts +10 -0
- package/dist/base/game-control-restart.d.ts.map +1 -0
- package/dist/base/game-control-restart.js +21 -0
- package/dist/base/game-control-restart.js.map +1 -0
- package/dist/base/game-master.d.ts +34 -0
- package/dist/base/game-master.d.ts.map +1 -0
- package/dist/base/game-master.js +83 -0
- package/dist/base/game-master.js.map +1 -0
- package/dist/base/game-player-move.d.ts +13 -0
- package/dist/base/game-player-move.d.ts.map +1 -0
- package/dist/base/game-player-move.js +28 -0
- package/dist/base/game-player-move.js.map +1 -0
- package/dist/base/game-player.d.ts +61 -0
- package/dist/base/game-player.d.ts.map +1 -0
- package/dist/base/game-player.js +140 -0
- package/dist/base/game-player.js.map +1 -0
- package/dist/base/game-room.d.ts +47 -0
- package/dist/base/game-room.d.ts.map +1 -0
- package/dist/base/game-room.js +80 -0
- package/dist/base/game-room.js.map +1 -0
- package/dist/base/game-round.d.ts +28 -0
- package/dist/base/game-round.d.ts.map +1 -0
- package/dist/base/game-round.js +37 -0
- package/dist/base/game-round.js.map +1 -0
- package/dist/base/game-state-machine.d.ts +13 -0
- package/dist/base/game-state-machine.d.ts.map +1 -0
- package/dist/base/game-state-machine.js +21 -0
- package/dist/base/game-state-machine.js.map +1 -0
- package/dist/base/game-table-seat.d.ts +15 -0
- package/dist/base/game-table-seat.d.ts.map +1 -0
- package/dist/base/game-table-seat.js +32 -0
- package/dist/base/game-table-seat.js.map +1 -0
- package/dist/base/game-table-seats.d.ts +21 -0
- package/dist/base/game-table-seats.d.ts.map +1 -0
- package/dist/base/game-table-seats.js +67 -0
- package/dist/base/game-table-seats.js.map +1 -0
- package/dist/base/game-table.d.ts +87 -0
- package/dist/base/game-table.d.ts.map +1 -0
- package/dist/base/game-table.js +130 -0
- package/dist/base/game-table.js.map +1 -0
- package/dist/base/index.d.ts +13 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +26 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/standard-game-state.d.ts +20 -0
- package/dist/base/standard-game-state.d.ts.map +1 -0
- package/dist/base/standard-game-state.js +57 -0
- package/dist/base/standard-game-state.js.map +1 -0
- package/dist/base-rooms/fast-tournament-room.d.ts +14 -0
- package/dist/base-rooms/fast-tournament-room.d.ts.map +1 -0
- package/dist/base-rooms/fast-tournament-room.js +53 -0
- package/dist/base-rooms/fast-tournament-room.js.map +1 -0
- package/dist/base-rooms/index.d.ts +10 -0
- package/dist/base-rooms/index.d.ts.map +1 -0
- package/dist/base-rooms/index.js +14 -0
- package/dist/base-rooms/index.js.map +1 -0
- package/dist/base-rooms/scheduled-tournament-room.d.ts +28 -0
- package/dist/base-rooms/scheduled-tournament-room.d.ts.map +1 -0
- package/dist/base-rooms/scheduled-tournament-room.js +166 -0
- package/dist/base-rooms/scheduled-tournament-room.js.map +1 -0
- package/dist/base-rooms/simple-room.d.ts +9 -0
- package/dist/base-rooms/simple-room.d.ts.map +1 -0
- package/dist/base-rooms/simple-room.js +13 -0
- package/dist/base-rooms/simple-room.js.map +1 -0
- package/dist/base-rooms/tournament-participant.d.ts +6 -0
- package/dist/base-rooms/tournament-participant.d.ts.map +1 -0
- package/dist/base-rooms/tournament-participant.js +3 -0
- package/dist/base-rooms/tournament-participant.js.map +1 -0
- package/dist/base-rooms/tournament-prize.d.ts +7 -0
- package/dist/base-rooms/tournament-prize.d.ts.map +1 -0
- package/dist/base-rooms/tournament-prize.js +3 -0
- package/dist/base-rooms/tournament-prize.js.map +1 -0
- package/dist/base-rooms/tournament-room.d.ts +47 -0
- package/dist/base-rooms/tournament-room.d.ts.map +1 -0
- package/dist/base-rooms/tournament-room.js +111 -0
- package/dist/base-rooms/tournament-room.js.map +1 -0
- package/dist/base-rooms/tournament-state.d.ts +23 -0
- package/dist/base-rooms/tournament-state.d.ts.map +1 -0
- package/dist/base-rooms/tournament-state.js +63 -0
- package/dist/base-rooms/tournament-state.js.map +1 -0
- package/dist/base-rooms/tournament-winner.d.ts +8 -0
- package/dist/base-rooms/tournament-winner.d.ts.map +1 -0
- package/dist/base-rooms/tournament-winner.js +3 -0
- package/dist/base-rooms/tournament-winner.js.map +1 -0
- package/dist/board-game/base/board-cell.d.ts +16 -0
- package/dist/board-game/base/board-cell.d.ts.map +1 -0
- package/dist/board-game/base/board-cell.js +42 -0
- package/dist/board-game/base/board-cell.js.map +1 -0
- package/dist/board-game/base/board-figure.d.ts +16 -0
- package/dist/board-game/base/board-figure.d.ts.map +1 -0
- package/dist/board-game/base/board-figure.js +38 -0
- package/dist/board-game/base/board-figure.js.map +1 -0
- package/dist/board-game/base/board-game-master.d.ts +19 -0
- package/dist/board-game/base/board-game-master.d.ts.map +1 -0
- package/dist/board-game/base/board-game-master.js +36 -0
- package/dist/board-game/base/board-game-master.js.map +1 -0
- package/dist/board-game/base/board-player-move.d.ts +11 -0
- package/dist/board-game/base/board-player-move.d.ts.map +1 -0
- package/dist/board-game/base/board-player-move.js +30 -0
- package/dist/board-game/base/board-player-move.js.map +1 -0
- package/dist/board-game/base/board-player.d.ts +13 -0
- package/dist/board-game/base/board-player.d.ts.map +1 -0
- package/dist/board-game/base/board-player.js +31 -0
- package/dist/board-game/base/board-player.js.map +1 -0
- package/dist/board-game/base/board-table.d.ts +17 -0
- package/dist/board-game/base/board-table.d.ts.map +1 -0
- package/dist/board-game/base/board-table.js +35 -0
- package/dist/board-game/base/board-table.js.map +1 -0
- package/dist/board-game/d1-board-game/d1-board-table.d.ts +19 -0
- package/dist/board-game/d1-board-game/d1-board-table.d.ts.map +1 -0
- package/dist/board-game/d1-board-game/d1-board-table.js +41 -0
- package/dist/board-game/d1-board-game/d1-board-table.js.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts +12 -0
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-cell.js +26 -0
- package/dist/board-game/d2-board-game/d2-board-cell.js.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts +29 -0
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js +51 -0
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-table.d.ts +49 -0
- package/dist/board-game/d2-board-game/d2-board-table.d.ts.map +1 -0
- package/dist/board-game/d2-board-game/d2-board-table.js +184 -0
- package/dist/board-game/d2-board-game/d2-board-table.js.map +1 -0
- package/dist/board-game/d2-board-game/types.d.ts +5 -0
- package/dist/board-game/d2-board-game/types.d.ts.map +1 -0
- package/dist/board-game/d2-board-game/types.js +3 -0
- package/dist/board-game/d2-board-game/types.js.map +1 -0
- package/dist/board-game/dice.d.ts +5 -0
- package/dist/board-game/dice.d.ts.map +1 -0
- package/dist/board-game/dice.js +14 -0
- package/dist/board-game/dice.js.map +1 -0
- package/dist/board-game/index.d.ts +13 -0
- package/dist/board-game/index.d.ts.map +1 -0
- package/dist/board-game/index.js +26 -0
- package/dist/board-game/index.js.map +1 -0
- package/dist/cards-game/cards/card.d.ts +25 -0
- package/dist/cards-game/cards/card.d.ts.map +1 -0
- package/dist/cards-game/cards/card.js +45 -0
- package/dist/cards-game/cards/card.js.map +1 -0
- package/dist/cards-game/cards/cards.d.ts +55 -0
- package/dist/cards-game/cards/cards.d.ts.map +1 -0
- package/dist/cards-game/cards/cards.js +63 -0
- package/dist/cards-game/cards/cards.js.map +1 -0
- package/dist/cards-game/cards/deck36.d.ts +2 -0
- package/dist/cards-game/cards/deck36.d.ts.map +1 -0
- package/dist/cards-game/cards/deck36.js +43 -0
- package/dist/cards-game/cards/deck36.js.map +1 -0
- package/dist/cards-game/cards/deck52.d.ts +2 -0
- package/dist/cards-game/cards/deck52.d.ts.map +1 -0
- package/dist/cards-game/cards/deck52.js +59 -0
- package/dist/cards-game/cards/deck52.js.map +1 -0
- package/dist/cards-game/cards/ranks.d.ts +18 -0
- package/dist/cards-game/cards/ranks.d.ts.map +1 -0
- package/dist/cards-game/cards/ranks.js +23 -0
- package/dist/cards-game/cards/ranks.js.map +1 -0
- package/dist/cards-game/cards/suits.d.ts +8 -0
- package/dist/cards-game/cards/suits.d.ts.map +1 -0
- package/dist/cards-game/cards/suits.js +13 -0
- package/dist/cards-game/cards/suits.js.map +1 -0
- package/dist/cards-game/cards-game-master.d.ts +24 -0
- package/dist/cards-game/cards-game-master.d.ts.map +1 -0
- package/dist/cards-game/cards-game-master.js +65 -0
- package/dist/cards-game/cards-game-master.js.map +1 -0
- package/dist/cards-game/cards-player.d.ts +12 -0
- package/dist/cards-game/cards-player.d.ts.map +1 -0
- package/dist/cards-game/cards-player.js +29 -0
- package/dist/cards-game/cards-player.js.map +1 -0
- package/dist/cards-game/cards-table.d.ts +11 -0
- package/dist/cards-game/cards-table.d.ts.map +1 -0
- package/dist/cards-game/cards-table.js +20 -0
- package/dist/cards-game/cards-table.js.map +1 -0
- package/dist/cards-game/index.d.ts +11 -0
- package/dist/cards-game/index.d.ts.map +1 -0
- package/dist/cards-game/index.js +55 -0
- package/dist/cards-game/index.js.map +1 -0
- package/dist/const.d.ts +3 -0
- package/dist/const.d.ts.map +1 -0
- package/dist/const.js +6 -0
- package/dist/const.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/circle-list.d.ts +29 -0
- package/dist/utils/circle-list.d.ts.map +1 -0
- package/dist/utils/circle-list.js +103 -0
- package/dist/utils/circle-list.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/shuffle.d.ts +3 -0
- package/dist/utils/shuffle.d.ts.map +1 -0
- package/dist/utils/shuffle.js +16 -0
- package/dist/utils/shuffle.js.map +1 -0
- package/dist/utils/tests/circle-list.test.d.ts +2 -0
- package/dist/utils/tests/circle-list.test.d.ts.map +1 -0
- package/dist/utils/tests/circle-list.test.js +60 -0
- package/dist/utils/tests/circle-list.test.js.map +1 -0
- package/package.json +54 -0
- package/readme.md +3 -0
- package/src/base/game-control-player-turn.ts +39 -0
- package/src/base/game-control-restart.ts +30 -0
- package/src/base/game-master.ts +109 -0
- package/src/base/game-player-move.ts +33 -0
- package/src/base/game-player.ts +184 -0
- package/src/base/game-room.ts +127 -0
- package/src/base/game-round.ts +62 -0
- package/src/base/game-state-machine.ts +25 -0
- package/src/base/game-table-seat.ts +37 -0
- package/src/base/game-table-seats.ts +78 -0
- package/src/base/game-table.ts +237 -0
- package/src/base/index.ts +25 -0
- package/src/base/standard-game-state.ts +69 -0
- package/src/base-rooms/fast-tournament-room.ts +59 -0
- package/src/base-rooms/index.ts +19 -0
- package/src/base-rooms/scheduled-tournament-room.ts +181 -0
- package/src/base-rooms/simple-room.ts +15 -0
- package/src/base-rooms/tournament-participant.ts +5 -0
- package/src/base-rooms/tournament-prize.ts +7 -0
- package/src/base-rooms/tournament-room.ts +169 -0
- package/src/base-rooms/tournament-state.ts +78 -0
- package/src/base-rooms/tournament-winner.ts +7 -0
- package/src/board-game/base/board-cell.ts +50 -0
- package/src/board-game/base/board-figure.ts +49 -0
- package/src/board-game/base/board-game-master.ts +56 -0
- package/src/board-game/base/board-player-move.ts +29 -0
- package/src/board-game/base/board-player.ts +43 -0
- package/src/board-game/base/board-table.ts +52 -0
- package/src/board-game/d1-board-game/d1-board-table.ts +56 -0
- package/src/board-game/d2-board-game/d2-board-cell.ts +30 -0
- package/src/board-game/d2-board-game/d2-board-pattern-move-figure.ts +79 -0
- package/src/board-game/d2-board-game/d2-board-table.ts +262 -0
- package/src/board-game/d2-board-game/types.ts +4 -0
- package/src/board-game/dice.ts +9 -0
- package/src/board-game/index.ts +28 -0
- package/src/cards-game/cards/card.ts +60 -0
- package/src/cards-game/cards/cards.ts +86 -0
- package/src/cards-game/cards/deck36.ts +80 -0
- package/src/cards-game/cards/deck52.ts +112 -0
- package/src/cards-game/cards/ranks.ts +19 -0
- package/src/cards-game/cards/suits.ts +10 -0
- package/src/cards-game/cards-game-master.ts +83 -0
- package/src/cards-game/cards-player.ts +40 -0
- package/src/cards-game/cards-table.ts +28 -0
- package/src/cards-game/index.ts +21 -0
- package/src/const.ts +3 -0
- package/src/index.ts +5 -0
- package/src/utils/circle-list.ts +130 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/shuffle.ts +12 -0
- package/src/utils/tests/circle-list.test.ts +72 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GamePlayer } from './game-player';
|
|
2
|
+
export declare class GameControlPlayerTurn<GP extends GamePlayer> {
|
|
3
|
+
private readonly playersTurnTimeout;
|
|
4
|
+
private playerTurnTimerId?;
|
|
5
|
+
private playerTurnTimerDate;
|
|
6
|
+
private readonly handleTurnTimeout;
|
|
7
|
+
constructor(playersTurnTimeout: number, handleTurnTimeout: (player: GP) => void);
|
|
8
|
+
isEnableTimer(): boolean;
|
|
9
|
+
setPlayerTurnTimeout(player: GP | null): void;
|
|
10
|
+
clearPlayerTurnTimeout(player: GP | null): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=game-control-player-turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-control-player-turn.d.ts","sourceRoot":"","sources":["../../src/base/game-control-player-turn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,qBAAqB,CAAC,EAAE,SAAS,UAAU;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC3C,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;gBAGrD,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,IAAI;IAM3C,aAAa;IAIb,oBAAoB,CAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAUvC,sBAAsB,CAAE,MAAM,EAAE,EAAE,GAAG,IAAI;CAM5C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GameControlPlayerTurn = void 0;
|
|
4
|
+
const const_1 = require("../const");
|
|
5
|
+
class GameControlPlayerTurn {
|
|
6
|
+
constructor(playersTurnTimeout, handleTurnTimeout) {
|
|
7
|
+
this.playersTurnTimeout = playersTurnTimeout;
|
|
8
|
+
this.handleTurnTimeout = handleTurnTimeout;
|
|
9
|
+
}
|
|
10
|
+
isEnableTimer() {
|
|
11
|
+
return this.playersTurnTimeout > 0;
|
|
12
|
+
}
|
|
13
|
+
setPlayerTurnTimeout(player) {
|
|
14
|
+
this.playerTurnTimerDate = new Date();
|
|
15
|
+
if (this.isEnableTimer() && player) {
|
|
16
|
+
this.playerTurnTimerId = setTimeout(() => this.handleTurnTimeout(player), this.playersTurnTimeout * const_1.ONE_SECOND);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
clearPlayerTurnTimeout(player) {
|
|
20
|
+
if (this.playerTurnTimerId) {
|
|
21
|
+
clearTimeout(this.playerTurnTimerId);
|
|
22
|
+
this.playerTurnTimerDate = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.GameControlPlayerTurn = GameControlPlayerTurn;
|
|
27
|
+
//# sourceMappingURL=game-control-player-turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-control-player-turn.js","sourceRoot":"","sources":["../../src/base/game-control-player-turn.ts"],"names":[],"mappings":";;;AAAA,oCAAsC;AAItC,MAAa,qBAAqB;IAM9B,YACI,kBAA0B,EAC1B,iBAAuC;QAEvC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB,CAAE,MAAiB;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAC/B,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACpC,IAAI,CAAC,kBAAkB,GAAG,kBAAU,CACvC,CAAC;QACN,CAAC;IACL,CAAC;IAED,sBAAsB,CAAE,MAAiB;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACpC,CAAC;IACL,CAAC;CACJ;AAlCD,sDAkCC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class GameControlRestart {
|
|
2
|
+
private readonly restartTimeout;
|
|
3
|
+
private restartTimerId?;
|
|
4
|
+
private restartTimerDate;
|
|
5
|
+
private readonly handleRestartTimeout;
|
|
6
|
+
constructor(restartTimeout: number, handleRestartTimeout: () => void);
|
|
7
|
+
isEnableTimer(): boolean;
|
|
8
|
+
setRestartTimeout(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=game-control-restart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-control-restart.d.ts","sourceRoot":"","sources":["../../src/base/game-control-restart.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;gBAG9C,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,IAAI;IAMpC,aAAa;IAIb,iBAAiB;CASpB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GameControlRestart = void 0;
|
|
4
|
+
const const_1 = require("../const");
|
|
5
|
+
class GameControlRestart {
|
|
6
|
+
constructor(restartTimeout, handleRestartTimeout) {
|
|
7
|
+
this.restartTimeout = restartTimeout;
|
|
8
|
+
this.handleRestartTimeout = handleRestartTimeout;
|
|
9
|
+
}
|
|
10
|
+
isEnableTimer() {
|
|
11
|
+
return this.restartTimeout > 0;
|
|
12
|
+
}
|
|
13
|
+
setRestartTimeout() {
|
|
14
|
+
this.restartTimerDate = new Date();
|
|
15
|
+
if (this.isEnableTimer()) {
|
|
16
|
+
this.restartTimerId = setTimeout(this.handleRestartTimeout, this.restartTimeout * const_1.ONE_SECOND);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.GameControlRestart = GameControlRestart;
|
|
21
|
+
//# sourceMappingURL=game-control-restart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-control-restart.js","sourceRoot":"","sources":["../../src/base/game-control-restart.ts"],"names":[],"mappings":";;;AAAA,oCAAsC;AAEtC,MAAa,kBAAkB;IAM3B,YACI,cAAsB,EACtB,oBAAgC;QAEhC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,UAAU,CAC5B,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,cAAc,GAAG,kBAAU,CACnC,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AA3BD,gDA2BC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GamePlayer } from './game-player';
|
|
2
|
+
import { IGameTable } from './game-table';
|
|
3
|
+
import { GameControlPlayerTurn } from './game-control-player-turn';
|
|
4
|
+
import { GameControlRestart } from './game-control-restart';
|
|
5
|
+
import { IGameRound } from './game-round';
|
|
6
|
+
export declare abstract class GameMaster<GT extends IGameTable<GP>, GR extends IGameRound<GP>, GP extends GamePlayer, GSR> {
|
|
7
|
+
protected readonly table: GT;
|
|
8
|
+
protected gameRound: GR | null;
|
|
9
|
+
readonly controlTurn: GameControlPlayerTurn<GP>;
|
|
10
|
+
readonly controlRestart: GameControlRestart;
|
|
11
|
+
protected constructor(table: GT);
|
|
12
|
+
abstract onHandleTurnTimeout(player: GP): any;
|
|
13
|
+
abstract onHandleRestartTimeout(): any;
|
|
14
|
+
abstract kickPlayer(player: GP): any;
|
|
15
|
+
abstract startNewRound(): any;
|
|
16
|
+
abstract finishRound(): any;
|
|
17
|
+
abstract changePlayer(): any;
|
|
18
|
+
abstract getResults(): GSR | null;
|
|
19
|
+
abstract onHandleMove(player: GP): any;
|
|
20
|
+
setGameRound(gameRound: GR): void;
|
|
21
|
+
getGameRound(): GR | null;
|
|
22
|
+
getTable(): GT;
|
|
23
|
+
enterTheTable(player: GP): void;
|
|
24
|
+
exitTheTable(player: GP): void;
|
|
25
|
+
watchTheTable(player: GP): void;
|
|
26
|
+
startFromWhite(): void;
|
|
27
|
+
changePlayerClockwise(): void;
|
|
28
|
+
changePlayerCounterClockwise(): void;
|
|
29
|
+
getActivePlayer(): GP;
|
|
30
|
+
getNextPlayer(): GP;
|
|
31
|
+
getNextAfterNextPlayer(): GP;
|
|
32
|
+
getNextPlayerBySeat(seat: number): GP;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=game-master.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-master.d.ts","sourceRoot":"","sources":["../../src/base/game-master.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,8BAAsB,UAAU,CAAC,EAAE,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,UAAU,EAAE,GAAG;IAC7G,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IAC/B,SAAgB,WAAW,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACvD,SAAgB,cAAc,EAAE,kBAAkB,CAAC;IAEnD,SAAS,aAAc,KAAK,EAAE,EAAE;IAMhC,QAAQ,CAAC,mBAAmB,CAAE,MAAM,EAAE,EAAE;IAExC,QAAQ,CAAC,sBAAsB;IAE/B,QAAQ,CAAC,UAAU,CAAE,MAAM,EAAE,EAAE;IAE/B,QAAQ,CAAC,aAAa;IAEtB,QAAQ,CAAC,WAAW;IAEpB,QAAQ,CAAC,YAAY;IAErB,QAAQ,CAAC,UAAU,IAAK,GAAG,GAAG,IAAI;IAElC,QAAQ,CAAC,YAAY,CAAE,MAAM,EAAE,EAAE;IAEjC,YAAY,CAAE,SAAS,EAAE,EAAE,GAAG,IAAI;IAIlC,YAAY,IAAK,EAAE,GAAG,IAAI;IAI1B,QAAQ;IAIR,aAAa,CAAE,MAAM,EAAE,EAAE;IAQzB,YAAY,CAAE,MAAM,EAAE,EAAE;IAUxB,aAAa,CAAE,MAAM,EAAE,EAAE;IAIzB,cAAc;IAOd,qBAAqB;IASrB,4BAA4B;IAS5B,eAAe;IAIf,aAAa;IAIb,sBAAsB;IAItB,mBAAmB,CAAE,IAAI,EAAE,MAAM;CAGpC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GameMaster = void 0;
|
|
4
|
+
const game_control_player_turn_1 = require("./game-control-player-turn");
|
|
5
|
+
const game_control_restart_1 = require("./game-control-restart");
|
|
6
|
+
class GameMaster {
|
|
7
|
+
constructor(table) {
|
|
8
|
+
this.table = table;
|
|
9
|
+
this.controlTurn = new game_control_player_turn_1.GameControlPlayerTurn(this.table.getTurnTimeout(), this.onHandleTurnTimeout);
|
|
10
|
+
this.controlRestart = new game_control_restart_1.GameControlRestart(this.table.getRestartTimeout(), this.onHandleRestartTimeout);
|
|
11
|
+
}
|
|
12
|
+
setGameRound(gameRound) {
|
|
13
|
+
this.gameRound = gameRound;
|
|
14
|
+
}
|
|
15
|
+
getGameRound() {
|
|
16
|
+
return this.gameRound;
|
|
17
|
+
}
|
|
18
|
+
getTable() {
|
|
19
|
+
return this.table;
|
|
20
|
+
}
|
|
21
|
+
enterTheTable(player) {
|
|
22
|
+
if (this.table.isFull()) {
|
|
23
|
+
this.table.addPlayerToQueue(player);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.table.addPlayerToSeat(player);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exitTheTable(player) {
|
|
30
|
+
if (player.isPlayer()) {
|
|
31
|
+
this.table.removePlayerFromSeat(player);
|
|
32
|
+
}
|
|
33
|
+
else if (player.isTableQueuer()) {
|
|
34
|
+
this.table.removePlayerFromQueue(player);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.table.removePlayerFromWatchers(player);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
watchTheTable(player) {
|
|
41
|
+
this.table.addPlayerToWatchers(player);
|
|
42
|
+
}
|
|
43
|
+
startFromWhite() {
|
|
44
|
+
var _a;
|
|
45
|
+
const firstPlayer = this.table.getPlayers().find((item) => item.isWhite());
|
|
46
|
+
if (firstPlayer) {
|
|
47
|
+
(_a = this.gameRound) === null || _a === void 0 ? void 0 : _a.setActivePlayer(firstPlayer);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
changePlayerClockwise() {
|
|
51
|
+
var _a, _b, _c;
|
|
52
|
+
const activePlayer = (_a = this.getGameRound()) === null || _a === void 0 ? void 0 : _a.getActivePlayer();
|
|
53
|
+
const nextPlayer = this.table.getSeats().getNextPlayer((_b = activePlayer === null || activePlayer === void 0 ? void 0 : activePlayer.getSeatNumber()) !== null && _b !== void 0 ? _b : 0);
|
|
54
|
+
if (nextPlayer) {
|
|
55
|
+
(_c = this.gameRound) === null || _c === void 0 ? void 0 : _c.setActivePlayer(nextPlayer);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
changePlayerCounterClockwise() {
|
|
59
|
+
var _a, _b, _c;
|
|
60
|
+
const activePlayer = (_a = this.getGameRound()) === null || _a === void 0 ? void 0 : _a.getActivePlayer();
|
|
61
|
+
const prevPlayer = this.table.getSeats().getPrevPlayer((_b = activePlayer === null || activePlayer === void 0 ? void 0 : activePlayer.getSeatNumber()) !== null && _b !== void 0 ? _b : 0);
|
|
62
|
+
if (prevPlayer) {
|
|
63
|
+
(_c = this.gameRound) === null || _c === void 0 ? void 0 : _c.setActivePlayer(prevPlayer);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getActivePlayer() {
|
|
67
|
+
var _a;
|
|
68
|
+
return (_a = this.getGameRound()) === null || _a === void 0 ? void 0 : _a.getActivePlayer();
|
|
69
|
+
}
|
|
70
|
+
getNextPlayer() {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
return this.table.getSeats().getNextPlayer((_b = (_a = this.getActivePlayer()) === null || _a === void 0 ? void 0 : _a.getSeatNumber()) !== null && _b !== void 0 ? _b : 0);
|
|
73
|
+
}
|
|
74
|
+
getNextAfterNextPlayer() {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
return this.table.getSeats().getNextPlayer((_b = (_a = this.getNextPlayer()) === null || _a === void 0 ? void 0 : _a.getSeatNumber()) !== null && _b !== void 0 ? _b : 0);
|
|
77
|
+
}
|
|
78
|
+
getNextPlayerBySeat(seat) {
|
|
79
|
+
return this.table.getSeats().getNextPlayer(seat);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.GameMaster = GameMaster;
|
|
83
|
+
//# sourceMappingURL=game-master.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-master.js","sourceRoot":"","sources":["../../src/base/game-master.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class GamePlayerMove {
|
|
2
|
+
private readonly roomId;
|
|
3
|
+
private readonly tableId;
|
|
4
|
+
private readonly action;
|
|
5
|
+
private readonly attrs;
|
|
6
|
+
protected constructor(roomId: string, tableId: string, action: string);
|
|
7
|
+
getRoomId(): string;
|
|
8
|
+
getTableId(): string;
|
|
9
|
+
getAction(): string;
|
|
10
|
+
addAttr(key: string, value: string): void;
|
|
11
|
+
getAttr(key: string): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=game-player-move.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-player-move.d.ts","sourceRoot":"","sources":["../../src/base/game-player-move.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAE/C,SAAS,aAAc,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOtE,SAAS;IAIT,UAAU;IAIV,SAAS;IAIT,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAInC,OAAO,CAAE,GAAG,EAAE,MAAM;CAGvB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GamePlayerMove = void 0;
|
|
4
|
+
class GamePlayerMove {
|
|
5
|
+
constructor(roomId, tableId, action) {
|
|
6
|
+
this.roomId = roomId;
|
|
7
|
+
this.tableId = tableId;
|
|
8
|
+
this.action = action;
|
|
9
|
+
this.attrs = {};
|
|
10
|
+
}
|
|
11
|
+
getRoomId() {
|
|
12
|
+
return this.roomId;
|
|
13
|
+
}
|
|
14
|
+
getTableId() {
|
|
15
|
+
return this.tableId;
|
|
16
|
+
}
|
|
17
|
+
getAction() {
|
|
18
|
+
return this.action;
|
|
19
|
+
}
|
|
20
|
+
addAttr(key, value) {
|
|
21
|
+
this.attrs[key] = value;
|
|
22
|
+
}
|
|
23
|
+
getAttr(key) {
|
|
24
|
+
return this.attrs[key];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.GamePlayerMove = GamePlayerMove;
|
|
28
|
+
//# sourceMappingURL=game-player-move.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-player-move.js","sourceRoot":"","sources":["../../src/base/game-player-move.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IAMvB,YAAuB,MAAc,EAAE,OAAe,EAAE,MAAc;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAAE,GAAW,EAAE,KAAa;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,CAAE,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ;AAhCD,wCAgCC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { GamePlayerMove } from './game-player-move';
|
|
2
|
+
export declare enum GamePlayerRole {
|
|
3
|
+
VISITOR = "VISITOR",
|
|
4
|
+
WATCHER = "WATCHER",
|
|
5
|
+
TABLE_QUEUER = "TABLE_QUEUER",
|
|
6
|
+
PLAYER = "PLAYER",
|
|
7
|
+
TOURNAMENT_QUEUER = "TOURNAMENT_QUEUER"
|
|
8
|
+
}
|
|
9
|
+
export declare enum GamePlayerColor {
|
|
10
|
+
NO_COLOR = 0,
|
|
11
|
+
WHITE = 1,
|
|
12
|
+
BLACK = -1
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class GamePlayer {
|
|
15
|
+
private readonly id;
|
|
16
|
+
private readonly fullName;
|
|
17
|
+
private readonly avatarUrl;
|
|
18
|
+
private balance;
|
|
19
|
+
private gameId;
|
|
20
|
+
private roomId;
|
|
21
|
+
private tableId;
|
|
22
|
+
private seatNumber;
|
|
23
|
+
private role;
|
|
24
|
+
protected stack: number;
|
|
25
|
+
private readonly color;
|
|
26
|
+
private bet;
|
|
27
|
+
private move;
|
|
28
|
+
constructor(id: string, fullName: string, avatarUrl: string, balance: number, color?: number);
|
|
29
|
+
getId(): string;
|
|
30
|
+
getFullName(): string;
|
|
31
|
+
getAvatarUrl(): string;
|
|
32
|
+
getBalance(): number;
|
|
33
|
+
increaseBalance(amount: number): void;
|
|
34
|
+
decreaseBalance(amount: number): void;
|
|
35
|
+
makeBet(bet: number): void;
|
|
36
|
+
getBet(): number;
|
|
37
|
+
increaseBet(bet: number): void;
|
|
38
|
+
getColor(): number;
|
|
39
|
+
getRoomId(): string;
|
|
40
|
+
getTableId(): string;
|
|
41
|
+
getSeatNumber(): number;
|
|
42
|
+
watch(roomId: string, tableId: string): void;
|
|
43
|
+
seat(roomId: string, tableId: string, seatNumber: number): void;
|
|
44
|
+
getInTableQueue(roomId: string, tableId: string): void;
|
|
45
|
+
getInTournamentQueue(roomId: string): void;
|
|
46
|
+
isWatcher(): boolean;
|
|
47
|
+
isPlayer(): boolean;
|
|
48
|
+
isTableQueuer(): boolean;
|
|
49
|
+
isTournamentQueuer(): boolean;
|
|
50
|
+
quit(): void;
|
|
51
|
+
getStack(): number;
|
|
52
|
+
setStack(stack: number): void;
|
|
53
|
+
hasEmptyStack(): boolean;
|
|
54
|
+
hasOpenConnection(): boolean;
|
|
55
|
+
flush(): void;
|
|
56
|
+
getMove(): GamePlayerMove;
|
|
57
|
+
setMove(move: GamePlayerMove): void;
|
|
58
|
+
isWhite(): boolean;
|
|
59
|
+
isBlack(): boolean;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=game-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-player.d.ts","sourceRoot":"","sources":["../../src/base/game-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,oBAAY,cAAc;IACtB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,iBAAiB,sBAAsB;CAC1C;AAED,oBAAY,eAAe;IACvB,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,KAAK,KAAK;CACb;AAED,8BAAsB,UAAU;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,IAAI,CAAuB;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAA6B;gBAGrC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM;IAWlB,KAAK,IAAK,MAAM;IAIhB,WAAW,IAAK,MAAM;IAItB,YAAY,IAAK,MAAM;IAIvB,UAAU,IAAK,MAAM;IAIrB,eAAe,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,eAAe,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,OAAO,CAAE,GAAG,EAAE,MAAM;IAKpB,MAAM;IAIN,WAAW,CAAE,GAAG,EAAE,MAAM;IAKxB,QAAQ;IAIR,SAAS;IAIT,UAAU;IAIV,aAAa;IAIb,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMtC,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAOzD,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMhD,oBAAoB,CAAE,MAAM,EAAE,MAAM;IAKpC,SAAS,IAAK,OAAO;IAIrB,QAAQ,IAAK,OAAO;IAIpB,aAAa,IAAK,OAAO;IAIzB,kBAAkB,IAAK,OAAO;IAI9B,IAAI;IAOJ,QAAQ;IAIR,QAAQ,CAAE,KAAK,EAAE,MAAM;IAIvB,aAAa;IAIb,iBAAiB;IAIjB,KAAK;IAIL,OAAO;IAIP,OAAO,CAAE,IAAI,EAAE,cAAc;IAI7B,OAAO;IAIP,OAAO;CAGV"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GamePlayer = exports.GamePlayerColor = exports.GamePlayerRole = void 0;
|
|
4
|
+
var GamePlayerRole;
|
|
5
|
+
(function (GamePlayerRole) {
|
|
6
|
+
GamePlayerRole["VISITOR"] = "VISITOR";
|
|
7
|
+
GamePlayerRole["WATCHER"] = "WATCHER";
|
|
8
|
+
GamePlayerRole["TABLE_QUEUER"] = "TABLE_QUEUER";
|
|
9
|
+
GamePlayerRole["PLAYER"] = "PLAYER";
|
|
10
|
+
GamePlayerRole["TOURNAMENT_QUEUER"] = "TOURNAMENT_QUEUER";
|
|
11
|
+
})(GamePlayerRole || (exports.GamePlayerRole = GamePlayerRole = {}));
|
|
12
|
+
var GamePlayerColor;
|
|
13
|
+
(function (GamePlayerColor) {
|
|
14
|
+
GamePlayerColor[GamePlayerColor["NO_COLOR"] = 0] = "NO_COLOR";
|
|
15
|
+
GamePlayerColor[GamePlayerColor["WHITE"] = 1] = "WHITE";
|
|
16
|
+
GamePlayerColor[GamePlayerColor["BLACK"] = -1] = "BLACK";
|
|
17
|
+
})(GamePlayerColor || (exports.GamePlayerColor = GamePlayerColor = {}));
|
|
18
|
+
class GamePlayer {
|
|
19
|
+
constructor(id, fullName, avatarUrl, balance, color) {
|
|
20
|
+
this.gameId = null;
|
|
21
|
+
this.roomId = null;
|
|
22
|
+
this.tableId = null;
|
|
23
|
+
this.seatNumber = null;
|
|
24
|
+
this.role = null;
|
|
25
|
+
this.id = id;
|
|
26
|
+
this.fullName = fullName;
|
|
27
|
+
this.avatarUrl = avatarUrl;
|
|
28
|
+
this.balance = balance;
|
|
29
|
+
this.stack = 0;
|
|
30
|
+
this.color = color !== null && color !== void 0 ? color : 0;
|
|
31
|
+
this.bet = 0;
|
|
32
|
+
}
|
|
33
|
+
getId() {
|
|
34
|
+
return this.id;
|
|
35
|
+
}
|
|
36
|
+
getFullName() {
|
|
37
|
+
return this.fullName;
|
|
38
|
+
}
|
|
39
|
+
getAvatarUrl() {
|
|
40
|
+
return this.avatarUrl;
|
|
41
|
+
}
|
|
42
|
+
getBalance() {
|
|
43
|
+
return this.balance;
|
|
44
|
+
}
|
|
45
|
+
increaseBalance(amount) {
|
|
46
|
+
this.balance += amount;
|
|
47
|
+
}
|
|
48
|
+
decreaseBalance(amount) {
|
|
49
|
+
this.balance -= amount;
|
|
50
|
+
}
|
|
51
|
+
makeBet(bet) {
|
|
52
|
+
this.stack -= bet;
|
|
53
|
+
this.bet = bet;
|
|
54
|
+
}
|
|
55
|
+
getBet() {
|
|
56
|
+
return this.bet;
|
|
57
|
+
}
|
|
58
|
+
increaseBet(bet) {
|
|
59
|
+
this.bet += bet;
|
|
60
|
+
this.stack -= bet;
|
|
61
|
+
}
|
|
62
|
+
getColor() {
|
|
63
|
+
return this.color;
|
|
64
|
+
}
|
|
65
|
+
getRoomId() {
|
|
66
|
+
return this.roomId;
|
|
67
|
+
}
|
|
68
|
+
getTableId() {
|
|
69
|
+
return this.tableId;
|
|
70
|
+
}
|
|
71
|
+
getSeatNumber() {
|
|
72
|
+
return this.seatNumber;
|
|
73
|
+
}
|
|
74
|
+
watch(roomId, tableId) {
|
|
75
|
+
this.roomId = roomId;
|
|
76
|
+
this.tableId = tableId;
|
|
77
|
+
this.role = GamePlayerRole.WATCHER;
|
|
78
|
+
}
|
|
79
|
+
seat(roomId, tableId, seatNumber) {
|
|
80
|
+
this.roomId = roomId;
|
|
81
|
+
this.tableId = tableId;
|
|
82
|
+
this.seatNumber = seatNumber;
|
|
83
|
+
this.role = GamePlayerRole.PLAYER;
|
|
84
|
+
}
|
|
85
|
+
getInTableQueue(roomId, tableId) {
|
|
86
|
+
this.roomId = roomId;
|
|
87
|
+
this.tableId = tableId;
|
|
88
|
+
this.role = GamePlayerRole.TABLE_QUEUER;
|
|
89
|
+
}
|
|
90
|
+
getInTournamentQueue(roomId) {
|
|
91
|
+
this.roomId = roomId;
|
|
92
|
+
this.role = GamePlayerRole.TOURNAMENT_QUEUER;
|
|
93
|
+
}
|
|
94
|
+
isWatcher() {
|
|
95
|
+
return this.role === GamePlayerRole.WATCHER;
|
|
96
|
+
}
|
|
97
|
+
isPlayer() {
|
|
98
|
+
return this.role === GamePlayerRole.PLAYER;
|
|
99
|
+
}
|
|
100
|
+
isTableQueuer() {
|
|
101
|
+
return this.role === GamePlayerRole.TABLE_QUEUER;
|
|
102
|
+
}
|
|
103
|
+
isTournamentQueuer() {
|
|
104
|
+
return this.role === GamePlayerRole.TOURNAMENT_QUEUER;
|
|
105
|
+
}
|
|
106
|
+
quit() {
|
|
107
|
+
this.roomId = null;
|
|
108
|
+
this.tableId = null;
|
|
109
|
+
this.seatNumber = null;
|
|
110
|
+
this.role = null;
|
|
111
|
+
}
|
|
112
|
+
getStack() {
|
|
113
|
+
return this.stack;
|
|
114
|
+
}
|
|
115
|
+
setStack(stack) {
|
|
116
|
+
this.stack = stack;
|
|
117
|
+
}
|
|
118
|
+
hasEmptyStack() {
|
|
119
|
+
return this.getStack() === 0;
|
|
120
|
+
}
|
|
121
|
+
hasOpenConnection() {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
flush() {
|
|
125
|
+
}
|
|
126
|
+
getMove() {
|
|
127
|
+
return this.move;
|
|
128
|
+
}
|
|
129
|
+
setMove(move) {
|
|
130
|
+
this.move = move;
|
|
131
|
+
}
|
|
132
|
+
isWhite() {
|
|
133
|
+
return this.color === GamePlayerColor.WHITE;
|
|
134
|
+
}
|
|
135
|
+
isBlack() {
|
|
136
|
+
return this.color === GamePlayerColor.BLACK;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.GamePlayer = GamePlayer;
|
|
140
|
+
//# sourceMappingURL=game-player.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-player.js","sourceRoot":"","sources":["../../src/base/game-player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { GameTableConfig, IGameTable } from './game-table';
|
|
2
|
+
import { GamePlayer } from './game-player';
|
|
3
|
+
export type GameRoomConfig = {
|
|
4
|
+
id: string;
|
|
5
|
+
gameType: string;
|
|
6
|
+
roomType: string;
|
|
7
|
+
rulesType: string;
|
|
8
|
+
maxPlayers: number;
|
|
9
|
+
bet: number;
|
|
10
|
+
turnTimeout: number;
|
|
11
|
+
restartTimeout: number;
|
|
12
|
+
};
|
|
13
|
+
export declare abstract class GameRoom<GT extends IGameTable<GP>, GP extends GamePlayer> {
|
|
14
|
+
private readonly id;
|
|
15
|
+
private readonly gameType;
|
|
16
|
+
private readonly roomType;
|
|
17
|
+
private readonly rulesType;
|
|
18
|
+
private readonly maxPlayers;
|
|
19
|
+
private readonly bet;
|
|
20
|
+
private readonly tables;
|
|
21
|
+
private readonly turnTimeout;
|
|
22
|
+
private readonly restartTimeout;
|
|
23
|
+
private createdTableCount;
|
|
24
|
+
constructor(config: GameRoomConfig);
|
|
25
|
+
abstract createTable(): GT;
|
|
26
|
+
abstract handleWatchTheTable(player: GP, tableId: string): any;
|
|
27
|
+
abstract handleMove(player: GP, tableId: string): any;
|
|
28
|
+
abstract handleFinishRound(table: IGameTable<GP>): any;
|
|
29
|
+
abstract handleRestartRound(table: IGameTable<GP>): any;
|
|
30
|
+
getId(): string;
|
|
31
|
+
getRoomType(): string;
|
|
32
|
+
getGameType(): string;
|
|
33
|
+
getRulesType(): string;
|
|
34
|
+
getMaxPlayers(): number;
|
|
35
|
+
getTables(): Array<GT>;
|
|
36
|
+
getFirstTable(): GT | undefined;
|
|
37
|
+
getTableWithFreeSeats(): GT | undefined;
|
|
38
|
+
remainOneTable(): boolean;
|
|
39
|
+
getTableById(id: string): GT | undefined;
|
|
40
|
+
getFreeTableNumber(): number;
|
|
41
|
+
getCreatedTableCount(): number;
|
|
42
|
+
addTable(newTable: GT): void;
|
|
43
|
+
removeTable(removingTable: GT): void;
|
|
44
|
+
getBet(): number;
|
|
45
|
+
getConfigForTable(): GameTableConfig<GP>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=game-room.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-room.d.ts","sourceRoot":"","sources":["../../src/base/game-room.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAA;AAED,8BAAsB,QAAQ,CAAC,EAAE,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,UAAU;IAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,iBAAiB,CAAS;gBAErB,MAAM,EAAE,cAAc;IAanC,QAAQ,CAAC,WAAW,IAAK,EAAE;IAE3B,QAAQ,CAAC,mBAAmB,CAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM;IAEzD,QAAQ,CAAC,UAAU,CAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM;IAEhD,QAAQ,CAAC,iBAAiB,CAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;IAEjD,QAAQ,CAAC,kBAAkB,CAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;IAElD,KAAK;IAIL,WAAW;IAIX,WAAW;IAIX,YAAY;IAIZ,aAAa;IAIb,SAAS,IAAK,KAAK,CAAC,EAAE,CAAC;IAIvB,aAAa,IAAK,EAAE,GAAG,SAAS;IAIhC,qBAAqB,IAAK,EAAE,GAAG,SAAS;IAIxC,cAAc,IAAK,OAAO;IAI1B,YAAY,CAAE,EAAE,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAIzC,kBAAkB,IAAK,MAAM;IAI7B,oBAAoB,IAAK,MAAM;IAI/B,QAAQ,CAAE,QAAQ,EAAE,EAAE,GAAG,IAAI;IAK7B,WAAW,CAAE,aAAa,EAAE,EAAE,GAAG,IAAI;IAIrC,MAAM;IAIN,iBAAiB,IAAK,eAAe,CAAC,EAAE,CAAC;CAa5C"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GameRoom = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const lodash_2 = require("lodash");
|
|
6
|
+
class GameRoom {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.tables = [];
|
|
9
|
+
this.createdTableCount = 0;
|
|
10
|
+
this.id = config.id;
|
|
11
|
+
this.roomType = config.roomType;
|
|
12
|
+
this.rulesType = config.rulesType;
|
|
13
|
+
this.maxPlayers = config.maxPlayers;
|
|
14
|
+
this.gameType = config.gameType;
|
|
15
|
+
this.bet = config.bet;
|
|
16
|
+
this.turnTimeout = config.turnTimeout;
|
|
17
|
+
this.restartTimeout = config.restartTimeout;
|
|
18
|
+
}
|
|
19
|
+
getId() {
|
|
20
|
+
return this.id;
|
|
21
|
+
}
|
|
22
|
+
getRoomType() {
|
|
23
|
+
return this.roomType;
|
|
24
|
+
}
|
|
25
|
+
getGameType() {
|
|
26
|
+
return this.roomType;
|
|
27
|
+
}
|
|
28
|
+
getRulesType() {
|
|
29
|
+
return this.rulesType;
|
|
30
|
+
}
|
|
31
|
+
getMaxPlayers() {
|
|
32
|
+
return this.maxPlayers;
|
|
33
|
+
}
|
|
34
|
+
getTables() {
|
|
35
|
+
return this.tables;
|
|
36
|
+
}
|
|
37
|
+
getFirstTable() {
|
|
38
|
+
return (0, lodash_1.first)(this.getTables());
|
|
39
|
+
}
|
|
40
|
+
getTableWithFreeSeats() {
|
|
41
|
+
return this.tables.find((table) => table.getPlayers().length + table.getQueue().length < table.getTableSize());
|
|
42
|
+
}
|
|
43
|
+
remainOneTable() {
|
|
44
|
+
return this.tables.length === 1;
|
|
45
|
+
}
|
|
46
|
+
getTableById(id) {
|
|
47
|
+
return this.tables.find((item) => item.getId() === id);
|
|
48
|
+
}
|
|
49
|
+
getFreeTableNumber() {
|
|
50
|
+
return this.createdTableCount + 1;
|
|
51
|
+
}
|
|
52
|
+
getCreatedTableCount() {
|
|
53
|
+
return this.createdTableCount;
|
|
54
|
+
}
|
|
55
|
+
addTable(newTable) {
|
|
56
|
+
this.tables.push(newTable);
|
|
57
|
+
this.createdTableCount += 1;
|
|
58
|
+
}
|
|
59
|
+
removeTable(removingTable) {
|
|
60
|
+
(0, lodash_2.remove)(this.tables, (table) => table.getId() === removingTable.getId());
|
|
61
|
+
}
|
|
62
|
+
getBet() {
|
|
63
|
+
return this.bet;
|
|
64
|
+
}
|
|
65
|
+
getConfigForTable() {
|
|
66
|
+
return {
|
|
67
|
+
roomId: this.getId(),
|
|
68
|
+
number: this.getFreeTableNumber(),
|
|
69
|
+
tableSize: this.getMaxPlayers(),
|
|
70
|
+
bet: this.getBet(),
|
|
71
|
+
turnTimeout: this.turnTimeout,
|
|
72
|
+
restartTimeout: this.restartTimeout,
|
|
73
|
+
onRoomFinishRound: this.handleFinishRound,
|
|
74
|
+
onRoomRestartRound: this.handleRestartRound,
|
|
75
|
+
rulesType: this.getRulesType(),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.GameRoom = GameRoom;
|
|
80
|
+
//# sourceMappingURL=game-room.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-room.js","sourceRoot":"","sources":["../../src/base/game-room.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type GameRoundHistoryItem = {
|
|
2
|
+
userId: string;
|
|
3
|
+
fullName: string;
|
|
4
|
+
date: Date;
|
|
5
|
+
action: string;
|
|
6
|
+
state: string;
|
|
7
|
+
};
|
|
8
|
+
export interface IGameRound<GP> {
|
|
9
|
+
getActivePlayer(): GP;
|
|
10
|
+
setActivePlayer(activePlayer: GP): any;
|
|
11
|
+
}
|
|
12
|
+
export declare abstract class GameRound<SM, GP> implements IGameRound<GP> {
|
|
13
|
+
private readonly history;
|
|
14
|
+
private id;
|
|
15
|
+
private pot;
|
|
16
|
+
private state;
|
|
17
|
+
private activePlayer;
|
|
18
|
+
protected constructor();
|
|
19
|
+
getState(): SM;
|
|
20
|
+
setState(state: SM): void;
|
|
21
|
+
getHistory(): Array<GameRoundHistoryItem>;
|
|
22
|
+
addToHistory(item: GameRoundHistoryItem): void;
|
|
23
|
+
addToPot(amount: number): void;
|
|
24
|
+
getPot(): number;
|
|
25
|
+
getActivePlayer(): GP;
|
|
26
|
+
setActivePlayer(activePlayer: GP): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=game-round.d.ts.map
|