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.
Files changed (257) hide show
  1. package/dist/base/game-control-player-turn.d.ts +12 -0
  2. package/dist/base/game-control-player-turn.d.ts.map +1 -0
  3. package/dist/base/game-control-player-turn.js +27 -0
  4. package/dist/base/game-control-player-turn.js.map +1 -0
  5. package/dist/base/game-control-restart.d.ts +10 -0
  6. package/dist/base/game-control-restart.d.ts.map +1 -0
  7. package/dist/base/game-control-restart.js +21 -0
  8. package/dist/base/game-control-restart.js.map +1 -0
  9. package/dist/base/game-master.d.ts +34 -0
  10. package/dist/base/game-master.d.ts.map +1 -0
  11. package/dist/base/game-master.js +83 -0
  12. package/dist/base/game-master.js.map +1 -0
  13. package/dist/base/game-player-move.d.ts +13 -0
  14. package/dist/base/game-player-move.d.ts.map +1 -0
  15. package/dist/base/game-player-move.js +28 -0
  16. package/dist/base/game-player-move.js.map +1 -0
  17. package/dist/base/game-player.d.ts +61 -0
  18. package/dist/base/game-player.d.ts.map +1 -0
  19. package/dist/base/game-player.js +140 -0
  20. package/dist/base/game-player.js.map +1 -0
  21. package/dist/base/game-room.d.ts +47 -0
  22. package/dist/base/game-room.d.ts.map +1 -0
  23. package/dist/base/game-room.js +80 -0
  24. package/dist/base/game-room.js.map +1 -0
  25. package/dist/base/game-round.d.ts +28 -0
  26. package/dist/base/game-round.d.ts.map +1 -0
  27. package/dist/base/game-round.js +37 -0
  28. package/dist/base/game-round.js.map +1 -0
  29. package/dist/base/game-state-machine.d.ts +13 -0
  30. package/dist/base/game-state-machine.d.ts.map +1 -0
  31. package/dist/base/game-state-machine.js +21 -0
  32. package/dist/base/game-state-machine.js.map +1 -0
  33. package/dist/base/game-table-seat.d.ts +15 -0
  34. package/dist/base/game-table-seat.d.ts.map +1 -0
  35. package/dist/base/game-table-seat.js +32 -0
  36. package/dist/base/game-table-seat.js.map +1 -0
  37. package/dist/base/game-table-seats.d.ts +21 -0
  38. package/dist/base/game-table-seats.d.ts.map +1 -0
  39. package/dist/base/game-table-seats.js +67 -0
  40. package/dist/base/game-table-seats.js.map +1 -0
  41. package/dist/base/game-table.d.ts +87 -0
  42. package/dist/base/game-table.d.ts.map +1 -0
  43. package/dist/base/game-table.js +130 -0
  44. package/dist/base/game-table.js.map +1 -0
  45. package/dist/base/index.d.ts +13 -0
  46. package/dist/base/index.d.ts.map +1 -0
  47. package/dist/base/index.js +26 -0
  48. package/dist/base/index.js.map +1 -0
  49. package/dist/base/standard-game-state.d.ts +20 -0
  50. package/dist/base/standard-game-state.d.ts.map +1 -0
  51. package/dist/base/standard-game-state.js +57 -0
  52. package/dist/base/standard-game-state.js.map +1 -0
  53. package/dist/base-rooms/fast-tournament-room.d.ts +14 -0
  54. package/dist/base-rooms/fast-tournament-room.d.ts.map +1 -0
  55. package/dist/base-rooms/fast-tournament-room.js +53 -0
  56. package/dist/base-rooms/fast-tournament-room.js.map +1 -0
  57. package/dist/base-rooms/index.d.ts +10 -0
  58. package/dist/base-rooms/index.d.ts.map +1 -0
  59. package/dist/base-rooms/index.js +14 -0
  60. package/dist/base-rooms/index.js.map +1 -0
  61. package/dist/base-rooms/scheduled-tournament-room.d.ts +28 -0
  62. package/dist/base-rooms/scheduled-tournament-room.d.ts.map +1 -0
  63. package/dist/base-rooms/scheduled-tournament-room.js +166 -0
  64. package/dist/base-rooms/scheduled-tournament-room.js.map +1 -0
  65. package/dist/base-rooms/simple-room.d.ts +9 -0
  66. package/dist/base-rooms/simple-room.d.ts.map +1 -0
  67. package/dist/base-rooms/simple-room.js +13 -0
  68. package/dist/base-rooms/simple-room.js.map +1 -0
  69. package/dist/base-rooms/tournament-participant.d.ts +6 -0
  70. package/dist/base-rooms/tournament-participant.d.ts.map +1 -0
  71. package/dist/base-rooms/tournament-participant.js +3 -0
  72. package/dist/base-rooms/tournament-participant.js.map +1 -0
  73. package/dist/base-rooms/tournament-prize.d.ts +7 -0
  74. package/dist/base-rooms/tournament-prize.d.ts.map +1 -0
  75. package/dist/base-rooms/tournament-prize.js +3 -0
  76. package/dist/base-rooms/tournament-prize.js.map +1 -0
  77. package/dist/base-rooms/tournament-room.d.ts +47 -0
  78. package/dist/base-rooms/tournament-room.d.ts.map +1 -0
  79. package/dist/base-rooms/tournament-room.js +111 -0
  80. package/dist/base-rooms/tournament-room.js.map +1 -0
  81. package/dist/base-rooms/tournament-state.d.ts +23 -0
  82. package/dist/base-rooms/tournament-state.d.ts.map +1 -0
  83. package/dist/base-rooms/tournament-state.js +63 -0
  84. package/dist/base-rooms/tournament-state.js.map +1 -0
  85. package/dist/base-rooms/tournament-winner.d.ts +8 -0
  86. package/dist/base-rooms/tournament-winner.d.ts.map +1 -0
  87. package/dist/base-rooms/tournament-winner.js +3 -0
  88. package/dist/base-rooms/tournament-winner.js.map +1 -0
  89. package/dist/board-game/base/board-cell.d.ts +16 -0
  90. package/dist/board-game/base/board-cell.d.ts.map +1 -0
  91. package/dist/board-game/base/board-cell.js +42 -0
  92. package/dist/board-game/base/board-cell.js.map +1 -0
  93. package/dist/board-game/base/board-figure.d.ts +16 -0
  94. package/dist/board-game/base/board-figure.d.ts.map +1 -0
  95. package/dist/board-game/base/board-figure.js +38 -0
  96. package/dist/board-game/base/board-figure.js.map +1 -0
  97. package/dist/board-game/base/board-game-master.d.ts +19 -0
  98. package/dist/board-game/base/board-game-master.d.ts.map +1 -0
  99. package/dist/board-game/base/board-game-master.js +36 -0
  100. package/dist/board-game/base/board-game-master.js.map +1 -0
  101. package/dist/board-game/base/board-player-move.d.ts +11 -0
  102. package/dist/board-game/base/board-player-move.d.ts.map +1 -0
  103. package/dist/board-game/base/board-player-move.js +30 -0
  104. package/dist/board-game/base/board-player-move.js.map +1 -0
  105. package/dist/board-game/base/board-player.d.ts +13 -0
  106. package/dist/board-game/base/board-player.d.ts.map +1 -0
  107. package/dist/board-game/base/board-player.js +31 -0
  108. package/dist/board-game/base/board-player.js.map +1 -0
  109. package/dist/board-game/base/board-table.d.ts +17 -0
  110. package/dist/board-game/base/board-table.d.ts.map +1 -0
  111. package/dist/board-game/base/board-table.js +35 -0
  112. package/dist/board-game/base/board-table.js.map +1 -0
  113. package/dist/board-game/d1-board-game/d1-board-table.d.ts +19 -0
  114. package/dist/board-game/d1-board-game/d1-board-table.d.ts.map +1 -0
  115. package/dist/board-game/d1-board-game/d1-board-table.js +41 -0
  116. package/dist/board-game/d1-board-game/d1-board-table.js.map +1 -0
  117. package/dist/board-game/d2-board-game/d2-board-cell.d.ts +12 -0
  118. package/dist/board-game/d2-board-game/d2-board-cell.d.ts.map +1 -0
  119. package/dist/board-game/d2-board-game/d2-board-cell.js +26 -0
  120. package/dist/board-game/d2-board-game/d2-board-cell.js.map +1 -0
  121. package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts +29 -0
  122. package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts.map +1 -0
  123. package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js +51 -0
  124. package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js.map +1 -0
  125. package/dist/board-game/d2-board-game/d2-board-table.d.ts +49 -0
  126. package/dist/board-game/d2-board-game/d2-board-table.d.ts.map +1 -0
  127. package/dist/board-game/d2-board-game/d2-board-table.js +184 -0
  128. package/dist/board-game/d2-board-game/d2-board-table.js.map +1 -0
  129. package/dist/board-game/d2-board-game/types.d.ts +5 -0
  130. package/dist/board-game/d2-board-game/types.d.ts.map +1 -0
  131. package/dist/board-game/d2-board-game/types.js +3 -0
  132. package/dist/board-game/d2-board-game/types.js.map +1 -0
  133. package/dist/board-game/dice.d.ts +5 -0
  134. package/dist/board-game/dice.d.ts.map +1 -0
  135. package/dist/board-game/dice.js +14 -0
  136. package/dist/board-game/dice.js.map +1 -0
  137. package/dist/board-game/index.d.ts +13 -0
  138. package/dist/board-game/index.d.ts.map +1 -0
  139. package/dist/board-game/index.js +26 -0
  140. package/dist/board-game/index.js.map +1 -0
  141. package/dist/cards-game/cards/card.d.ts +25 -0
  142. package/dist/cards-game/cards/card.d.ts.map +1 -0
  143. package/dist/cards-game/cards/card.js +45 -0
  144. package/dist/cards-game/cards/card.js.map +1 -0
  145. package/dist/cards-game/cards/cards.d.ts +55 -0
  146. package/dist/cards-game/cards/cards.d.ts.map +1 -0
  147. package/dist/cards-game/cards/cards.js +63 -0
  148. package/dist/cards-game/cards/cards.js.map +1 -0
  149. package/dist/cards-game/cards/deck36.d.ts +2 -0
  150. package/dist/cards-game/cards/deck36.d.ts.map +1 -0
  151. package/dist/cards-game/cards/deck36.js +43 -0
  152. package/dist/cards-game/cards/deck36.js.map +1 -0
  153. package/dist/cards-game/cards/deck52.d.ts +2 -0
  154. package/dist/cards-game/cards/deck52.d.ts.map +1 -0
  155. package/dist/cards-game/cards/deck52.js +59 -0
  156. package/dist/cards-game/cards/deck52.js.map +1 -0
  157. package/dist/cards-game/cards/ranks.d.ts +18 -0
  158. package/dist/cards-game/cards/ranks.d.ts.map +1 -0
  159. package/dist/cards-game/cards/ranks.js +23 -0
  160. package/dist/cards-game/cards/ranks.js.map +1 -0
  161. package/dist/cards-game/cards/suits.d.ts +8 -0
  162. package/dist/cards-game/cards/suits.d.ts.map +1 -0
  163. package/dist/cards-game/cards/suits.js +13 -0
  164. package/dist/cards-game/cards/suits.js.map +1 -0
  165. package/dist/cards-game/cards-game-master.d.ts +24 -0
  166. package/dist/cards-game/cards-game-master.d.ts.map +1 -0
  167. package/dist/cards-game/cards-game-master.js +65 -0
  168. package/dist/cards-game/cards-game-master.js.map +1 -0
  169. package/dist/cards-game/cards-player.d.ts +12 -0
  170. package/dist/cards-game/cards-player.d.ts.map +1 -0
  171. package/dist/cards-game/cards-player.js +29 -0
  172. package/dist/cards-game/cards-player.js.map +1 -0
  173. package/dist/cards-game/cards-table.d.ts +11 -0
  174. package/dist/cards-game/cards-table.d.ts.map +1 -0
  175. package/dist/cards-game/cards-table.js +20 -0
  176. package/dist/cards-game/cards-table.js.map +1 -0
  177. package/dist/cards-game/index.d.ts +11 -0
  178. package/dist/cards-game/index.d.ts.map +1 -0
  179. package/dist/cards-game/index.js +55 -0
  180. package/dist/cards-game/index.js.map +1 -0
  181. package/dist/const.d.ts +3 -0
  182. package/dist/const.d.ts.map +1 -0
  183. package/dist/const.js +6 -0
  184. package/dist/const.js.map +1 -0
  185. package/dist/index.d.ts +6 -0
  186. package/dist/index.d.ts.map +1 -0
  187. package/dist/index.js +22 -0
  188. package/dist/index.js.map +1 -0
  189. package/dist/utils/circle-list.d.ts +29 -0
  190. package/dist/utils/circle-list.d.ts.map +1 -0
  191. package/dist/utils/circle-list.js +103 -0
  192. package/dist/utils/circle-list.js.map +1 -0
  193. package/dist/utils/index.d.ts +4 -0
  194. package/dist/utils/index.d.ts.map +1 -0
  195. package/dist/utils/index.js +9 -0
  196. package/dist/utils/index.js.map +1 -0
  197. package/dist/utils/shuffle.d.ts +3 -0
  198. package/dist/utils/shuffle.d.ts.map +1 -0
  199. package/dist/utils/shuffle.js +16 -0
  200. package/dist/utils/shuffle.js.map +1 -0
  201. package/dist/utils/tests/circle-list.test.d.ts +2 -0
  202. package/dist/utils/tests/circle-list.test.d.ts.map +1 -0
  203. package/dist/utils/tests/circle-list.test.js +60 -0
  204. package/dist/utils/tests/circle-list.test.js.map +1 -0
  205. package/package.json +54 -0
  206. package/readme.md +3 -0
  207. package/src/base/game-control-player-turn.ts +39 -0
  208. package/src/base/game-control-restart.ts +30 -0
  209. package/src/base/game-master.ts +109 -0
  210. package/src/base/game-player-move.ts +33 -0
  211. package/src/base/game-player.ts +184 -0
  212. package/src/base/game-room.ts +127 -0
  213. package/src/base/game-round.ts +62 -0
  214. package/src/base/game-state-machine.ts +25 -0
  215. package/src/base/game-table-seat.ts +37 -0
  216. package/src/base/game-table-seats.ts +78 -0
  217. package/src/base/game-table.ts +237 -0
  218. package/src/base/index.ts +25 -0
  219. package/src/base/standard-game-state.ts +69 -0
  220. package/src/base-rooms/fast-tournament-room.ts +59 -0
  221. package/src/base-rooms/index.ts +19 -0
  222. package/src/base-rooms/scheduled-tournament-room.ts +181 -0
  223. package/src/base-rooms/simple-room.ts +15 -0
  224. package/src/base-rooms/tournament-participant.ts +5 -0
  225. package/src/base-rooms/tournament-prize.ts +7 -0
  226. package/src/base-rooms/tournament-room.ts +169 -0
  227. package/src/base-rooms/tournament-state.ts +78 -0
  228. package/src/base-rooms/tournament-winner.ts +7 -0
  229. package/src/board-game/base/board-cell.ts +50 -0
  230. package/src/board-game/base/board-figure.ts +49 -0
  231. package/src/board-game/base/board-game-master.ts +56 -0
  232. package/src/board-game/base/board-player-move.ts +29 -0
  233. package/src/board-game/base/board-player.ts +43 -0
  234. package/src/board-game/base/board-table.ts +52 -0
  235. package/src/board-game/d1-board-game/d1-board-table.ts +56 -0
  236. package/src/board-game/d2-board-game/d2-board-cell.ts +30 -0
  237. package/src/board-game/d2-board-game/d2-board-pattern-move-figure.ts +79 -0
  238. package/src/board-game/d2-board-game/d2-board-table.ts +262 -0
  239. package/src/board-game/d2-board-game/types.ts +4 -0
  240. package/src/board-game/dice.ts +9 -0
  241. package/src/board-game/index.ts +28 -0
  242. package/src/cards-game/cards/card.ts +60 -0
  243. package/src/cards-game/cards/cards.ts +86 -0
  244. package/src/cards-game/cards/deck36.ts +80 -0
  245. package/src/cards-game/cards/deck52.ts +112 -0
  246. package/src/cards-game/cards/ranks.ts +19 -0
  247. package/src/cards-game/cards/suits.ts +10 -0
  248. package/src/cards-game/cards-game-master.ts +83 -0
  249. package/src/cards-game/cards-player.ts +40 -0
  250. package/src/cards-game/cards-table.ts +28 -0
  251. package/src/cards-game/index.ts +21 -0
  252. package/src/const.ts +3 -0
  253. package/src/index.ts +5 -0
  254. package/src/utils/circle-list.ts +130 -0
  255. package/src/utils/index.ts +8 -0
  256. package/src/utils/shuffle.ts +12 -0
  257. 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":";;;AAEA,yEAAmE;AACnE,iEAA4D;AAG5D,MAAsB,UAAU;IAM5B,YAAuB,KAAS;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,gDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,GAAG,IAAI,yCAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC9G,CAAC;IAkBD,YAAY,CAAE,SAAa;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,aAAa,CAAE,MAAU;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED,YAAY,CAAE,MAAU;QACpB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,aAAa,CAAE,MAAU;QACrB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc;;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,IAAI,WAAW,EAAE,CAAC;YACd,MAAA,IAAI,CAAC,SAAS,0CAAE,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED,qBAAqB;;QACjB,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,eAAe,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,EAAE,mCAAI,CAAC,CAAC,CAAC;QAE3F,IAAI,UAAU,EAAE,CAAC;YACb,MAAA,IAAI,CAAC,SAAS,0CAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,4BAA4B;;QACxB,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,eAAe,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,EAAE,mCAAI,CAAC,CAAC,CAAC;QAE3F,IAAI,UAAU,EAAE,CAAC;YACb,MAAA,IAAI,CAAC,SAAS,0CAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,eAAe;;QACX,OAAO,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,aAAa;;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAA,MAAA,IAAI,CAAC,eAAe,EAAE,0CAAE,aAAa,EAAE,mCAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,sBAAsB;;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAA,MAAA,IAAI,CAAC,aAAa,EAAE,0CAAE,aAAa,EAAE,mCAAI,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,mBAAmB,CAAE,IAAY;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;CACJ;AAtGD,gCAsGC"}
@@ -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