jp.ms.common.modules 1.0.24 → 1.0.26

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 (120) hide show
  1. package/dist/adapter/base-table-game-state-adapter.d.ts +3 -1
  2. package/dist/adapter/base-table-game-state-adapter.js +11 -0
  3. package/dist/adapter/base-table-game-state-adapter.js.map +1 -1
  4. package/dist/adapter/card-table-game-state-adapter.d.ts +4 -2
  5. package/dist/adapter/card-table-game-state-adapter.js +15 -4
  6. package/dist/adapter/card-table-game-state-adapter.js.map +1 -1
  7. package/dist/config/cert.js +35 -2
  8. package/dist/config/cert.js.map +1 -1
  9. package/dist/config/cors.js +34 -1
  10. package/dist/config/cors.js.map +1 -1
  11. package/dist/dto/common/find-free-table.dto.d.ts +3 -0
  12. package/dist/dto/common/find-free-table.dto.js +8 -0
  13. package/dist/dto/common/find-free-table.dto.js.map +1 -0
  14. package/dist/dto/common/index.d.ts +1 -0
  15. package/dist/dto/common/index.js +3 -1
  16. package/dist/dto/common/index.js.map +1 -1
  17. package/dist/dto/table-game/base/base-table-game-state.dto.d.ts +3 -0
  18. package/dist/dto/table-game/base/base-table-game-state.dto.js +19 -0
  19. package/dist/dto/table-game/base/base-table-game-state.dto.js.map +1 -1
  20. package/dist/dto/table-game/cards/cards-panel.dto.d.ts +2 -1
  21. package/dist/dto/table-game/cards/cards-panel.dto.js +14 -3
  22. package/dist/dto/table-game/cards/cards-panel.dto.js.map +1 -1
  23. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +4 -1
  24. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
  25. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +2 -2
  26. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
  27. package/dist/modules/base-achievements/base-achievements.module.d.ts +1 -1
  28. package/dist/modules/base-achievements/base-achievements.module.js +12 -12
  29. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  30. package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.d.ts +1 -1
  31. package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.js.map +1 -1
  32. package/dist/modules/logger/jp-logger.service.js +34 -1
  33. package/dist/modules/logger/jp-logger.service.js.map +1 -1
  34. package/dist/modules/main/main-tables-list-screen.view.js +1 -1
  35. package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
  36. package/dist/modules/main/main.controller.d.ts +2 -2
  37. package/dist/modules/main/main.controller.js +4 -3
  38. package/dist/modules/main/main.controller.js.map +1 -1
  39. package/dist/modules/main/main.module.js +2 -2
  40. package/dist/modules/main/main.module.js.map +1 -1
  41. package/dist/modules/main/main.service.d.ts +2 -2
  42. package/dist/modules/main/main.service.js +11 -5
  43. package/dist/modules/main/main.service.js.map +1 -1
  44. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +1 -1
  45. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  46. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +1 -1
  47. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  48. package/dist/modules/menu/menu-screen.view.d.ts +5 -3
  49. package/dist/modules/menu/menu-screen.view.js +10 -2
  50. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  51. package/dist/modules/menu/menu.module.js +2 -1
  52. package/dist/modules/menu/menu.module.js.map +1 -1
  53. package/dist/modules/menu/menu.service.d.ts +3 -2
  54. package/dist/modules/menu/menu.service.js +8 -4
  55. package/dist/modules/menu/menu.service.js.map +1 -1
  56. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +6 -1
  57. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +52 -3
  58. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js.map +1 -1
  59. package/dist/modules/one-table-tournament/one-table-tournament.controller.d.ts +4 -5
  60. package/dist/modules/one-table-tournament/one-table-tournament.controller.js +8 -9
  61. package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
  62. package/dist/modules/one-table-tournament/one-table-tournament.module.js +2 -2
  63. package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
  64. package/dist/modules/one-table-tournament/one-table-tournament.service.d.ts +6 -7
  65. package/dist/modules/one-table-tournament/one-table-tournament.service.js +10 -17
  66. package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
  67. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +2 -1
  68. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +30 -5
  69. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  70. package/dist/modules/support/dump.service.js +4 -1
  71. package/dist/modules/support/dump.service.js.map +1 -1
  72. package/dist/modules/support/metric.service.js +34 -1
  73. package/dist/modules/support/metric.service.js.map +1 -1
  74. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +33 -10
  75. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js.map +1 -1
  76. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js +21 -5
  77. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js.map +1 -1
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/dist/utils/game-table-result.d.ts +3 -2
  80. package/dist/utils/game-table-result.js +14 -1
  81. package/dist/utils/game-table-result.js.map +1 -1
  82. package/dist/views/index.d.ts +1 -0
  83. package/dist/views/index.js +3 -1
  84. package/dist/views/index.js.map +1 -1
  85. package/dist/views/simple-room-conifrm-exit-dialog.view.d.ts +4 -0
  86. package/dist/views/simple-room-conifrm-exit-dialog.view.js +11 -0
  87. package/dist/views/simple-room-conifrm-exit-dialog.view.js.map +1 -0
  88. package/dist/views/tournament-buy-ticket-dialog.view.d.ts +2 -2
  89. package/dist/views/tournament-buy-ticket-dialog.view.js +1 -1
  90. package/dist/views/tournament-buy-ticket-dialog.view.js.map +1 -1
  91. package/package.json +4 -4
  92. package/src/adapter/base-table-game-state-adapter.ts +23 -5
  93. package/src/adapter/card-table-game-state-adapter.ts +28 -4
  94. package/src/dto/common/find-free-table.dto.ts +3 -0
  95. package/src/dto/common/index.ts +1 -0
  96. package/src/dto/table-game/base/base-table-game-state.dto.ts +16 -0
  97. package/src/dto/table-game/cards/cards-panel.dto.ts +12 -3
  98. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +3 -3
  99. package/src/modules/base-achievements/base-achievements.module.ts +12 -10
  100. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +1 -1
  101. package/src/modules/main/main-tables-list-screen.view.ts +2 -2
  102. package/src/modules/main/main.controller.ts +4 -4
  103. package/src/modules/main/main.module.ts +5 -5
  104. package/src/modules/main/main.service.ts +20 -10
  105. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +1 -1
  106. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +2 -1
  107. package/src/modules/menu/menu-screen.view.ts +33 -11
  108. package/src/modules/menu/menu.module.ts +3 -2
  109. package/src/modules/menu/menu.service.ts +5 -2
  110. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +76 -10
  111. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +8 -8
  112. package/src/modules/one-table-tournament/one-table-tournament.module.ts +2 -2
  113. package/src/modules/one-table-tournament/one-table-tournament.service.ts +20 -28
  114. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +64 -14
  115. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +42 -17
  116. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +37 -15
  117. package/src/utils/game-table-result.ts +18 -3
  118. package/src/views/index.ts +2 -1
  119. package/src/views/simple-room-conifrm-exit-dialog.view.ts +21 -0
  120. package/src/views/tournament-buy-ticket-dialog.view.ts +11 -11
