jp.ms.common.modules 1.0.29 → 1.0.31
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/dto/app-screen/index.d.ts +1 -0
- package/dist/dto/app-screen/index.js +3 -1
- package/dist/dto/app-screen/index.js.map +1 -1
- package/dist/dto/{table-game/cards → app-table}/card.dto.d.ts +2 -2
- package/dist/dto/app-table/card.dto.js.map +1 -0
- package/dist/dto/app-table/cards-deck.dto.d.ts +6 -0
- package/dist/dto/app-table/cards-deck.dto.js +38 -0
- package/dist/dto/app-table/cards-deck.dto.js.map +1 -0
- package/dist/dto/{table-game/cards/card-pair-slot.dto.d.ts → app-table/cards-pair-slots-item.dto.d.ts} +2 -2
- package/dist/dto/{table-game/cards/card-pair-slot.dto.js → app-table/cards-pair-slots-item.dto.js} +9 -9
- package/dist/dto/app-table/cards-pair-slots-item.dto.js.map +1 -0
- package/dist/dto/app-table/cards-pair-slots.dto.d.ts +5 -0
- package/dist/dto/app-table/cards-pair-slots.dto.js +27 -0
- package/dist/dto/app-table/cards-pair-slots.dto.js.map +1 -0
- package/dist/dto/app-table/cards-panel.dto.d.ts +10 -0
- package/dist/dto/{table-game/cards → app-table}/cards-panel.dto.js +4 -4
- package/dist/dto/app-table/cards-panel.dto.js.map +1 -0
- package/dist/dto/app-table/cards-player.dto.d.ts +6 -0
- package/dist/dto/{table-game/cards/card-player.dto.js → app-table/cards-player.dto.js} +6 -6
- package/dist/dto/app-table/cards-player.dto.js.map +1 -0
- package/dist/dto/app-table/index.d.ts +11 -0
- package/dist/dto/app-table/index.js +26 -0
- package/dist/dto/app-table/index.js.map +1 -0
- package/dist/dto/app-table/moves-panel-button.dto.d.ts +5 -0
- package/dist/dto/{table-game/base/base-table-yours-action.dto.js → app-table/moves-panel-button.dto.js} +6 -6
- package/dist/dto/app-table/moves-panel-button.dto.js.map +1 -0
- package/dist/dto/app-table/moves-panel.dto.d.ts +6 -0
- package/dist/dto/{table-game/base/base-table-moves-panel.dto.js → app-table/moves-panel.dto.js} +9 -9
- package/dist/dto/app-table/moves-panel.dto.js.map +1 -0
- package/dist/dto/{table-game/base/game-player.dto.d.ts → app-table/player.dto.d.ts} +2 -2
- package/dist/dto/{table-game/base/game-player.dto.js → app-table/player.dto.js} +11 -11
- package/dist/dto/app-table/player.dto.js.map +1 -0
- package/dist/dto/app-table/summary-item.dto.d.ts +8 -0
- package/dist/dto/{table-game/base/base-table-summary-item.dto.js → app-table/summary-item.dto.js} +9 -9
- package/dist/dto/app-table/summary-item.dto.js.map +1 -0
- package/dist/dto/app-table/summary.dto.d.ts +5 -0
- package/dist/dto/{table-game/base/base-table-summary.dto.js → app-table/summary.dto.js} +7 -7
- package/dist/dto/app-table/summary.dto.js.map +1 -0
- package/dist/dto/games/fool/fool-player.dto.d.ts +3 -0
- package/dist/dto/games/fool/fool-player.dto.js +8 -0
- package/dist/dto/games/fool/fool-player.dto.js.map +1 -0
- package/dist/dto/games/fool/fool-table.dto.d.ts +18 -0
- package/dist/dto/games/fool/fool-table.dto.js +105 -0
- package/dist/dto/games/fool/fool-table.dto.js.map +1 -0
- package/dist/dto/games/index.d.ts +1 -0
- package/dist/dto/games/index.js +18 -0
- package/dist/dto/games/index.js.map +1 -0
- package/dist/dto/index.d.ts +2 -1
- package/dist/dto/index.js +2 -1
- package/dist/dto/index.js.map +1 -1
- package/dist/exception/error-code.enum.d.ts +4 -0
- package/dist/exception/error-code.enum.js +9 -0
- package/dist/exception/error-code.enum.js.map +1 -0
- package/dist/exception/global-exception-filter.d.ts +5 -0
- package/dist/exception/global-exception-filter.js +53 -0
- package/dist/exception/global-exception-filter.js.map +1 -0
- package/dist/exception/http-exception-wth-snackbar.d.ts +12 -0
- package/dist/exception/http-exception-wth-snackbar.js +17 -0
- package/dist/exception/http-exception-wth-snackbar.js.map +1 -0
- package/dist/exception/index.d.ts +4 -0
- package/dist/exception/index.js +12 -0
- package/dist/exception/index.js.map +1 -0
- package/dist/exception/not-enough-money-for-purchase.exception.d.ts +5 -0
- package/dist/exception/not-enough-money-for-purchase.exception.js +12 -0
- package/dist/exception/not-enough-money-for-purchase.exception.js.map +1 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.d.ts +5 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.js +12 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/events/events.gateway.js +1 -1
- package/dist/modules/events/events.gateway.js.map +1 -1
- package/dist/modules/main/main-tables-list-screen.view.d.ts +11 -1
- package/dist/modules/main/main-tables-list-screen.view.js +97 -14
- package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
- package/dist/modules/main/main.controller.d.ts +4 -3
- package/dist/modules/main/main.controller.js +15 -3
- package/dist/modules/main/main.controller.js.map +1 -1
- package/dist/modules/main/main.module.js +2 -2
- package/dist/modules/main/main.module.js.map +1 -1
- package/dist/modules/main/main.service.d.ts +5 -4
- package/dist/modules/main/main.service.js +38 -12
- package/dist/modules/main/main.service.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.d.ts +4 -0
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js +56 -4
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js +3 -3
- package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +6 -7
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +5 -17
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +6 -7
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +20 -27
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
- package/dist/modules/menu/menu.service.js +1 -2
- package/dist/modules/menu/menu.service.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +1 -0
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +18 -5
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.controller.d.ts +3 -3
- package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.service.d.ts +3 -3
- package/dist/modules/one-table-tournament/one-table-tournament.service.js +1 -2
- package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
- package/dist/modules/simple-rooms/simple-rooms.controller.d.ts +5 -5
- package/dist/modules/simple-rooms/simple-rooms.service.d.ts +5 -5
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.d.ts +3 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js +14 -3
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js.map +1 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.d.ts +4 -3
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +49 -25
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js.map +1 -1
- package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js +9 -6
- package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/game-table-result.d.ts +1 -2
- package/dist/utils/game-table-result.js +0 -13
- package/dist/utils/game-table-result.js.map +1 -1
- package/dist/views/index.d.ts +3 -0
- package/dist/views/index.js +7 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.d.ts +4 -0
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.js +11 -0
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.js.map +1 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.d.ts +4 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.js +11 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.js.map +1 -0
- package/dist/views/table-summary.view.d.ts +11 -0
- package/dist/views/table-summary.view.js +47 -0
- package/dist/views/table-summary.view.js.map +1 -0
- package/dist/views/tournament-buy-ticket-dialog.view.js +1 -1
- package/dist/views/tournament-buy-ticket-dialog.view.js.map +1 -1
- package/package.json +4 -4
- package/src/dto/app-screen/index.ts +1 -0
- package/src/dto/{table-game/cards → app-table}/card.dto.ts +2 -2
- package/src/dto/app-table/cards-deck.dto.ts +22 -0
- package/src/dto/{table-game/cards/card-pair-slot.dto.ts → app-table/cards-pair-slots-item.dto.ts} +2 -2
- package/src/dto/app-table/cards-pair-slots.dto.ts +13 -0
- package/src/dto/{table-game/cards → app-table}/cards-panel.dto.ts +5 -6
- package/src/dto/app-table/cards-player.dto.ts +14 -0
- package/src/dto/app-table/index.ts +11 -0
- package/src/dto/{table-game/base/base-table-yours-action.dto.ts → app-table/moves-panel-button.dto.ts} +2 -3
- package/src/dto/{table-game/base/base-table-moves-panel.dto.ts → app-table/moves-panel.dto.ts} +5 -5
- package/src/dto/{table-game/base/game-player.dto.ts → app-table/player.dto.ts} +2 -2
- package/src/dto/{table-game/base/base-table-summary-item.dto.ts → app-table/summary-item.dto.ts} +2 -3
- package/src/dto/app-table/summary.dto.ts +13 -0
- package/src/dto/games/fool/fool-player.dto.ts +3 -0
- package/src/dto/games/fool/fool-table.dto.ts +79 -0
- package/src/dto/games/index.ts +1 -0
- package/src/dto/index.ts +2 -1
- package/src/exception/error-code.enum.ts +4 -0
- package/src/exception/global-exception-filter.ts +50 -0
- package/src/exception/http-exception-wth-snackbar.ts +23 -0
- package/src/exception/index.ts +4 -0
- package/src/exception/not-enough-money-for-purchase.exception.ts +15 -0
- package/src/exception/not-found-free-room-for-fast-game.exception.ts +15 -0
- package/src/index.ts +2 -1
- package/src/modules/events/events.gateway.ts +1 -1
- package/src/modules/main/main-tables-list-screen.view.ts +177 -55
- package/src/modules/main/main.controller.ts +23 -10
- package/src/modules/main/main.module.ts +2 -2
- package/src/modules/main/main.service.ts +53 -19
- package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +97 -31
- package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +25 -17
- package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +8 -17
- package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +46 -58
- package/src/modules/menu/menu.service.ts +6 -9
- package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +43 -17
- package/src/modules/one-table-tournament/one-table-tournament.controller.ts +3 -4
- package/src/modules/one-table-tournament/one-table-tournament.service.ts +9 -12
- package/src/modules/simple-rooms/simple-rooms.controller.ts +5 -5
- package/src/modules/simple-rooms/simple-rooms.service.ts +5 -5
- package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +0 -2
- package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.ts +17 -9
- package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +57 -26
- package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +10 -7
- package/src/utils/game-table-result.ts +1 -16
- package/src/views/index.ts +4 -1
- package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +21 -0
- package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +21 -0
- package/src/views/table-summary.view.ts +87 -0
- package/src/views/tournament-buy-ticket-dialog.view.ts +4 -4
- package/dist/adapter/base-table-game-state-adapter.d.ts +0 -36
- package/dist/adapter/base-table-game-state-adapter.js +0 -183
- package/dist/adapter/base-table-game-state-adapter.js.map +0 -1
- package/dist/adapter/card-table-game-state-adapter.d.ts +0 -14
- package/dist/adapter/card-table-game-state-adapter.js +0 -51
- package/dist/adapter/card-table-game-state-adapter.js.map +0 -1
- package/dist/adapter/index.d.ts +0 -1
- package/dist/adapter/index.js +0 -6
- package/dist/adapter/index.js.map +0 -1
- package/dist/dto/table-game/base/base-table-game-state.dto.d.ts +0 -17
- package/dist/dto/table-game/base/base-table-game-state.dto.js +0 -128
- package/dist/dto/table-game/base/base-table-game-state.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-moves-panel.dto.d.ts +0 -6
- package/dist/dto/table-game/base/base-table-moves-panel.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-summary-item.dto.d.ts +0 -8
- package/dist/dto/table-game/base/base-table-summary-item.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-summary.dto.d.ts +0 -5
- package/dist/dto/table-game/base/base-table-summary.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-yours-action.dto.d.ts +0 -5
- package/dist/dto/table-game/base/base-table-yours-action.dto.js.map +0 -1
- package/dist/dto/table-game/base/game-player.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-pair-slot.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-player.dto.d.ts +0 -6
- package/dist/dto/table-game/cards/card-player.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-table-game-state.dto.d.ts +0 -16
- package/dist/dto/table-game/cards/card-table-game-state.dto.js +0 -68
- package/dist/dto/table-game/cards/card-table-game-state.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card.dto.js.map +0 -1
- package/dist/dto/table-game/cards/cards-panel.dto.d.ts +0 -10
- package/dist/dto/table-game/cards/cards-panel.dto.js.map +0 -1
- package/dist/dto/table-game/index.d.ts +0 -1
- package/dist/dto/table-game/index.js +0 -6
- package/dist/dto/table-game/index.js.map +0 -1
- package/src/adapter/base-table-game-state-adapter.ts +0 -272
- package/src/adapter/card-table-game-state-adapter.ts +0 -78
- package/src/adapter/index.ts +0 -1
- package/src/dto/table-game/base/base-table-game-state.dto.ts +0 -95
- package/src/dto/table-game/base/base-table-summary.dto.ts +0 -13
- package/src/dto/table-game/cards/card-player.dto.ts +0 -15
- package/src/dto/table-game/cards/card-table-game-state.dto.ts +0 -50
- package/src/dto/table-game/index.ts +0 -2
- /package/dist/dto/{table-game/cards → app-table}/card.dto.js +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';
|
|
2
2
|
import {
|
|
3
|
-
BaseAppScreen,
|
|
4
3
|
IAppHeaders,
|
|
5
4
|
IBaseAppScreen,
|
|
6
5
|
IBaseMoveData,
|
|
7
|
-
|
|
6
|
+
IAppTableState,
|
|
8
7
|
} from 'jp.common.models';
|
|
9
8
|
|
|
10
9
|
import { BaseAppScreenDto } from '../../dto';
|
|
@@ -32,14 +31,12 @@ export class OneTableTournamentService {
|
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
return new BaseAppScreenDto(
|
|
35
|
-
new
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
).build()
|
|
42
|
-
)
|
|
34
|
+
new OneTableTournamentStatusScreenView(
|
|
35
|
+
this.options.i18n,
|
|
36
|
+
lang,
|
|
37
|
+
tournament,
|
|
38
|
+
playerId,
|
|
39
|
+
).buildBS()
|
|
43
40
|
);
|
|
44
41
|
}
|
|
45
42
|
|
|
@@ -69,7 +66,7 @@ export class OneTableTournamentService {
|
|
|
69
66
|
throw new InternalServerErrorException();
|
|
70
67
|
}
|
|
71
68
|
|
|
72
|
-
watchTheTable (tableId: string, clientAuthToken: string):
|
|
69
|
+
watchTheTable (tableId: string, clientAuthToken: string): IAppTableState {
|
|
73
70
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
74
71
|
const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
|
|
75
72
|
const master = room?.getMasterById(tableId);
|
|
@@ -83,7 +80,7 @@ export class OneTableTournamentService {
|
|
|
83
80
|
throw new InternalServerErrorException();
|
|
84
81
|
}
|
|
85
82
|
|
|
86
|
-
moveOnTheTable (tableId: string, clientAuthToken: string, moveDto: IBaseMoveData):
|
|
83
|
+
moveOnTheTable (tableId: string, clientAuthToken: string, moveDto: IBaseMoveData): IAppTableState {
|
|
87
84
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
88
85
|
const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
|
|
89
86
|
const master = room?.getMasterById(tableId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Body, Controller, Param, Post, Headers, HttpStatus, HttpCode } from '@nestjs/common';
|
|
2
|
-
import { IAppHeaders, IBaseMoveData,
|
|
2
|
+
import { IAppHeaders, IBaseMoveData, IAppTableState } from 'jp.common.models';
|
|
3
3
|
|
|
4
4
|
import { SimpleRoomsService } from './simple-rooms.service';
|
|
5
5
|
|
|
@@ -14,7 +14,7 @@ export class SimpleRoomsController {
|
|
|
14
14
|
watchTheTable (
|
|
15
15
|
@Param('tableId') tableId: string,
|
|
16
16
|
@Headers() headers: IAppHeaders,
|
|
17
|
-
):
|
|
17
|
+
): IAppTableState {
|
|
18
18
|
return this.roomsService.watchTheTable(tableId, headers.client_auth_token);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -23,7 +23,7 @@ export class SimpleRoomsController {
|
|
|
23
23
|
enterTheTable (
|
|
24
24
|
@Param('tableId') tableId: string,
|
|
25
25
|
@Headers() headers: IAppHeaders,
|
|
26
|
-
):
|
|
26
|
+
): IAppTableState {
|
|
27
27
|
return this.roomsService.enterTheTable(tableId, headers.client_auth_token);
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -32,7 +32,7 @@ export class SimpleRoomsController {
|
|
|
32
32
|
exitTheTable (
|
|
33
33
|
@Param('tableId') tableId: string,
|
|
34
34
|
@Headers() headers: IAppHeaders,
|
|
35
|
-
):
|
|
35
|
+
): IAppTableState {
|
|
36
36
|
return this.roomsService.exitTheTable(tableId, headers.client_auth_token);
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -42,7 +42,7 @@ export class SimpleRoomsController {
|
|
|
42
42
|
@Param('tableId') tableId: string,
|
|
43
43
|
@Body() baseMoveData: IBaseMoveData,
|
|
44
44
|
@Headers() headers: IAppHeaders,
|
|
45
|
-
):
|
|
45
|
+
): IAppTableState {
|
|
46
46
|
return this.roomsService.moveOnTheTable(tableId, headers.client_auth_token, baseMoveData);
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';
|
|
2
2
|
import {
|
|
3
3
|
IBaseMoveData,
|
|
4
|
-
|
|
4
|
+
IAppTableState,
|
|
5
5
|
} from 'jp.common.models';
|
|
6
6
|
|
|
7
7
|
import { SimpleRoomsManagerService } from '../simple-rooms-manager';
|
|
@@ -19,7 +19,7 @@ export class SimpleRoomsService {
|
|
|
19
19
|
) {
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
watchTheTable (tableId: string, clientAuthToken: string):
|
|
22
|
+
watchTheTable (tableId: string, clientAuthToken: string): IAppTableState {
|
|
23
23
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
24
24
|
const room = this.simpleRoomsManager.getRoomByTableId(tableId);
|
|
25
25
|
const master = room?.getMasterById(tableId);
|
|
@@ -33,7 +33,7 @@ export class SimpleRoomsService {
|
|
|
33
33
|
throw new InternalServerErrorException();
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
enterTheTable (tableId: string, clientAuthToken: string):
|
|
36
|
+
enterTheTable (tableId: string, clientAuthToken: string): IAppTableState {
|
|
37
37
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
38
38
|
const room = this.simpleRoomsManager.getRoomByTableId(tableId);
|
|
39
39
|
const master = room?.getMasterById(tableId);
|
|
@@ -47,7 +47,7 @@ export class SimpleRoomsService {
|
|
|
47
47
|
throw new InternalServerErrorException();
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
exitTheTable (tableId: string, clientAuthToken: string):
|
|
50
|
+
exitTheTable (tableId: string, clientAuthToken: string): IAppTableState {
|
|
51
51
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
52
52
|
const room = this.simpleRoomsManager.getRoomByTableId(tableId);
|
|
53
53
|
const master = room?.getMasterById(tableId);
|
|
@@ -61,7 +61,7 @@ export class SimpleRoomsService {
|
|
|
61
61
|
throw new InternalServerErrorException();
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
moveOnTheTable (tableId: string, clientAuthToken: string, moveDto: IBaseMoveData):
|
|
64
|
+
moveOnTheTable (tableId: string, clientAuthToken: string, moveDto: IBaseMoveData): IAppTableState {
|
|
65
65
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
66
66
|
const room = this.simpleRoomsManager.getRoomByTableId(tableId);
|
|
67
67
|
const master = room?.getMasterById(tableId);
|
|
@@ -147,8 +147,6 @@ export class SimpleRoomsManagerService {
|
|
|
147
147
|
localeService: this.options.i18n,
|
|
148
148
|
startStrategy: new MinPlayersStartStrategy(),
|
|
149
149
|
onRoomEvent: this.handleRoomEvent,
|
|
150
|
-
// onRoomTableGameFinished: this.handleRoomTableGameFinished,
|
|
151
|
-
// onRoomStatusUpdated: this.handleRoomStatusUpdated,
|
|
152
150
|
} as GameRoomConfig;
|
|
153
151
|
}
|
|
154
152
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, Global, Module, Provider } from '@nestjs/common';
|
|
1
|
+
import { DynamicModule, Global, Inject, Module, Provider } from '@nestjs/common';
|
|
2
2
|
import { MongooseModule } from '@nestjs/mongoose';
|
|
3
3
|
import {
|
|
4
4
|
TournamentManyTablesRoom,
|
|
@@ -10,32 +10,37 @@ import {
|
|
|
10
10
|
GameResult,
|
|
11
11
|
GameResultSchema,
|
|
12
12
|
GameResultRepository,
|
|
13
|
+
Purchase,
|
|
14
|
+
PurchaseSchema,
|
|
15
|
+
PurchaseRepository,
|
|
13
16
|
} from 'jp.db.schemas';
|
|
14
17
|
|
|
15
18
|
import { TournamentManyTablesRoomsManagerService } from './tournament-many-tables-rooms-manager.service';
|
|
16
|
-
import {
|
|
17
|
-
TournamentManyTablesRoomsManagerOptions,
|
|
18
|
-
} from './tournament-many-tables-rooms-manager.interfaces';
|
|
19
|
+
import { TournamentManyTablesRoomsManagerOptions } from './tournament-many-tables-rooms-manager.interfaces';
|
|
19
20
|
import { TOURNAMENT_MANY_TABLES_ROOMS_MANAGER_OPTIONS } from './tournament-many-tables-rooms-manager.constants';
|
|
21
|
+
import { TournamentManyTablesRoomsFactoryOptions } from './tournament-many-tables-rooms-manager.interfaces';
|
|
20
22
|
|
|
21
23
|
@Global()
|
|
22
24
|
@Module({
|
|
23
25
|
imports: [
|
|
24
|
-
MongooseModule.forFeature([{name: TournamentManyTablesRoom.name, schema: TournamentManyTablesRoomSchema}]),
|
|
25
|
-
MongooseModule.forFeature([{name: User.name, schema: UserSchema}]),
|
|
26
|
-
MongooseModule.forFeature([{name:
|
|
26
|
+
MongooseModule.forFeature([{ name: TournamentManyTablesRoom.name, schema: TournamentManyTablesRoomSchema }]),
|
|
27
|
+
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
|
|
28
|
+
MongooseModule.forFeature([{ name: Purchase.name, schema: PurchaseSchema }]),
|
|
29
|
+
MongooseModule.forFeature([{ name: GameResult.name, schema: GameResultSchema }]),
|
|
27
30
|
],
|
|
28
31
|
providers: [
|
|
29
32
|
TournamentManyTablesRoomsRepository,
|
|
30
33
|
UsersRepository,
|
|
31
34
|
TournamentManyTablesRoomsManagerService,
|
|
32
35
|
GameResultRepository,
|
|
36
|
+
PurchaseRepository,
|
|
33
37
|
],
|
|
34
38
|
exports: [TournamentManyTablesRoomsManagerService],
|
|
35
39
|
})
|
|
36
40
|
export class TournamentManyTablesRoomsManagerModule {
|
|
37
|
-
constructor
|
|
41
|
+
constructor(
|
|
38
42
|
private readonly managerService: TournamentManyTablesRoomsManagerService,
|
|
43
|
+
@Inject(TOURNAMENT_MANY_TABLES_ROOMS_MANAGER_OPTIONS) private readonly options: TournamentManyTablesRoomsFactoryOptions,
|
|
39
44
|
) {
|
|
40
45
|
}
|
|
41
46
|
|
|
@@ -54,7 +59,10 @@ export class TournamentManyTablesRoomsManagerModule {
|
|
|
54
59
|
}
|
|
55
60
|
|
|
56
61
|
async onModuleInit () {
|
|
57
|
-
|
|
62
|
+
const dailyTournamentScheduleJobEnabled = this.options.configService.get<string>('DAILY_TOURNAMENT_SCHEDULE_JOB_ENABLED');
|
|
63
|
+
if (dailyTournamentScheduleJobEnabled === 'true') {
|
|
64
|
+
await this.managerService.runDailyTournamentJob();
|
|
65
|
+
}
|
|
58
66
|
await this.managerService.hydrateTournamentsFromDB();
|
|
59
67
|
}
|
|
60
68
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectConnection } from '@nestjs/mongoose';
|
|
2
|
+
import { Connection } from 'mongoose';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import schedule, { Job } from 'node-schedule';
|
|
5
|
+
import { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';
|
|
2
6
|
import {
|
|
3
7
|
BaseGameEvent,
|
|
4
8
|
GameMaster,
|
|
@@ -18,15 +22,11 @@ import {
|
|
|
18
22
|
} from 'jp.ms.common.engine';
|
|
19
23
|
import {
|
|
20
24
|
GameResultRepository,
|
|
25
|
+
PurchaseRepository,
|
|
21
26
|
TournamentManyTablesRoomDocument,
|
|
22
27
|
TournamentManyTablesRoomsRepository,
|
|
23
28
|
UsersRepository
|
|
24
29
|
} from 'jp.db.schemas';
|
|
25
|
-
import { InjectConnection } from '@nestjs/mongoose';
|
|
26
|
-
import { Connection } from 'mongoose';
|
|
27
|
-
import dayjs from 'dayjs';
|
|
28
|
-
import schedule from 'node-schedule';
|
|
29
|
-
import { Job } from 'node-schedule';
|
|
30
30
|
|
|
31
31
|
import { saveGameTablesResult, saveTournamentResult } from '../../utils/game-table-result';
|
|
32
32
|
import { JpLoggerService } from '../logger';
|
|
@@ -42,12 +42,13 @@ import { TournamentManyTablesRoomsFactoryOptions } from './tournament-many-table
|
|
|
42
42
|
@Injectable()
|
|
43
43
|
export class TournamentManyTablesRoomsManagerService {
|
|
44
44
|
private readonly rooms: Map<string, ManyTablesTournamentRoom>;
|
|
45
|
-
private createDailyTournamentJob: Job;
|
|
45
|
+
private createDailyTournamentJob: Job | null;
|
|
46
46
|
|
|
47
47
|
constructor(
|
|
48
48
|
private readonly tournamentRepository: TournamentManyTablesRoomsRepository,
|
|
49
49
|
private readonly usersRepository: UsersRepository,
|
|
50
50
|
private readonly gameResultRepository: GameResultRepository,
|
|
51
|
+
private readonly purchaseRepository: PurchaseRepository,
|
|
51
52
|
private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
|
|
52
53
|
private readonly eventsBusManyTablesTournamentSubscribeService: EventsBusManyTablesTournamentSubscribeService,
|
|
53
54
|
@Inject(TOURNAMENT_MANY_TABLES_ROOMS_MANAGER_OPTIONS) private readonly options: TournamentManyTablesRoomsFactoryOptions,
|
|
@@ -55,6 +56,7 @@ export class TournamentManyTablesRoomsManagerService {
|
|
|
55
56
|
@Inject() private readonly logger: JpLoggerService,
|
|
56
57
|
) {
|
|
57
58
|
this.rooms = new Map<string, ManyTablesTournamentRoom>();
|
|
59
|
+
this.createDailyTournamentJob = null;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
get gameType () {
|
|
@@ -89,7 +91,7 @@ export class TournamentManyTablesRoomsManagerService {
|
|
|
89
91
|
}
|
|
90
92
|
|
|
91
93
|
async hydrateTournamentsFromDB () {
|
|
92
|
-
const templates = await this.tournamentRepository.
|
|
94
|
+
const templates = await this.tournamentRepository.findActualTournaments(this.gameType);
|
|
93
95
|
templates.forEach((item) => {
|
|
94
96
|
this.addRoom(this.options.createTournamentRoom(
|
|
95
97
|
this.manyTablesTournamentDocumentToTournamentRoom(item)
|
|
@@ -134,18 +136,47 @@ export class TournamentManyTablesRoomsManagerService {
|
|
|
134
136
|
}
|
|
135
137
|
|
|
136
138
|
async buyTicket (tournamentId: string, player: GamePlayer) {
|
|
137
|
-
|
|
138
|
-
await this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
139
|
+
const tournament = this.getRoomById(tournamentId);
|
|
140
|
+
const user = await this.usersRepository.findById(player.id);
|
|
141
|
+
|
|
142
|
+
if (!tournament || !user) {
|
|
143
|
+
throw new InternalServerErrorException();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const session = await this.connection.startSession();
|
|
147
|
+
session.startTransaction();
|
|
148
|
+
|
|
149
|
+
try {
|
|
150
|
+
player.decreaseBalance(tournament.getTicketPrice());
|
|
151
|
+
tournament.addParticipant(player);
|
|
152
|
+
this.purchaseRepository.addManyTablesTournamentTicketPurchase(
|
|
153
|
+
player.id,
|
|
154
|
+
player.fullName,
|
|
155
|
+
tournamentId,
|
|
156
|
+
tournament.getTicketPrice(),
|
|
157
|
+
tournament.getGameType(),
|
|
158
|
+
)
|
|
159
|
+
this.usersRepository.subtractFromBalance(player.id, tournament.getTicketPrice());
|
|
160
|
+
|
|
161
|
+
await this.tournamentRepository.addPlayerToParticipants(tournamentId, {
|
|
162
|
+
playerId: player.id,
|
|
163
|
+
playerAvatarUrl: player.avatarUrl,
|
|
164
|
+
playerName: player.fullName,
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
await session.commitTransaction();
|
|
168
|
+
} catch (error) {
|
|
169
|
+
await session.abortTransaction();
|
|
170
|
+
throw error;
|
|
171
|
+
} finally {
|
|
172
|
+
await session.endSession();
|
|
173
|
+
}
|
|
143
174
|
}
|
|
144
175
|
|
|
145
176
|
private manyTablesTournamentDocumentToTournamentRoom (tournamentDocument: TournamentManyTablesRoomDocument): ManyTablesTournamentRoomConfig {
|
|
146
177
|
const restartGameTimeout = this.options.configService.get<number>('RESTART_GAME_TIMEOUT') || 0;
|
|
147
178
|
const playersTurnTimeout = this.options.configService.get<number>('PLAYERS_TURN_TIMEOUT') || 0;
|
|
148
|
-
const minPlayersForMergeTables = this.options.configService.get<
|
|
179
|
+
const minPlayersForMergeTables = this.options.configService.get<string>('TOURNAMENT_MANY_TABLES_MIN_PLAYERS_FOR_MERGE_TABLES');
|
|
149
180
|
|
|
150
181
|
return {
|
|
151
182
|
id: tournamentDocument.tournamentId,
|
|
@@ -163,21 +194,21 @@ export class TournamentManyTablesRoomsManagerService {
|
|
|
163
194
|
scheduleDate: tournamentDocument.scheduleDate,
|
|
164
195
|
turnTimeout: playersTurnTimeout,
|
|
165
196
|
restartTimeout: restartGameTimeout,
|
|
166
|
-
minPlayersForMergeTables: minPlayersForMergeTables,
|
|
197
|
+
minPlayersForMergeTables: parseInt(minPlayersForMergeTables ?? '0', 10),
|
|
167
198
|
localeService: this.options.i18n,
|
|
168
199
|
startStrategy: new NoStartStrategy(),
|
|
169
200
|
onRoomEvent: this.handleRoomEvent,
|
|
170
|
-
onRoomTableGameFinished: this.handleRoomTableGameFinished,
|
|
171
|
-
onTournamentRoomStarted: this.handleTournamentRoomStarted,
|
|
172
|
-
onTournamentRoomFinished: this.handleTournamentRoomFinished,
|
|
173
|
-
onTournamentRoomCancelled: this.handleTournamentRoomCancelled,
|
|
174
|
-
onRoomStatusUpdated: this.handleRoomStatusUpdated,
|
|
175
201
|
tournamentPrizeTable: this.options.tournamentPrizeTable,
|
|
176
202
|
tournamentInitialStatus: tournamentDocument.status,
|
|
203
|
+
tournamentWinners: tournamentDocument.winners,
|
|
204
|
+
maxParticipants: tournamentDocument.maxParticipants,
|
|
205
|
+
participants: tournamentDocument.participants,
|
|
177
206
|
} as ManyTablesTournamentRoomConfig;
|
|
178
207
|
}
|
|
179
208
|
|
|
180
209
|
private handleRoomEvent = (event: BaseGameEvent) => {
|
|
210
|
+
this.logger.log(event.toLog());
|
|
211
|
+
|
|
181
212
|
if (event instanceof GameTableFinishedEvent) {
|
|
182
213
|
this.handleRoomTableGameFinished(event.master!!);
|
|
183
214
|
} else if (event instanceof GameTournamentStartedEvent) {
|
|
@@ -187,11 +218,11 @@ export class TournamentManyTablesRoomsManagerService {
|
|
|
187
218
|
} else if (event instanceof GameTournamentFinishedEvent) {
|
|
188
219
|
this.handleTournamentRoomFinished(event.room.getRoomMaster());
|
|
189
220
|
} else if (
|
|
190
|
-
event instanceof GameTournamentPlayerJoinedTheTournamentEvent
|
|
191
|
-
event instanceof GameTournamentPlayerLeavedTheTournamentEvent
|
|
192
|
-
event instanceof GameTournamentCancelledEvent
|
|
193
|
-
event instanceof GameTournamentWaitedEvent
|
|
194
|
-
event instanceof GameTournamentStartedEvent
|
|
221
|
+
event instanceof GameTournamentPlayerJoinedTheTournamentEvent ||
|
|
222
|
+
event instanceof GameTournamentPlayerLeavedTheTournamentEvent ||
|
|
223
|
+
event instanceof GameTournamentCancelledEvent ||
|
|
224
|
+
event instanceof GameTournamentWaitedEvent ||
|
|
225
|
+
event instanceof GameTournamentStartedEvent ||
|
|
195
226
|
event instanceof GameTournamentFinishedEvent
|
|
196
227
|
) {
|
|
197
228
|
this.handleRoomStatusUpdated(new RoomUpdateStateEvent(event.gameType, event.roomId));
|
package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts
CHANGED
|
@@ -25,7 +25,7 @@ import { InjectConnection } from '@nestjs/mongoose';
|
|
|
25
25
|
import { Connection } from 'mongoose';
|
|
26
26
|
|
|
27
27
|
import { JpLoggerService } from '../logger/jp-logger.service';
|
|
28
|
-
import {
|
|
28
|
+
import { saveGameTablesResult, saveTournamentResult } from '../../utils/game-table-result';
|
|
29
29
|
import { EventsBusMainTablesSubscribeService, EventsBusOneTableTournamentSubscribeService } from '../event-bus';
|
|
30
30
|
|
|
31
31
|
import { TOURNAMENT_ONE_TABLE_ROOMS_MANAGER_OPTIONS } from './tournament-one-table-rooms-manager.constants';
|
|
@@ -87,7 +87,7 @@ export class TournamentOneTableRoomsManagerService {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
async hydrateTournamentsFromDB () {
|
|
90
|
-
const templates = await this.tournamentRepository.
|
|
90
|
+
const templates = await this.tournamentRepository.findActualTournaments(this.gameType);
|
|
91
91
|
templates.forEach((item) => {
|
|
92
92
|
this.addRoom(this.options.createTournamentRoom(
|
|
93
93
|
this.oneTableTournamentDocumentToTournamentRoom(item)
|
|
@@ -119,6 +119,9 @@ export class TournamentOneTableRoomsManagerService {
|
|
|
119
119
|
onRoomEvent: this.handleRoomEvent,
|
|
120
120
|
tournamentPrizeTable: this.options.tournamentPrizeTable,
|
|
121
121
|
tournamentInitialStatus: tournamentDocument.status,
|
|
122
|
+
tournamentWinners: tournamentDocument.winners,
|
|
123
|
+
maxParticipants: tournamentDocument.maxParticipants,
|
|
124
|
+
participants: tournamentDocument.participants,
|
|
122
125
|
} as TournamentRoomConfig;
|
|
123
126
|
}
|
|
124
127
|
|
|
@@ -134,11 +137,11 @@ export class TournamentOneTableRoomsManagerService {
|
|
|
134
137
|
} else if (event instanceof GameTournamentFinishedEvent) {
|
|
135
138
|
this.handleTournamentRoomFinished(event.room.getRoomMaster());
|
|
136
139
|
} else if (
|
|
137
|
-
event instanceof GameTournamentPlayerJoinedTheTournamentEvent
|
|
138
|
-
event instanceof GameTournamentPlayerLeavedTheTournamentEvent
|
|
139
|
-
event instanceof GameTournamentCancelledEvent
|
|
140
|
-
event instanceof GameTournamentWaitedEvent
|
|
141
|
-
event instanceof GameTournamentStartedEvent
|
|
140
|
+
event instanceof GameTournamentPlayerJoinedTheTournamentEvent ||
|
|
141
|
+
event instanceof GameTournamentPlayerLeavedTheTournamentEvent ||
|
|
142
|
+
event instanceof GameTournamentCancelledEvent ||
|
|
143
|
+
event instanceof GameTournamentWaitedEvent ||
|
|
144
|
+
event instanceof GameTournamentStartedEvent ||
|
|
142
145
|
event instanceof GameTournamentFinishedEvent
|
|
143
146
|
) {
|
|
144
147
|
this.handleRoomStatusUpdated(new RoomUpdateStateEvent(event.gameType, event.roomId));
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Connection } from 'mongoose';
|
|
2
|
-
import { BaseGameEvent, GameMaster, GameTournamentCancelledEvent, GameTournamentFinishedEvent, GameTournamentPlayerJoinedTheTournamentEvent, GameTournamentPlayerLeavedTheTournamentEvent, GameTournamentStartedEvent, GameTournamentWaitedEvent, RoomUpdateStateEvent, TournamentMaster } from 'jp.ms.common.engine';
|
|
3
2
|
import {
|
|
4
3
|
GameResultRepository,
|
|
5
4
|
TournamentManyTablesRoomsRepository,
|
|
6
5
|
TournamentOneTableRoomsRepository,
|
|
7
6
|
UsersRepository
|
|
8
7
|
} from 'jp.db.schemas';
|
|
8
|
+
import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
|
|
9
9
|
|
|
10
10
|
export function getGameTableResults (master: GameMaster) {
|
|
11
11
|
return {
|
|
@@ -108,18 +108,3 @@ export async function saveTournamentResult (
|
|
|
108
108
|
await session.endSession();
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
|
|
112
|
-
export function isUpdateTounrmanentRoomEvent (event: BaseGameEvent) {
|
|
113
|
-
if (
|
|
114
|
-
event instanceof GameTournamentPlayerJoinedTheTournamentEvent &&
|
|
115
|
-
event instanceof GameTournamentPlayerLeavedTheTournamentEvent &&
|
|
116
|
-
event instanceof GameTournamentCancelledEvent &&
|
|
117
|
-
event instanceof GameTournamentWaitedEvent &&
|
|
118
|
-
event instanceof GameTournamentStartedEvent &&
|
|
119
|
-
event instanceof GameTournamentFinishedEvent
|
|
120
|
-
) {
|
|
121
|
-
return event
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return null;
|
|
125
|
-
}
|
package/src/views/index.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export { TournamentBuyTicketDialogView } from './tournament-buy-ticket-dialog.view';
|
|
2
|
-
export { SimpleRoomConfirmExitDialogView } from './simple-room-conifrm-exit-dialog.view';
|
|
2
|
+
export { SimpleRoomConfirmExitDialogView } from './simple-room-conifrm-exit-dialog.view';
|
|
3
|
+
export { ManyTablesTournamentConfirmExitDialogView } from './many-tables-tournament-conifrm-exit-dialog.view';
|
|
4
|
+
export { OneTableTournamentConfirmExitDialogView } from './one-table-tournament-conifrm-exit-dialog.view';
|
|
5
|
+
export { TableSummaryView } from './table-summary.view'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
UniversalScreenDialogView,
|
|
3
|
+
AppScreenDialogIdEnum,
|
|
4
|
+
StandardDialogComponent,
|
|
5
|
+
FullButtonsButtonsComponent,
|
|
6
|
+
TextButtonComponent,
|
|
7
|
+
} from "jp.common.models";
|
|
8
|
+
|
|
9
|
+
export class ManyTablesTournamentConfirmExitDialogView extends UniversalScreenDialogView {
|
|
10
|
+
build () {
|
|
11
|
+
return new StandardDialogComponent(
|
|
12
|
+
AppScreenDialogIdEnum.DIALOG_MANY_TABLES_TOURNAMENT_CONFIRM_EXIT,
|
|
13
|
+
this.localeService.t('common.room.screen.dialog.confirm.exit.game.title', { lang: this.lang }),
|
|
14
|
+
this.localeService.t('common.room.screen.dialog.confirm.exit.game.message', { lang: this.lang }),
|
|
15
|
+
new FullButtonsButtonsComponent(
|
|
16
|
+
new TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.ok', { lang: this.lang })),
|
|
17
|
+
new TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.cancel', { lang: this.lang })),
|
|
18
|
+
),
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
UniversalScreenDialogView,
|
|
3
|
+
AppScreenDialogIdEnum,
|
|
4
|
+
StandardDialogComponent,
|
|
5
|
+
FullButtonsButtonsComponent,
|
|
6
|
+
TextButtonComponent,
|
|
7
|
+
} from "jp.common.models";
|
|
8
|
+
|
|
9
|
+
export class OneTableTournamentConfirmExitDialogView extends UniversalScreenDialogView {
|
|
10
|
+
build () {
|
|
11
|
+
return new StandardDialogComponent(
|
|
12
|
+
AppScreenDialogIdEnum.DIALOG_ONE_TABLE_TOURNAMENT_CONFIRM_EXIT,
|
|
13
|
+
this.localeService.t('common.room.screen.dialog.confirm.exit.game.title', { lang: this.lang }),
|
|
14
|
+
this.localeService.t('common.room.screen.dialog.confirm.exit.game.message', { lang: this.lang }),
|
|
15
|
+
new FullButtonsButtonsComponent(
|
|
16
|
+
new TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.ok', { lang: this.lang })),
|
|
17
|
+
new TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.cancel', { lang: this.lang })),
|
|
18
|
+
),
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BodyMdSummaryItemComponent,
|
|
3
|
+
BodySmSummaryItemComponent,
|
|
4
|
+
IAppTableSummary,
|
|
5
|
+
ILocaleService,
|
|
6
|
+
OneLineSummaryComponent,
|
|
7
|
+
SummaryComponent,
|
|
8
|
+
TitleMdSummaryItemComponent,
|
|
9
|
+
UniversalView,
|
|
10
|
+
} from "jp.common.models";
|
|
11
|
+
import { formatChips } from "jp.common.utils";
|
|
12
|
+
import { GameMaster } from "jp.ms.common.engine";
|
|
13
|
+
|
|
14
|
+
export class TableSummaryView extends UniversalView {
|
|
15
|
+
private readonly gameMaster: GameMaster;
|
|
16
|
+
|
|
17
|
+
constructor(
|
|
18
|
+
localeService: ILocaleService,
|
|
19
|
+
lang: string,
|
|
20
|
+
gameMaster: GameMaster,
|
|
21
|
+
) {
|
|
22
|
+
super(localeService, lang);
|
|
23
|
+
this.gameMaster = gameMaster;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
build (): IAppTableSummary {
|
|
27
|
+
if (this.gameMaster.isInProgress()) {
|
|
28
|
+
return this.getSummaryPlaying();
|
|
29
|
+
} else if (this.gameMaster.isTechBreak()) {
|
|
30
|
+
return this.getSummaryTechBreak();
|
|
31
|
+
} else if (this.gameMaster.isWaiting()) {
|
|
32
|
+
return this.getSummaryWaiting();
|
|
33
|
+
} else if (this.gameMaster.isFinish()) {
|
|
34
|
+
return this.getSummaryEnd();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return new SummaryComponent([]);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
private getSummaryTechBreak () {
|
|
42
|
+
return new OneLineSummaryComponent(
|
|
43
|
+
new BodyMdSummaryItemComponent(
|
|
44
|
+
'tech-break',
|
|
45
|
+
this.localeService.t('room.screen.tech.break.message', { lang: this.lang }),
|
|
46
|
+
)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private getSummaryPlaying () {
|
|
51
|
+
return new OneLineSummaryComponent(
|
|
52
|
+
new TitleMdSummaryItemComponent(
|
|
53
|
+
'pot',
|
|
54
|
+
this.localeService.t('room.screen.summary.pot', {
|
|
55
|
+
lang: this.lang,
|
|
56
|
+
args: { POT: formatChips(this.gameMaster?.getGameRound()?.getPot() ?? 0, this.lang, true) },
|
|
57
|
+
}),
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private getSummaryWaiting () {
|
|
63
|
+
return new OneLineSummaryComponent(
|
|
64
|
+
new BodyMdSummaryItemComponent(
|
|
65
|
+
'waiting',
|
|
66
|
+
this.localeService.t('room.screen.waiting.for.the.players', { lang: this.lang }),
|
|
67
|
+
)
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private getSummaryEnd () {
|
|
72
|
+
return new SummaryComponent(
|
|
73
|
+
[
|
|
74
|
+
new BodySmSummaryItemComponent(
|
|
75
|
+
'WINNER',
|
|
76
|
+
this.localeService.t('room.screen.summary.winner', { lang: this.lang }),
|
|
77
|
+
this.gameMaster.getGameResultHelper()?.getWinnersName() ?? '',
|
|
78
|
+
),
|
|
79
|
+
new BodySmSummaryItemComponent(
|
|
80
|
+
'NEW_GAME',
|
|
81
|
+
this.localeService.t('room.screen.summary.new.game', { lang: this.lang }),
|
|
82
|
+
this.localeService.t('room.screen.summary.new.game.value', { lang: this.lang }),
|
|
83
|
+
)
|
|
84
|
+
]
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -10,11 +10,11 @@ export class TournamentBuyTicketDialogView extends UniversalScreenDialogView {
|
|
|
10
10
|
build () {
|
|
11
11
|
return new StandardDialogComponent(
|
|
12
12
|
AppScreenDialogIdEnum.DIALOG_TOURNAMENT_BUY_TICKET,
|
|
13
|
-
this.localeService.t('common.rooms.screen.
|
|
14
|
-
this.localeService.t('common.rooms.screen.
|
|
13
|
+
this.localeService.t('common.rooms.screen.dialog.buy.ticket.title', { lang: this.lang }),
|
|
14
|
+
this.localeService.t('common.rooms.screen.dialog.buy.ticket.description', { lang: this.lang }),
|
|
15
15
|
new FullButtonsButtonsComponent(
|
|
16
|
-
new TextButtonComponent(this.localeService.t('common.rooms.screen.
|
|
17
|
-
new TextButtonComponent(this.localeService.t('common.rooms.screen.
|
|
16
|
+
new TextButtonComponent(this.localeService.t('common.rooms.screen.dialog.buy.ticket.ok', { lang: this.lang })),
|
|
17
|
+
new TextButtonComponent(this.localeService.t('common.rooms.screen.dialog.buy.ticket.cancel', { lang: this.lang })),
|
|
18
18
|
),
|
|
19
19
|
);
|
|
20
20
|
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { IBaseTableGameStateExtraButtons, IBaseTableGameStatePlayer, IBaseTableGameStateSummary, IBaseTableGameState, IBaseTableGameStateMovesPanel, IBaseTableGameStateYoursActionItem, BaseTableGameStateSummary, IAppScreenDialog } from 'jp.common.models';
|
|
2
|
-
import { GameMaster, GamePlayer } from 'jp.ms.common.engine';
|
|
3
|
-
export declare abstract class BaseTableGameStateAdapter {
|
|
4
|
-
private readonly _master;
|
|
5
|
-
private readonly _currentPlayer;
|
|
6
|
-
constructor(master: GameMaster, currentPlayer: GamePlayer);
|
|
7
|
-
getMaster<T extends GameMaster>(): T;
|
|
8
|
-
getCurrentPlayer<T extends GamePlayer>(): T;
|
|
9
|
-
get lang(): string;
|
|
10
|
-
t(key: string, options: object): string;
|
|
11
|
-
getRoomId(): string;
|
|
12
|
-
getTableTitle(): string;
|
|
13
|
-
getTableId(): string;
|
|
14
|
-
getGameId(): string;
|
|
15
|
-
getTableSize(): number;
|
|
16
|
-
getPlayerTurnTimerRemain(): number | undefined;
|
|
17
|
-
getRestartTimerRemain(): number | undefined;
|
|
18
|
-
getYoursMessage(): string;
|
|
19
|
-
getPlayerComment(player: GamePlayer): string;
|
|
20
|
-
getPlayerCommentInProgressActive(player: GamePlayer): string;
|
|
21
|
-
getPlayerCommentInProgressNotActive(player: GamePlayer): string;
|
|
22
|
-
getPlayerCommentFinish(player: GamePlayer): string;
|
|
23
|
-
getPlayer(item: GamePlayer): IBaseTableGameStatePlayer;
|
|
24
|
-
getPlayers(): Array<IBaseTableGameStatePlayer>;
|
|
25
|
-
getPlayerActions(): Array<IBaseTableGameStateYoursActionItem>;
|
|
26
|
-
getMovesPanelIsOpen(): boolean;
|
|
27
|
-
getMovesPanel(): IBaseTableGameStateMovesPanel;
|
|
28
|
-
getExtraButtons(): IBaseTableGameStateExtraButtons | undefined;
|
|
29
|
-
getSummary(): IBaseTableGameStateSummary;
|
|
30
|
-
getSummaryTechBreak(): BaseTableGameStateSummary;
|
|
31
|
-
getSummaryPlaying(): BaseTableGameStateSummary;
|
|
32
|
-
getSummaryWaiting(): BaseTableGameStateSummary;
|
|
33
|
-
getSummaryEnd(): BaseTableGameStateSummary;
|
|
34
|
-
getConfirmExitDialog(): IAppScreenDialog | undefined;
|
|
35
|
-
getState(): IBaseTableGameState;
|
|
36
|
-
}
|