@@ -1,6 +1,6 @@
1
- import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
2
- import { GameResultRepository, TournamentManyTablesRoomsRepository, TournamentOneTableRoomsRepository, UsersRepository } from 'jp.db.schemas';
3
1
  import { Connection } from 'mongoose';
2
+ import { BaseGameEvent, GameMaster, GameTournamentPlayerLeavedTheTournamentEvent, TournamentMaster } from 'jp.ms.common.engine';
3
+ import { GameResultRepository, TournamentManyTablesRoomsRepository, TournamentOneTableRoomsRepository, UsersRepository } from 'jp.db.schemas';
4
4
  export declare function getGameTableResults(master: GameMaster): {
5
5
  gameType: string;
6
6
  gameId: string;
@@ -37,3 +37,4 @@ export declare function getGameTableResults(master: GameMaster): {
37
37
  };
38
38
  export declare function saveGameTablesResult(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository, saveNewBalance: boolean): Promise<void>;
39
39
  export declare function saveTournamentResult(master: TournamentMaster, connection: Connection, tournamentRepository: TournamentManyTablesRoomsRepository | TournamentOneTableRoomsRepository, usersRepository: UsersRepository): Promise<void>;
40
+ export declare function isUpdateTounrmanentRoomEvent(event: BaseGameEvent): GameTournamentPlayerLeavedTheTournamentEvent | null;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGameTableResults = getGameTableResults;
4
4
  exports.saveGameTablesResult = saveGameTablesResult;
5
5
  exports.saveTournamentResult = saveTournamentResult;
6
+ exports.isUpdateTounrmanentRoomEvent = isUpdateTounrmanentRoomEvent;
7
+ const jp_ms_common_engine_1 = require("jp.ms.common.engine");
6
8
  function getGameTableResults(master) {
7
9
  return {
8
10
  gameType: master.getRoom().getGameType(),
@@ -72,7 +74,7 @@ async function saveTournamentResult(master, connection, tournamentRepository, us
72
74
  levelAdding: 0,
73
75
  };
74
76
  });
75
- const session = await this.connection.startSession();
77
+ const session = await connection.startSession();
76
78
  session.startTransaction();
77
79
  try {
78
80
  await usersRepository.saveGameResult(userTournamentResult);
@@ -87,4 +89,15 @@ async function saveTournamentResult(master, connection, tournamentRepository, us
87
89
  await session.endSession();
88
90
  }
89
91
  }
92
+ function isUpdateTounrmanentRoomEvent(event) {
93
+ if (event instanceof jp_ms_common_engine_1.GameTournamentPlayerJoinedTheTournamentEvent &&
94
+ event instanceof jp_ms_common_engine_1.GameTournamentPlayerLeavedTheTournamentEvent &&
95
+ event instanceof jp_ms_common_engine_1.GameTournamentCancelledEvent &&
96
+ event instanceof jp_ms_common_engine_1.GameTournamentWaitedEvent &&
97
+ event instanceof jp_ms_common_engine_1.GameTournamentStartedEvent &&
98
+ event instanceof jp_ms_common_engine_1.GameTournamentFinishedEvent) {
99
+ return event;
100
+ }
101
+ return null;
102
+ }
90
103
  //# sourceMappingURL=game-table-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export { TournamentBuyTicketDialogView } from './tournament-buy-ticket-dialog.view';
2
+ export { SimpleRoomConfirmExitDialogView } from './simple-room-conifrm-exit-dialog.view';
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TournamentBuyTicketDialogView = void 0;
3
+ exports.SimpleRoomConfirmExitDialogView = exports.TournamentBuyTicketDialogView = void 0;
4
4
  var tournament_buy_ticket_dialog_view_1 = require("./tournament-buy-ticket-dialog.view");
5
5
  Object.defineProperty(exports, "TournamentBuyTicketDialogView", { enumerable: true, get: function () { return tournament_buy_ticket_dialog_view_1.TournamentBuyTicketDialogView; } });
6
+ var simple_room_conifrm_exit_dialog_view_1 = require("./simple-room-conifrm-exit-dialog.view");
7
+ Object.defineProperty(exports, "SimpleRoomConfirmExitDialogView", { enumerable: true, get: function () { return simple_room_conifrm_exit_dialog_view_1.SimpleRoomConfirmExitDialogView; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AAA3E,kJAAA,6BAA6B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AAA3E,kJAAA,6BAA6B,OAAA;AACtC,+FAAyF;AAAhF,uJAAA,+BAA+B,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { UniversalScreenDialogView, StandardDialogComponent } from "jp.common.models";
2
+ export declare class SimpleRoomConfirmExitDialogView extends UniversalScreenDialogView {
3
+ build(): StandardDialogComponent;
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleRoomConfirmExitDialogView = void 0;
4
+ const jp_common_models_1 = require("jp.common.models");
5
+ class SimpleRoomConfirmExitDialogView extends jp_common_models_1.UniversalScreenDialogView {
6
+ build() {
7
+ return new jp_common_models_1.StandardDialogComponent(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_SIMPLE_ROOM_CONFIRM_EXIT, this.localeService.t('common.room.screen.dialog.confirm.exit.game.title', { lang: this.lang }), this.localeService.t('common.room.screen.dialog.confirm.exit.game.message', { lang: this.lang }), new jp_common_models_1.FullButtonsButtonsComponent(new jp_common_models_1.TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.ok', { lang: this.lang })), new jp_common_models_1.TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.cancel', { lang: this.lang }))));
8
+ }
9
+ }
10
+ exports.SimpleRoomConfirmExitDialogView = SimpleRoomConfirmExitDialogView;
11
+ //# sourceMappingURL=simple-room-conifrm-exit-dialog.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-room-conifrm-exit-dialog.view.js","sourceRoot":"","sources":["../../src/views/simple-room-conifrm-exit-dialog.view.ts"],"names":[],"mappings":";;;AAAA,uDAM0B;AAE1B,MAAa,+BAAgC,SAAQ,4CAAyB;IAC1E,KAAK;QACD,OAAO,IAAI,0CAAuB,CAC9B,wCAAqB,CAAC,+BAA+B,EACrD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAC9F,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qDAAqD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAChG,IAAI,8CAA2B,CAC3B,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gDAAgD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EACpH,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oDAAoD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3H,CACJ,CAAC;IACN,CAAC;CACJ;AAZD,0EAYC"}
@@ -1,4 +1,4 @@
1
- import { UniversalScreenDialogView, AppScreenDialog } from "jp.common.models";
1
+ import { UniversalScreenDialogView, StandardDialogComponent } from "jp.common.models";
2
2
  export declare class TournamentBuyTicketDialogView extends UniversalScreenDialogView {
3
- build(): AppScreenDialog;
3
+ build(): StandardDialogComponent;
4
4
  }
@@ -4,7 +4,7 @@ exports.TournamentBuyTicketDialogView = void 0;
4
4
  const jp_common_models_1 = require("jp.common.models");
5
5
  class TournamentBuyTicketDialogView extends jp_common_models_1.UniversalScreenDialogView {
6
6
  build() {
7
- return jp_common_models_1.AppScreenDialog.CreateStandardDialog(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_TOURNAMENT_BUY_TICKET, this.localeService.t('common.rooms.screen.buyTicket.title', { lang: this.lang }), this.localeService.t('common.rooms.screen.buyTicket.description', { lang: this.lang }), jp_common_models_1.AppScreenSectionButtons.CreateFullButtonSection(jp_common_models_1.AppScreenSectionButton.CreateTextButton('Ok'), jp_common_models_1.AppScreenSectionButton.CreateTextButton('Cancel')));
7
+ return new jp_common_models_1.StandardDialogComponent(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_TOURNAMENT_BUY_TICKET, this.localeService.t('common.rooms.screen.buyTicket.title', { lang: this.lang }), this.localeService.t('common.rooms.screen.buyTicket.description', { lang: this.lang }), new jp_common_models_1.FullButtonsButtonsComponent(new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.buyTicket.button.ok', { lang: this.lang })), new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.buyTicket.button.cancel', { lang: this.lang }))));
8
8
  }
9
9
  }
10
10
  exports.TournamentBuyTicketDialogView = TournamentBuyTicketDialogView;
@@ -1 +1 @@
1
- {"version":3,"file":"tournament-buy-ticket-dialog.view.js","sourceRoot":"","sources":["../../src/views/tournament-buy-ticket-dialog.view.ts"],"names":[],"mappings":";;;AAAA,uDAM2B;AAE3B,MAAa,6BAA8B,SAAQ,4CAAyB;IACxE,KAAK;QACD,OAAO,kCAAe,CAAC,oBAAoB,CACvC,wCAAqB,CAAC,4BAA4B,EAClD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAChF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,2CAA2C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACtF,0CAAuB,CAAC,uBAAuB,CAC3C,yCAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC7C,yCAAsB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACpD,CACJ,CAAC;IACN,CAAC;CACJ;AAZD,sEAYC"}
1
+ {"version":3,"file":"tournament-buy-ticket-dialog.view.js","sourceRoot":"","sources":["../../src/views/tournament-buy-ticket-dialog.view.ts"],"names":[],"mappings":";;;AAAA,uDAM0B;AAE1B,MAAa,6BAA8B,SAAQ,4CAAyB;IACxE,KAAK;QACD,OAAO,IAAI,0CAAuB,CAC9B,wCAAqB,CAAC,4BAA4B,EAClD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAChF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,2CAA2C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACtF,IAAI,8CAA2B,CAC3B,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yCAAyC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7G,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACpH,CACJ,CAAC;IACN,CAAC;CACJ;AAZD,sEAYC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jp.ms.common.modules",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "@nestjs/mongoose": "11.0.4",
14
14
  "@nestjs/websockets": "11.1.9",
15
15
  "dayjs": "1.11.18",
16
- "jp.common.models": "1.1.6",
16
+ "jp.common.models": "1.1.12",
17
17
  "jp.common.utils": "1.0.4",
18
- "jp.db.schemas": "2.2.2",
19
- "jp.ms.common.engine": "3.0.8",
18
+ "jp.db.schemas": "2.2.3",
19
+ "jp.ms.common.modules": "1.0.25",
20
20
  "mongoose": "9.1.5",
21
21
  "nestjs-i18n": "10.5.1",
22
22
  "node-schedule": "2.1.1",
@@ -12,15 +12,18 @@ import {
12
12
  BaseTableGameStateSummary,
13
13
  BaseTableGameSummaryItem,
14
14
  BaseTableGameStateMovesPanel,
15
+ IAppScreenDialog,
15
16
  } from 'jp.common.models';
16
17
  import { GameMaster, GamePlayer } from 'jp.ms.common.engine';
17
- import { formatChips, getPropsFromObject } from 'jp.common.utils';
18
+ import { formatChips, getPropsFromObject, replacePattern } from 'jp.common.utils';
19
+
20
+ import { SimpleRoomConfirmExitDialogView } from '../views'
18
21
 
19
22
  export abstract class BaseTableGameStateAdapter {
20
23
  private readonly _master: GameMaster;
21
24
  private readonly _currentPlayer: GamePlayer;
22
25
 
23
- constructor (master: GameMaster, currentPlayer: GamePlayer) {
26
+ constructor(master: GameMaster, currentPlayer: GamePlayer) {
24
27
  this._master = master;
25
28
  this._currentPlayer = currentPlayer;
26
29
  }
@@ -53,6 +56,10 @@ export abstract class BaseTableGameStateAdapter {
53
56
  return this._master.getRoom().getId();
54
57
  }
55
58
 
59
+ getTableTitle (): string {
60
+ return this._master.getTable().getTitleWithNumber(this.lang);
61
+ }
62
+
56
63
  getTableId (): string {
57
64
  return this._master.getTable().getId();
58
65
  }
@@ -199,9 +206,9 @@ export abstract class BaseTableGameStateAdapter {
199
206
  summary.list.push(BaseTableGameSummaryItem.newTitleMdItem(
200
207
  'pot',
201
208
  this.t('room.screen.summary.pot', {
202
- lang: this.lang,
203
- args: { POT: formatChips(this.getMaster()?.getGameRound()?.getPot() ?? 0, this.lang, true) },
204
- },
209
+ lang: this.lang,
210
+ args: { POT: formatChips(this.getMaster()?.getGameRound()?.getPot() ?? 0, this.lang, true) },
211
+ },
205
212
  ),
206
213
  ));
207
214
 
@@ -237,6 +244,15 @@ export abstract class BaseTableGameStateAdapter {
237
244
  return summary;
238
245
  }
239
246
 
247
+ getConfirmExitDialog (): IAppScreenDialog | undefined {
248
+ if (this._currentPlayer.isPlayer()) {
249
+ return new SimpleRoomConfirmExitDialogView(
250
+ this._master.getRoom().getLocaleService(),
251
+ this.lang
252
+ ).build();
253
+ }
254
+ }
255
+
240
256
  getState (): IBaseTableGameState {
241
257
  return {
242
258
  roomId: this.getRoomId(),
@@ -249,6 +265,8 @@ export abstract class BaseTableGameStateAdapter {
249
265
  summary: this.getSummary(),
250
266
  movesPanel: this.getMovesPanel(),
251
267
  extraButtons: this.getExtraButtons(),
268
+ tableTitle: this.getTableTitle(),
269
+ confirmExitDialog: this.getConfirmExitDialog(),
252
270
  }
253
271
  }
254
272
  }
@@ -3,6 +3,8 @@ import {
3
3
  ICardPlayerState,
4
4
  CardsPanelState,
5
5
  ICardsPanelState,
6
+ ICardPairSlotState,
7
+ CardPairSlotState,
6
8
  } from 'jp.common.models';
7
9
  import { CardsGameMaster, CardsPlayer } from 'jp.ms.common.engine';
8
10
 
@@ -28,8 +30,16 @@ export abstract class CardTableGameStateAdapter extends BaseTableGameStateAdapte
28
30
  return false;
29
31
  }
30
32
 
31
- getCardsPanelBackdropVisible (): boolean {
32
- return false;
33
+ getCardsPanelEnableDragging (): boolean {
34
+ return this.getCurrentPlayer().isActivePlayer();
35
+ }
36
+
37
+ getCardsPanelDescription (): string {
38
+ if (this.getCurrentPlayer().isActivePlayer()) {
39
+ return this.t('room.screen.yours.player.turn.timeout', { lang: this.lang });
40
+ }
41
+
42
+ return '';
33
43
  }
34
44
 
35
45
  getCardsPanel (): ICardsPanelState {
@@ -37,17 +47,31 @@ export abstract class CardTableGameStateAdapter extends BaseTableGameStateAdapte
37
47
  this.getCardsPanelIsOpen(),
38
48
  this.getPlayerActions(),
39
49
  this.getPlayerCards(),
40
- this.getCardsPanelBackdropVisible(),
50
+ this.getCardsPanelEnableDragging(),
51
+ this.getCardsPanelDescription(),
41
52
  );
42
53
  }
43
54
 
55
+ getSlots (): Array<ICardPairSlotState> {
56
+ const slots = this.getMaster<CardsGameMaster>().getGameCardPairSlots().getSlots()
57
+ .map((item) => new CardPairSlotState(
58
+ item.id,
59
+ item.bottom,
60
+ item.top,
61
+ item.activated,
62
+ this.getCurrentPlayer().isActivePlayer() ? item.disabled : true,
63
+ ));
64
+
65
+ return slots;
66
+ }
67
+
44
68
  getState (): ICardTableGameState {
45
69
  return {
46
70
  ...super.getState(),
47
71
  players: this.getPlayers(),
48
72
  baseCard: this.getMaster<CardsGameMaster>().getGameBaseCard(),
49
73
  gameCards: this.getMaster<CardsGameMaster>().getGameCards(),
50
- gameCardsPair: this.getMaster<CardsGameMaster>().getGameCardPairSlots().getSlots(),
74
+ gameCardsPair: this.getSlots(),
51
75
  cardsPanel: this.getCardsPanel(),
52
76
  };
53
77
  }
@@ -0,0 +1,3 @@
1
+ import { PlayerCheckStateDto } from './player-check-state.dto';
2
+
3
+ export class FindFreeTableDto extends PlayerCheckStateDto { }
@@ -1 +1,2 @@
1
1
  export { PlayerCheckStateDto } from './player-check-state.dto';
2
+ export { FindFreeTableDto } from './find-free-table.dto';
@@ -3,6 +3,8 @@ import { IsNumber, IsString, ValidateNested } from 'class-validator';
3
3
  import { IBaseTableGameState } from 'jp.common.models';
4
4
  import { ApiProperty } from '@nestjs/swagger';
5
5
 
6
+ import { AppScreenDialogDto } from '../../app-screen/app-screen-dialog.dto';
7
+
6
8
  import { BaseTableSummaryDto } from './base-table-summary.dto';
7
9
  import { BaseTableMovesPanelDto } from './base-table-moves-panel.dto';
8
10
 
@@ -76,4 +78,18 @@ export class BaseTableGameStateDto implements IBaseTableGameState {
76
78
  @Type(() => BaseTableMovesPanelDto)
77
79
  @Expose()
78
80
  movesPanel: BaseTableMovesPanelDto;
81
+
82
+ @ApiProperty({
83
+ description: 'Table title',
84
+ required: true,
85
+ type: String,
86
+ })
87
+ @Expose()
88
+ @IsString()
89
+ tableTitle: string;
90
+
91
+ @ValidateNested()
92
+ @Type(() => AppScreenDialogDto)
93
+ @Expose()
94
+ confirmExitDialog?: AppScreenDialogDto;
79
95
  }
@@ -1,5 +1,5 @@
1
1
  import { Expose, Type } from 'class-transformer';
2
- import { IsArray, IsBoolean, ValidateNested } from 'class-validator';
2
+ import { IsArray, IsBoolean, IsString, ValidateNested } from 'class-validator';
3
3
  import { ICardsPanelState } from 'jp.common.models';
4
4
  import { ApiProperty } from '@nestjs/swagger';
5
5
 
@@ -18,13 +18,13 @@ export class CardsPanelDto implements ICardsPanelState {
18
18
  isOpen: boolean;
19
19
 
20
20
  @ApiProperty({
21
- description: 'backdropVisible',
21
+ description: 'enableDragging',
22
22
  required: true,
23
23
  type: Boolean,
24
24
  })
25
25
  @Expose()
26
26
  @IsBoolean()
27
- backdropVisible: boolean;
27
+ enableDragging: boolean;
28
28
 
29
29
  @IsArray()
30
30
  @ValidateNested({ each: true })
@@ -37,4 +37,13 @@ export class CardsPanelDto implements ICardsPanelState {
37
37
  @Type(() => CardDto)
38
38
  @Expose()
39
39
  cards: Array<CardDto>;
40
+
41
+ @ApiProperty({
42
+ description: 'description',
43
+ required: true,
44
+ type: String,
45
+ })
46
+ @Expose()
47
+ @IsString()
48
+ description: string;
40
49
  }
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@nestjs/common';
2
- import { GameRoom, ManyTablesTournamentRoom, OneTableTournamentRoom } from 'jp.ms.common.engine';
2
+ import { GameRoom, ManyTablesTournamentRoom, OneTableTournamentRoom, TournamentMaster } from 'jp.ms.common.engine';
3
3
 
4
4
  import { SimpleRoomsManagerService } from '../simple-rooms-manager/simple-rooms-manager.service';
5
5
  import { TournamentOneTableRoomsManagerService } from '../tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service';
@@ -79,10 +79,10 @@ export class AntiFreezeSystemService {
79
79
  if (item.count === checkCount) {
80
80
  if (item.room instanceof OneTableTournamentRoom) {
81
81
  const room = this.oneTableRoomsManagerService.getRoomByTableId(item.tableId);
82
- room?.getTournamentMaster().cancelTournament();
82
+ room?.getRoomMaster<TournamentMaster>().cancelTournament();
83
83
  } else if (item.room instanceof ManyTablesTournamentRoom) {
84
84
  const room = this.manyTablesRoomsManagerService.getRoomByTableId(item.tableId)
85
- room?.getTournamentMaster().cancelTournament();
85
+ room?.getRoomMaster<TournamentMaster>().cancelTournament();
86
86
  } else {
87
87
  this.simpleRoomsManagerService.getRoomByTableId(item.tableId)?.restartTable(item.tableId);
88
88
  }
@@ -84,6 +84,7 @@ export abstract class BaseAchievementsModule {
84
84
  if (event instanceof UserGotNewLevelAppEvent) {
85
85
  // TODO подумать куда перенести LEVEL UP
86
86
  player.sendMessage(new SnackbarSendToPlayerWsEvent(
87
+ event.game,
87
88
  AppScreenIconEnum.ARROW_UPWARD,
88
89
  'level up',
89
90
  'buttonText'
@@ -91,13 +92,13 @@ export abstract class BaseAchievementsModule {
91
92
 
92
93
  if (this.userHasNoAchievement(usersAchievements, GotLevel3Achievement.code)) {
93
94
  if (new GotLevel3Achievement(event.newLevel).userGotAchievement()) {
94
- this.giveAchievement(allAchievements, GotLevel3Achievement.code, foundUser);
95
+ this.giveAchievement(allAchievements, GotLevel3Achievement.code, foundUser, event.game);
95
96
  }
96
97
  }
97
98
 
98
99
  if (this.userHasNoAchievement(usersAchievements, GotLevel10Achievement.code)) {
99
100
  if (new GotLevel10Achievement(event.newLevel).userGotAchievement()) {
100
- this.giveAchievement(allAchievements, GotLevel10Achievement.code, foundUser);
101
+ this.giveAchievement(allAchievements, GotLevel10Achievement.code, foundUser, event.game);
101
102
  }
102
103
  }
103
104
 
@@ -107,7 +108,7 @@ export abstract class BaseAchievementsModule {
107
108
  const playdGamesCount = await this.activityLogRepository.getUserPlayedGamesCount(userId);
108
109
 
109
110
  if (new Playd10GamesAchievement(playdGamesCount).userGotAchievement()) {
110
- this.giveAchievement(allAchievements, Playd10GamesAchievement.code, foundUser);
111
+ this.giveAchievement(allAchievements, Playd10GamesAchievement.code, foundUser, event.game);
111
112
  }
112
113
  }
113
114
  } else if (event instanceof UserWonTheGameAppEvent) {
@@ -115,39 +116,39 @@ export abstract class BaseAchievementsModule {
115
116
  const wonGamesCount = await this.activityLogRepository.getUserWonGamesCount(userId);
116
117
 
117
118
  if (new Won3GamesAchievement(wonGamesCount).userGotAchievement()) {
118
- this.giveAchievement(allAchievements, Won3GamesAchievement.code, foundUser);
119
+ this.giveAchievement(allAchievements, Won3GamesAchievement.code, foundUser, event.game);
119
120
  }
120
121
  }
121
122
 
122
123
  if (this.userHasNoAchievement(usersAchievements, Won3ProfiAchievement.code)) {
123
124
  const wonProfiCount = await this.activityLogRepository.getUserWonProfiCount(userId);
124
125
  if (new Won3ProfiAchievement(wonProfiCount).userGotAchievement()) {
125
- this.giveAchievement(allAchievements, Won3ProfiAchievement.code, foundUser);
126
+ this.giveAchievement(allAchievements, Won3ProfiAchievement.code, foundUser, event.game);
126
127
  }
127
128
  }
128
129
 
129
130
  if (this.userHasNoAchievement(usersAchievements, EarnOneMillionAchievement.code)) {
130
131
  if (new EarnOneMillionAchievement(foundUser.balance).userGotAchievement()) {
131
- this.giveAchievement(allAchievements, EarnOneMillionAchievement.code, foundUser);
132
+ this.giveAchievement(allAchievements, EarnOneMillionAchievement.code, foundUser, event.game);
132
133
  }
133
134
  }
134
135
  } else if (event instanceof UserWonOneTableTournamentAppEvent) {
135
136
  if (this.userHasNoAchievement(usersAchievements, WonOneTableTournament3TimesAchievement.code)) {
136
137
  const wonFastTournamentCount = await this.activityLogRepository.getUserWonOneTableTournamentCount(userId);
137
138
  if (new WonOneTableTournament3TimesAchievement(wonFastTournamentCount).userGotAchievement()) {
138
- this.giveAchievement(allAchievements, WonOneTableTournament3TimesAchievement.code, foundUser);
139
+ this.giveAchievement(allAchievements, WonOneTableTournament3TimesAchievement.code, foundUser, event.game);
139
140
  }
140
141
  }
141
142
  } else if (event instanceof UserWonManyTablesTournamentAppEvent) {
142
143
  if (this.userHasNoAchievement(usersAchievements, Take1PlaceOnManyTablesTournamentAchievement.code)) {
143
144
  if (new Take1PlaceOnManyTablesTournamentAchievement(event.rank)) {
144
- this.giveAchievement(allAchievements, Take1PlaceOnManyTablesTournamentAchievement.code, foundUser);
145
+ this.giveAchievement(allAchievements, Take1PlaceOnManyTablesTournamentAchievement.code, foundUser, event.game);
145
146
  }
146
147
  }
147
148
 
148
149
  if (this.userHasNoAchievement(usersAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code)) {
149
150
  if (new Take2Or3PlaceOnManyTablesTournamentAchievement(event.rank)) {
150
- this.giveAchievement(allAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code, foundUser);
151
+ this.giveAchievement(allAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code, foundUser, event.game);
151
152
  }
152
153
  }
153
154
  }
@@ -158,7 +159,7 @@ export abstract class BaseAchievementsModule {
158
159
  return !usersAchievements.find((item) => item.achievementCode === achievementCode);
159
160
  }
160
161
 
161
- protected async giveAchievement (allAchievements: Array<Achievement>, achievementCode: string, user: User) {
162
+ protected async giveAchievement (allAchievements: Array<Achievement>, achievementCode: string, user: User, game: string) {
162
163
  const foundAchievement = allAchievements.find((item) => item.code === achievementCode);
163
164
  const player = this.playersManager.getPlayerById(user.userId);
164
165
 
@@ -174,6 +175,7 @@ export abstract class BaseAchievementsModule {
174
175
  );
175
176
 
176
177
  player.sendMessage(new SnackbarSendToPlayerWsEvent(
178
+ game,
177
179
  AppScreenIconEnum.EMOJI_EVENTS,
178
180
  foundAchievement.title,
179
181
  foundAchievement.description
@@ -28,7 +28,7 @@ export class EventsBusMainTablesSubscribeService {
28
28
  this.roomStatesSubject.next(event);
29
29
  }
30
30
 
31
- subscribe(onHandleStatusRoomChange: () => void) {
31
+ subscribe(onHandleStatusRoomChange: (event: RoomUpdateStateEvent) => void) {
32
32
  this.roomStatesSubject.subscribe(onHandleStatusRoomChange);
33
33
  }
34
34
  }
@@ -40,7 +40,7 @@ export class MainTablesListScreenView extends UniversalScreenView {
40
40
  this.manyTablesTournamentRooms = manyTablesTournamentRooms;
41
41
  }
42
42
 
43
- build(): IAppScreen {
43
+ build (): IAppScreen {
44
44
  const oneTableTournamentsCardList = this.oneTableTournamentRooms.map((room) =>
45
45
  AppScreenSectionListItem.CreateCardListItemMini(
46
46
  room.getId(),
@@ -67,7 +67,7 @@ export class MainTablesListScreenView extends UniversalScreenView {
67
67
  const simpleRoomsTableCardList = this.simpleRooms.reduce<Array<AppScreenSectionListItem>>((result, room) => {
68
68
  const list = room.getTables().map((table) => AppScreenSectionListItem.CreateCardListItemMini(
69
69
  table.getId(),
70
- replacePattern(table.getTitle(this.lang), { NUMBER: table.getNumber().toString() }),
70
+ table.getTitleWithNumber(this.lang),
71
71
  replacePattern(table.getSubtitle(this.lang), {
72
72
  HALF_BET: table.getHalfBet().toString(),
73
73
  BET: table.getBet().toString()
@@ -1,7 +1,7 @@
1
1
  import { Controller, Get, Headers } from '@nestjs/common';
2
2
  import { IAppHeaders, IBaseAppScreen } from 'jp.common.models';
3
3
 
4
- import { PlayerCheckStateDto } from '../../dto';
4
+ import { PlayerCheckStateDto, FindFreeTableDto } from '../../dto';
5
5
 
6
6
  import { MainService } from './main.service';
7
7
 
@@ -11,7 +11,7 @@ export class MainController {
11
11
  private readonly mainService: MainService,
12
12
  ) { }
13
13
 
14
- @Get('player/check/state')
14
+ @Get('player_check_state')
15
15
  checkState(@Headers() headers: IAppHeaders): Promise<PlayerCheckStateDto> {
16
16
  return this.mainService.playerCheckState(headers.client_auth_token, headers.client_game);
17
17
  }
@@ -31,8 +31,8 @@ export class MainController {
31
31
  return this.mainService.unsubscribeFromTablesScreen(headers.client_language);
32
32
  }
33
33
 
34
- @Get('findFreeTable')
35
- findFreeTable(@Headers() headers: IAppHeaders) {
34
+ @Get('find_free_table')
35
+ findFreeTable(@Headers() headers: IAppHeaders): FindFreeTableDto {
36
36
  return this.mainService.findFreeTable(headers.client_auth_token);
37
37
  }
38
38
  }
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Module, Provider } from '@nestjs/common';
2
2
  import { MongooseModule } from '@nestjs/mongoose';
3
- import { GamePlayer, MainTablesUpdateListWsEvent } from 'jp.ms.common.engine';
3
+ import { GamePlayer, MainTablesUpdateListWsEvent, RoomUpdateStateEvent } from 'jp.ms.common.engine';
4
4
  import { ActivityLog, ActivityLogRepository, ActivityLogSchema, User, UserSchema, UsersRepository } from 'jp.db.schemas';
5
5
 
6
6
  import { EventsBusMainTablesSubscribeService } from '../event-bus';
@@ -28,7 +28,7 @@ export class MainModule {
28
28
  private readonly mainService: MainService,
29
29
  ) { }
30
30
 
31
- static forRootAsync(options: MainModuleOptions): DynamicModule {
31
+ static forRootAsync (options: MainModuleOptions): DynamicModule {
32
32
  return {
33
33
  module: MainModule,
34
34
  imports: options.imports ?? [],
@@ -42,14 +42,14 @@ export class MainModule {
42
42
  };
43
43
  }
44
44
 
45
- async onModuleInit() {
45
+ async onModuleInit () {
46
46
  this.eventsBusMainTablesSubscribeService.subscribe(this.onHandleStatusRoomChange);
47
47
  }
48
48
 
49
- private onHandleStatusRoomChange = () => {
49
+ private onHandleStatusRoomChange = (event: RoomUpdateStateEvent) => {
50
50
  this.eventsBusMainTablesSubscribeService.getTablesSubscribers().forEach((subscriber: GamePlayer) => {
51
51
  const screen = this.mainService.getScreen(subscriber.language);
52
- subscriber.sendMessage(new MainTablesUpdateListWsEvent(screen.screen));
52
+ subscriber.sendMessage(new MainTablesUpdateListWsEvent(event.game, screen));
53
53
  });
54
54
  }
55
55
  }