jp.ms.common.engine 1.0.20 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/base-figure-type.enum.d.ts +4 -0
- package/dist/base/base-figure-type.enum.d.ts.map +1 -0
- package/dist/base/base-figure-type.enum.js +8 -0
- package/dist/base/base-figure-type.enum.js.map +1 -0
- package/dist/base/base-figure.d.ts +10 -0
- package/dist/base/base-figure.d.ts.map +1 -0
- package/dist/base/base-figure.js +20 -0
- package/dist/base/base-figure.js.map +1 -0
- package/dist/base/base-move-data.d.ts +7 -0
- package/dist/base/base-move-data.d.ts.map +1 -0
- package/dist/base/base-move-data.js +13 -0
- package/dist/base/base-move-data.js.map +1 -0
- package/dist/base/base-player-move-factory.d.ts +10 -0
- package/dist/base/base-player-move-factory.d.ts.map +1 -0
- package/dist/base/base-player-move-factory.js +13 -0
- package/dist/base/base-player-move-factory.js.map +1 -0
- package/dist/base/base-player-move.d.ts +17 -0
- package/dist/base/base-player-move.d.ts.map +1 -0
- package/dist/base/base-player-move.js +24 -0
- package/dist/base/base-player-move.js.map +1 -0
- package/dist/base/game-control-player-turn.d.ts +1 -0
- package/dist/base/game-control-player-turn.d.ts.map +1 -1
- package/dist/base/game-control-player-turn.js +6 -0
- package/dist/base/game-control-player-turn.js.map +1 -1
- package/dist/base/game-control-restart.d.ts +1 -0
- package/dist/base/game-control-restart.d.ts.map +1 -1
- package/dist/base/game-control-restart.js +5 -0
- package/dist/base/game-control-restart.js.map +1 -1
- package/dist/base/game-master.d.ts +94 -30
- package/dist/base/game-master.d.ts.map +1 -1
- package/dist/base/game-master.js +351 -55
- package/dist/base/game-master.js.map +1 -1
- package/dist/base/game-player-connections-helper.d.ts +3 -12
- package/dist/base/game-player-connections-helper.d.ts.map +1 -1
- package/dist/base/game-player-connections-helper.js +10 -16
- package/dist/base/game-player-connections-helper.js.map +1 -1
- package/dist/base/game-player-exited.d.ts +15 -0
- package/dist/base/game-player-exited.d.ts.map +1 -0
- package/dist/base/game-player-exited.js +29 -0
- package/dist/base/game-player-exited.js.map +1 -0
- package/dist/base/game-player.d.ts +76 -45
- package/dist/base/game-player.d.ts.map +1 -1
- package/dist/base/game-player.js +164 -98
- package/dist/base/game-player.js.map +1 -1
- package/dist/base/game-result-equal-helper.d.ts +6 -0
- package/dist/base/game-result-equal-helper.d.ts.map +1 -0
- package/dist/base/game-result-equal-helper.js +19 -0
- package/dist/base/game-result-equal-helper.js.map +1 -0
- package/dist/base/game-result-helper.d.ts +13 -0
- package/dist/base/game-result-helper.d.ts.map +1 -0
- package/dist/base/game-result-helper.js +24 -0
- package/dist/base/game-result-helper.js.map +1 -0
- package/dist/base/game-result-rating-helper.d.ts +18 -0
- package/dist/base/game-result-rating-helper.d.ts.map +1 -0
- package/dist/base/game-result-rating-helper.js +32 -0
- package/dist/base/game-result-rating-helper.js.map +1 -0
- package/dist/base/game-room.d.ts +38 -7
- package/dist/base/game-room.d.ts.map +1 -1
- package/dist/base/game-room.js +67 -10
- package/dist/base/game-room.js.map +1 -1
- package/dist/base/game-round-history-item.d.ts +25 -0
- package/dist/base/game-round-history-item.d.ts.map +1 -0
- package/dist/base/game-round-history-item.enum.d.ts +7 -0
- package/dist/base/game-round-history-item.enum.d.ts.map +1 -0
- package/dist/base/game-round-history-item.enum.js +11 -0
- package/dist/base/game-round-history-item.enum.js.map +1 -0
- package/dist/base/game-round-history-item.js +52 -0
- package/dist/base/game-round-history-item.js.map +1 -0
- package/dist/base/game-round.d.ts +16 -9
- package/dist/base/game-round.d.ts.map +1 -1
- package/dist/base/game-round.js +34 -0
- package/dist/base/game-round.js.map +1 -1
- package/dist/base/game-state-machine.d.ts +5 -0
- package/dist/base/game-state-machine.d.ts.map +1 -1
- package/dist/base/game-state-machine.js.map +1 -1
- package/dist/base/game-table-seat.d.ts +10 -3
- package/dist/base/game-table-seat.d.ts.map +1 -1
- package/dist/base/game-table-seat.js +43 -2
- package/dist/base/game-table-seat.js.map +1 -1
- package/dist/base/game-table-seats.d.ts +4 -6
- package/dist/base/game-table-seats.d.ts.map +1 -1
- package/dist/base/game-table-seats.js +13 -27
- package/dist/base/game-table-seats.js.map +1 -1
- package/dist/base/game-table.d.ts +24 -21
- package/dist/base/game-table.d.ts.map +1 -1
- package/dist/base/game-table.js +72 -42
- package/dist/base/game-table.js.map +1 -1
- package/dist/base/index.d.ts +10 -5
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +17 -3
- package/dist/base/index.js.map +1 -1
- package/dist/base-rooms/simple-room.d.ts +7 -7
- package/dist/base-rooms/simple-room.d.ts.map +1 -1
- package/dist/base-rooms/simple-room.js +5 -4
- package/dist/base-rooms/simple-room.js.map +1 -1
- package/dist/base-rooms/tournament-state.d.ts +1 -1
- package/dist/base-rooms/tournament-state.d.ts.map +1 -1
- package/dist/base-rooms/tournament-state.js +1 -1
- package/dist/base-rooms/tournament-state.js.map +1 -1
- package/dist/cards-game/cards/card.d.ts +14 -14
- package/dist/cards-game/cards/card.d.ts.map +1 -1
- package/dist/cards-game/cards/card.js +36 -17
- package/dist/cards-game/cards/card.js.map +1 -1
- package/dist/cards-game/cards-deck/cards-deck-type.enum.d.ts +8 -0
- package/dist/cards-game/cards-deck/cards-deck-type.enum.d.ts.map +1 -0
- package/dist/cards-game/cards-deck/cards-deck-type.enum.js +12 -0
- package/dist/cards-game/cards-deck/cards-deck-type.enum.js.map +1 -0
- package/dist/cards-game/cards-deck/cards-deck.d.ts +23 -0
- package/dist/cards-game/cards-deck/cards-deck.d.ts.map +1 -0
- package/dist/cards-game/cards-deck/cards-deck.js +84 -0
- package/dist/cards-game/cards-deck/cards-deck.js.map +1 -0
- package/dist/cards-game/cards-deck/types/deck12.d.ts +2 -0
- package/dist/cards-game/cards-deck/types/deck12.d.ts.map +1 -0
- package/dist/cards-game/cards-deck/types/deck12.js +19 -0
- package/dist/cards-game/cards-deck/types/deck12.js.map +1 -0
- package/dist/cards-game/cards-deck/types/deck24.d.ts +2 -0
- package/dist/cards-game/cards-deck/types/deck24.d.ts.map +1 -0
- package/dist/cards-game/cards-deck/types/deck24.js +31 -0
- package/dist/cards-game/cards-deck/types/deck24.js.map +1 -0
- package/dist/cards-game/cards-deck/types/deck36.d.ts +2 -0
- package/dist/cards-game/cards-deck/types/deck36.d.ts.map +1 -0
- package/dist/cards-game/{cards → cards-deck/types}/deck36.js +1 -1
- package/dist/cards-game/cards-deck/types/deck36.js.map +1 -0
- package/dist/cards-game/cards-deck/types/deck52.d.ts +2 -0
- package/dist/cards-game/cards-deck/types/deck52.d.ts.map +1 -0
- package/dist/cards-game/{cards → cards-deck/types}/deck52.js +1 -1
- package/dist/cards-game/cards-deck/types/deck52.js.map +1 -0
- package/dist/cards-game/cards-game-master.d.ts +16 -5
- package/dist/cards-game/cards-game-master.d.ts.map +1 -1
- package/dist/cards-game/cards-game-master.js +49 -20
- package/dist/cards-game/cards-game-master.js.map +1 -1
- package/dist/cards-game/cards-pairs/card-pair-slot.d.ts +24 -0
- package/dist/cards-game/cards-pairs/card-pair-slot.d.ts.map +1 -0
- package/dist/cards-game/cards-pairs/card-pair-slot.js +56 -0
- package/dist/cards-game/cards-pairs/card-pair-slot.js.map +1 -0
- package/dist/cards-game/cards-pairs/card-pair-slots.d.ts +25 -0
- package/dist/cards-game/cards-pairs/card-pair-slots.d.ts.map +1 -0
- package/dist/cards-game/cards-pairs/card-pair-slots.js +84 -0
- package/dist/cards-game/cards-pairs/card-pair-slots.js.map +1 -0
- package/dist/cards-game/cards-player.d.ts +17 -5
- package/dist/cards-game/cards-player.d.ts.map +1 -1
- package/dist/cards-game/cards-player.js +51 -11
- package/dist/cards-game/cards-player.js.map +1 -1
- package/dist/cards-game/index.d.ts +6 -3
- package/dist/cards-game/index.d.ts.map +1 -1
- package/dist/cards-game/index.js +9 -3
- package/dist/cards-game/index.js.map +1 -1
- package/dist/events/base/base-game.event.d.ts +3 -0
- package/dist/events/base/base-game.event.d.ts.map +1 -0
- package/dist/events/base/base-game.event.js +7 -0
- package/dist/events/base/base-game.event.js.map +1 -0
- package/dist/events/base/game-player.event.d.ts +11 -0
- package/dist/events/base/game-player.event.d.ts.map +1 -0
- package/dist/events/base/game-player.event.js +23 -0
- package/dist/events/base/game-player.event.js.map +1 -0
- package/dist/events/base/game-room.event.d.ts +8 -0
- package/dist/events/base/game-room.event.d.ts.map +1 -0
- package/dist/events/base/game-room.event.js +15 -0
- package/dist/events/base/game-room.event.js.map +1 -0
- package/dist/events/base/game-table.event.d.ts +8 -0
- package/dist/events/base/game-table.event.d.ts.map +1 -0
- package/dist/events/base/game-table.event.js +15 -0
- package/dist/events/base/game-table.event.js.map +1 -0
- package/dist/events/game/game-player-activate.event.d.ts +4 -0
- package/dist/events/game/game-player-activate.event.d.ts.map +1 -0
- package/dist/events/game/game-player-activate.event.js +8 -0
- package/dist/events/game/game-player-activate.event.js.map +1 -0
- package/dist/events/game/game-player-activated.event.d.ts +4 -0
- package/dist/events/game/game-player-activated.event.d.ts.map +1 -0
- package/dist/events/game/game-player-activated.event.js +8 -0
- package/dist/events/game/game-player-activated.event.js.map +1 -0
- package/dist/events/game/game-player-deactivate.event.d.ts +4 -0
- package/dist/events/game/game-player-deactivate.event.d.ts.map +1 -0
- package/dist/events/game/game-player-deactivate.event.js +8 -0
- package/dist/events/game/game-player-deactivate.event.js.map +1 -0
- package/dist/events/game/game-player-deactivated.event.d.ts +4 -0
- package/dist/events/game/game-player-deactivated.event.d.ts.map +1 -0
- package/dist/events/game/game-player-deactivated.event.js +8 -0
- package/dist/events/game/game-player-deactivated.event.js.map +1 -0
- package/dist/events/game/game-player-enter-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-enter-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-enter-the-table.event.js +8 -0
- package/dist/events/game/game-player-enter-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-entered-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-entered-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-entered-the-table.event.js +8 -0
- package/dist/events/game/game-player-entered-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-exit-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-exit-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-exit-the-table.event.js +8 -0
- package/dist/events/game/game-player-exit-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-exited-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-exited-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-exited-the-table.event.js +8 -0
- package/dist/events/game/game-player-exited-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-kick-out-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-kick-out-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-kick-out-the-table.event.js +8 -0
- package/dist/events/game/game-player-kick-out-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-kicked-out-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-kicked-out-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-kicked-out-the-table.event.js +8 -0
- package/dist/events/game/game-player-kicked-out-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-move-on-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-move-on-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-move-on-the-table.event.js +8 -0
- package/dist/events/game/game-player-move-on-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-moved-on-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-moved-on-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-moved-on-the-table.event.js +8 -0
- package/dist/events/game/game-player-moved-on-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-turn-timer-executed.event.d.ts +4 -0
- package/dist/events/game/game-player-turn-timer-executed.event.d.ts.map +1 -0
- package/dist/events/game/game-player-turn-timer-executed.event.js +8 -0
- package/dist/events/game/game-player-turn-timer-executed.event.js.map +1 -0
- package/dist/events/game/game-player-turn-timer-set-off.event.d.ts +4 -0
- package/dist/events/game/game-player-turn-timer-set-off.event.d.ts.map +1 -0
- package/dist/events/game/game-player-turn-timer-set-off.event.js +8 -0
- package/dist/events/game/game-player-turn-timer-set-off.event.js.map +1 -0
- package/dist/events/game/game-player-turn-timer-set-on.event.d.ts +4 -0
- package/dist/events/game/game-player-turn-timer-set-on.event.d.ts.map +1 -0
- package/dist/events/game/game-player-turn-timer-set-on.event.js +8 -0
- package/dist/events/game/game-player-turn-timer-set-on.event.js.map +1 -0
- package/dist/events/game/game-player-watch-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-watch-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-watch-the-table.event.js +8 -0
- package/dist/events/game/game-player-watch-the-table.event.js.map +1 -0
- package/dist/events/game/game-player-watched-the-table.event.d.ts +4 -0
- package/dist/events/game/game-player-watched-the-table.event.d.ts.map +1 -0
- package/dist/events/game/game-player-watched-the-table.event.js +8 -0
- package/dist/events/game/game-player-watched-the-table.event.js.map +1 -0
- package/dist/events/game/game-room-room-created.event.d.ts +4 -0
- package/dist/events/game/game-room-room-created.event.d.ts.map +1 -0
- package/dist/events/game/game-room-room-created.event.js +8 -0
- package/dist/events/game/game-room-room-created.event.js.map +1 -0
- package/dist/events/game/game-table-finish.event.d.ts +4 -0
- package/dist/events/game/game-table-finish.event.d.ts.map +1 -0
- package/dist/events/game/game-table-finish.event.js +8 -0
- package/dist/events/game/game-table-finish.event.js.map +1 -0
- package/dist/events/game/game-table-finished.event.d.ts +4 -0
- package/dist/events/game/game-table-finished.event.d.ts.map +1 -0
- package/dist/events/game/game-table-finished.event.js +8 -0
- package/dist/events/game/game-table-finished.event.js.map +1 -0
- package/dist/events/game/game-table-master-created.event.d.ts +4 -0
- package/dist/events/game/game-table-master-created.event.d.ts.map +1 -0
- package/dist/events/game/game-table-master-created.event.js +8 -0
- package/dist/events/game/game-table-master-created.event.js.map +1 -0
- package/dist/events/game/game-table-restart-timer-executed.event.d.ts +4 -0
- package/dist/events/game/game-table-restart-timer-executed.event.d.ts.map +1 -0
- package/dist/events/game/game-table-restart-timer-executed.event.js +8 -0
- package/dist/events/game/game-table-restart-timer-executed.event.js.map +1 -0
- package/dist/events/game/game-table-restart-timer-set-on.event.d.ts +4 -0
- package/dist/events/game/game-table-restart-timer-set-on.event.d.ts.map +1 -0
- package/dist/events/game/game-table-restart-timer-set-on.event.js +8 -0
- package/dist/events/game/game-table-restart-timer-set-on.event.js.map +1 -0
- package/dist/events/game/game-table-restart.event.d.ts +4 -0
- package/dist/events/game/game-table-restart.event.d.ts.map +1 -0
- package/dist/events/game/game-table-restart.event.js +8 -0
- package/dist/events/game/game-table-restart.event.js.map +1 -0
- package/dist/events/game/game-table-restarted.event.d.ts +4 -0
- package/dist/events/game/game-table-restarted.event.d.ts.map +1 -0
- package/dist/events/game/game-table-restarted.event.js +8 -0
- package/dist/events/game/game-table-restarted.event.js.map +1 -0
- package/dist/events/game/game-table-start.event.d.ts +4 -0
- package/dist/events/game/game-table-start.event.d.ts.map +1 -0
- package/dist/events/game/game-table-start.event.js +8 -0
- package/dist/events/game/game-table-start.event.js.map +1 -0
- package/dist/events/game/game-table-started.event.d.ts +4 -0
- package/dist/events/game/game-table-started.event.d.ts.map +1 -0
- package/dist/events/game/game-table-started.event.js +8 -0
- package/dist/events/game/game-table-started.event.js.map +1 -0
- package/dist/events/game/game-table-turn-finish.event.d.ts +4 -0
- package/dist/events/game/game-table-turn-finish.event.d.ts.map +1 -0
- package/dist/events/game/game-table-turn-finish.event.js +8 -0
- package/dist/events/game/game-table-turn-finish.event.js.map +1 -0
- package/dist/events/game/game-table-turn-finished.event.d.ts +4 -0
- package/dist/events/game/game-table-turn-finished.event.d.ts.map +1 -0
- package/dist/events/game/game-table-turn-finished.event.js +8 -0
- package/dist/events/game/game-table-turn-finished.event.js.map +1 -0
- package/dist/events/game/game-table-turn-start.event.d.ts +4 -0
- package/dist/events/game/game-table-turn-start.event.d.ts.map +1 -0
- package/dist/events/game/game-table-turn-start.event.js +8 -0
- package/dist/events/game/game-table-turn-start.event.js.map +1 -0
- package/dist/events/game/game-table-turn-started.event.d.ts +4 -0
- package/dist/events/game/game-table-turn-started.event.d.ts.map +1 -0
- package/dist/events/game/game-table-turn-started.event.js +8 -0
- package/dist/events/game/game-table-turn-started.event.js.map +1 -0
- package/dist/events/game/game-table-wait.event.d.ts +4 -0
- package/dist/events/game/game-table-wait.event.d.ts.map +1 -0
- package/dist/events/game/game-table-wait.event.js +8 -0
- package/dist/events/game/game-table-wait.event.js.map +1 -0
- package/dist/events/game/game-table-waited.event.d.ts +4 -0
- package/dist/events/game/game-table-waited.event.d.ts.map +1 -0
- package/dist/events/game/game-table-waited.event.js +8 -0
- package/dist/events/game/game-table-waited.event.js.map +1 -0
- package/dist/events/index.d.ts +40 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +82 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/ws/base-ws-event.d.ts +3 -0
- package/dist/events/ws/base-ws-event.d.ts.map +1 -0
- package/dist/events/ws/base-ws-event.js +7 -0
- package/dist/events/ws/base-ws-event.js.map +1 -0
- package/dist/events/ws/ws-event.d.ts +8 -0
- package/dist/events/ws/ws-event.d.ts.map +1 -0
- package/dist/events/ws/ws-event.enum.d.ts +6 -0
- package/dist/events/ws/ws-event.enum.d.ts.map +1 -0
- package/dist/events/ws/ws-event.enum.js +10 -0
- package/dist/events/ws/ws-event.enum.js.map +1 -0
- package/dist/events/ws/ws-event.js +14 -0
- package/dist/events/ws/ws-event.js.map +1 -0
- package/dist/exceptions/index.d.ts +4 -0
- package/dist/exceptions/index.d.ts.map +1 -0
- package/dist/exceptions/index.js +10 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/not-active-player-move.exception.d.ts +5 -0
- package/dist/exceptions/not-active-player-move.exception.d.ts.map +1 -0
- package/dist/exceptions/not-active-player-move.exception.js +13 -0
- package/dist/exceptions/not-active-player-move.exception.js.map +1 -0
- package/dist/exceptions/not-implemented.exception.d.ts +5 -0
- package/dist/exceptions/not-implemented.exception.d.ts.map +1 -0
- package/dist/exceptions/not-implemented.exception.js +13 -0
- package/dist/exceptions/not-implemented.exception.js.map +1 -0
- package/dist/exceptions/not-valid-player-move.exception.d.ts +5 -0
- package/dist/exceptions/not-valid-player-move.exception.d.ts.map +1 -0
- package/dist/exceptions/not-valid-player-move.exception.js +13 -0
- package/dist/exceptions/not-valid-player-move.exception.js.map +1 -0
- package/dist/exceptions/player-has-no-possible-move.exception.d.ts +5 -0
- package/dist/exceptions/player-has-no-possible-move.exception.d.ts.map +1 -0
- package/dist/exceptions/player-has-no-possible-move.exception.js +13 -0
- package/dist/exceptions/player-has-no-possible-move.exception.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/level-helper/base-game-level-helper.d.ts +16 -0
- package/dist/level-helper/base-game-level-helper.d.ts.map +1 -0
- package/dist/level-helper/base-game-level-helper.js +60 -0
- package/dist/level-helper/base-game-level-helper.js.map +1 -0
- package/dist/level-helper/experiences-amount.enum.d.ts +6 -0
- package/dist/level-helper/experiences-amount.enum.d.ts.map +1 -0
- package/dist/level-helper/experiences-amount.enum.js +10 -0
- package/dist/level-helper/experiences-amount.enum.js.map +1 -0
- package/dist/level-helper/experiences-level-edge.enum.d.ts +5 -0
- package/dist/level-helper/experiences-level-edge.enum.d.ts.map +1 -0
- package/dist/level-helper/experiences-level-edge.enum.js +9 -0
- package/dist/level-helper/experiences-level-edge.enum.js.map +1 -0
- package/dist/level-helper/experiences-level-rank.enum.d.ts +6 -0
- package/dist/level-helper/experiences-level-rank.enum.d.ts.map +1 -0
- package/dist/level-helper/experiences-level-rank.enum.js +10 -0
- package/dist/level-helper/experiences-level-rank.enum.js.map +1 -0
- package/dist/level-helper/index.d.ts +4 -0
- package/dist/level-helper/index.d.ts.map +1 -0
- package/dist/level-helper/index.js +10 -0
- package/dist/level-helper/index.js.map +1 -0
- package/dist/strategies/index.d.ts +4 -0
- package/dist/strategies/index.d.ts.map +1 -0
- package/dist/strategies/index.js +8 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/strategies/max-players-strategy.d.ts +6 -0
- package/dist/strategies/max-players-strategy.d.ts.map +1 -0
- package/dist/strategies/max-players-strategy.js +10 -0
- package/dist/strategies/max-players-strategy.js.map +1 -0
- package/dist/strategies/min-players-strategy.d.ts +6 -0
- package/dist/strategies/min-players-strategy.d.ts.map +1 -0
- package/dist/strategies/min-players-strategy.js +10 -0
- package/dist/strategies/min-players-strategy.js.map +1 -0
- package/dist/strategies/start-strategy-interface.d.ts +5 -0
- package/dist/strategies/start-strategy-interface.d.ts.map +1 -0
- package/dist/{base/base-move-data.type.js → strategies/start-strategy-interface.js} +1 -1
- package/dist/strategies/start-strategy-interface.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js +10 -2
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts +14 -25
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js +46 -61
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-game-result-helper.d.ts +8 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-result-helper.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-result-helper.js +16 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-result-helper.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-move-data.d.ts +7 -0
- package/dist/tests/just-black-jack/domain/black-jack-move-data.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-move-data.js +15 -0
- package/dist/tests/just-black-jack/domain/black-jack-move-data.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player-actions.enum.d.ts +5 -0
- package/dist/tests/just-black-jack/domain/black-jack-player-actions.enum.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player-actions.enum.js +9 -0
- package/dist/tests/just-black-jack/domain/black-jack-player-actions.enum.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts +6 -4
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-player.js +10 -7
- package/dist/tests/just-black-jack/domain/black-jack-player.js.map +1 -1
- package/dist/tests/just-black-jack/domain/moves/black-jack-move-factory.d.ts +7 -0
- package/dist/tests/just-black-jack/domain/moves/black-jack-move-factory.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/moves/black-jack-move-factory.js +25 -0
- package/dist/tests/just-black-jack/domain/moves/black-jack-move-factory.js.map +1 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-finish-move.d.ts +6 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-finish-move.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-finish-move.js +14 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-finish-move.js.map +1 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-get-card.d.ts +6 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-get-card.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-get-card.js +14 -0
- package/dist/tests/just-black-jack/domain/moves/list/black-jack-player-move-get-card.js.map +1 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.d.ts.map +1 -1
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js +1 -2
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js.map +1 -1
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js +240 -20
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js.map +1 -1
- package/dist/tests/just-black-jack/tests/common.d.ts +0 -6
- package/dist/tests/just-black-jack/tests/common.d.ts.map +1 -1
- package/dist/tests/just-black-jack/tests/common.js +19 -9
- package/dist/tests/just-black-jack/tests/common.js.map +1 -1
- package/dist/utils/circle-list.d.ts +9 -13
- package/dist/utils/circle-list.d.ts.map +1 -1
- package/dist/utils/circle-list.js +11 -20
- package/dist/utils/circle-list.js.map +1 -1
- package/dist/utils/tests/circle-list.test.d.ts +5 -1
- package/dist/utils/tests/circle-list.test.d.ts.map +1 -1
- package/dist/utils/tests/circle-list.test.js +21 -13
- package/dist/utils/tests/circle-list.test.js.map +1 -1
- package/dist/utils/timer.d.ts +2 -0
- package/dist/utils/timer.d.ts.map +1 -0
- package/dist/utils/timer.js +16 -0
- package/dist/utils/timer.js.map +1 -0
- package/package.json +3 -1
- package/src/base/base-figure-type.enum.ts +3 -0
- package/src/base/base-figure.ts +23 -0
- package/src/base/base-move-data.ts +13 -0
- package/src/base/base-player-move-factory.ts +18 -0
- package/src/base/base-player-move.ts +37 -0
- package/src/base/game-control-player-turn.ts +7 -1
- package/src/base/game-control-restart.ts +7 -1
- package/src/base/game-master.ts +525 -107
- package/src/base/game-player-connections-helper.ts +12 -20
- package/src/base/game-player-exited.ts +37 -0
- package/src/base/game-player.ts +230 -122
- package/src/base/game-result-equal-helper.ts +17 -0
- package/src/base/game-result-helper.ts +36 -0
- package/src/base/game-result-rating-helper.ts +44 -0
- package/src/base/game-room.ts +105 -18
- package/src/base/game-round-history-item.enum.ts +6 -0
- package/src/base/game-round-history-item.ts +110 -0
- package/src/base/game-round.ts +56 -10
- package/src/base/game-state-machine.ts +10 -0
- package/src/base/game-table-seat.ts +57 -6
- package/src/base/game-table-seats.ts +14 -29
- package/src/base/game-table.ts +92 -59
- package/src/base/index.ts +18 -7
- package/src/base-rooms/simple-room.ts +14 -12
- package/src/base-rooms/tournament-state.ts +1 -1
- package/src/cards-game/cards/card.ts +50 -28
- package/src/cards-game/cards-deck/cards-deck-type.enum.ts +8 -0
- package/src/cards-game/cards-deck/cards-deck.ts +105 -0
- package/src/cards-game/cards-deck/types/deck12.ts +32 -0
- package/src/cards-game/cards-deck/types/deck24.ts +56 -0
- package/src/cards-game/{cards → cards-deck/types}/deck36.ts +1 -1
- package/src/cards-game/{cards → cards-deck/types}/deck52.ts +1 -1
- package/src/cards-game/cards-game-master.ts +64 -27
- package/src/cards-game/cards-pairs/card-pair-slot.ts +73 -0
- package/src/cards-game/cards-pairs/card-pair-slots.ts +104 -0
- package/src/cards-game/cards-player.ts +68 -20
- package/src/cards-game/index.ts +8 -2
- package/src/events/base/base-game.event.ts +1 -0
- package/src/events/base/game-player.event.ts +26 -0
- package/src/events/base/game-room.event.ts +16 -0
- package/src/events/base/game-table.event.ts +16 -0
- package/src/events/game/game-player-activate.event.ts +3 -0
- package/src/events/game/game-player-activated.event.ts +3 -0
- package/src/events/game/game-player-deactivate.event.ts +3 -0
- package/src/events/game/game-player-deactivated.event.ts +3 -0
- package/src/events/game/game-player-enter-the-table.event.ts +3 -0
- package/src/events/game/game-player-entered-the-table.event.ts +3 -0
- package/src/events/game/game-player-exit-the-table.event.ts +3 -0
- package/src/events/game/game-player-exited-the-table.event.ts +3 -0
- package/src/events/game/game-player-kick-out-the-table.event.ts +3 -0
- package/src/events/game/game-player-kicked-out-the-table.event.ts +3 -0
- package/src/events/game/game-player-move-on-the-table.event.ts +3 -0
- package/src/events/game/game-player-moved-on-the-table.event.ts +3 -0
- package/src/events/game/game-player-turn-timer-executed.event.ts +3 -0
- package/src/events/game/game-player-turn-timer-set-off.event.ts +3 -0
- package/src/events/game/game-player-turn-timer-set-on.event.ts +3 -0
- package/src/events/game/game-player-watch-the-table.event.ts +3 -0
- package/src/events/game/game-player-watched-the-table.event.ts +3 -0
- package/src/events/game/game-room-room-created.event.ts +3 -0
- package/src/events/game/game-table-finish.event.ts +3 -0
- package/src/events/game/game-table-finished.event.ts +3 -0
- package/src/events/game/game-table-master-created.event.ts +3 -0
- package/src/events/game/game-table-restart-timer-executed.event.ts +3 -0
- package/src/events/game/game-table-restart-timer-set-on.event.ts +3 -0
- package/src/events/game/game-table-restart.event.ts +3 -0
- package/src/events/game/game-table-restarted.event.ts +3 -0
- package/src/events/game/game-table-start.event.ts +3 -0
- package/src/events/game/game-table-started.event.ts +3 -0
- package/src/events/game/game-table-turn-finish.event.ts +3 -0
- package/src/events/game/game-table-turn-finished.event.ts +3 -0
- package/src/events/game/game-table-turn-start.event.ts +3 -0
- package/src/events/game/game-table-turn-started.event.ts +3 -0
- package/src/events/game/game-table-wait.event.ts +3 -0
- package/src/events/game/game-table-waited.event.ts +3 -0
- package/src/events/index.ts +40 -0
- package/src/events/ws/base-ws-event.ts +1 -0
- package/src/events/ws/ws-event.enum.ts +5 -0
- package/src/events/ws/ws-event.ts +14 -0
- package/src/exceptions/index.ts +3 -0
- package/src/exceptions/not-active-player-move.exception.ts +10 -0
- package/src/exceptions/not-implemented.exception.ts +10 -0
- package/src/exceptions/not-valid-player-move.exception.ts +10 -0
- package/src/exceptions/player-has-no-possible-move.exception.ts +10 -0
- package/src/index.ts +3 -1
- package/src/level-helper/base-game-level-helper.ts +74 -0
- package/src/level-helper/experiences-amount.enum.ts +5 -0
- package/src/level-helper/experiences-level-edge.enum.ts +4 -0
- package/src/level-helper/experiences-level-rank.enum.ts +5 -0
- package/src/level-helper/index.ts +3 -0
- package/src/strategies/index.ts +3 -0
- package/src/strategies/max-players-strategy.ts +8 -0
- package/src/strategies/min-players-strategy.ts +8 -0
- package/src/strategies/start-strategy-interface.ts +5 -0
- package/src/tests/just-black-jack/domain/black-jack-dealer.ts +15 -10
- package/src/tests/just-black-jack/domain/black-jack-game-master.ts +53 -76
- package/src/tests/just-black-jack/domain/black-jack-game-result-helper.ts +15 -0
- package/src/tests/just-black-jack/domain/black-jack-move-data.ts +14 -0
- package/src/tests/just-black-jack/domain/black-jack-player-actions.enum.ts +4 -0
- package/src/tests/just-black-jack/domain/black-jack-player.ts +19 -19
- package/src/tests/just-black-jack/domain/moves/black-jack-move-factory.ts +24 -0
- package/src/tests/just-black-jack/domain/moves/list/black-jack-player-move-finish-move.ts +12 -0
- package/src/tests/just-black-jack/domain/moves/list/black-jack-player-move-get-card.ts +13 -0
- package/src/tests/just-black-jack/rooms/black-jack-simple-room.ts +3 -4
- package/src/tests/just-black-jack/tests/black-jack-simple-room.test.ts +392 -75
- package/src/tests/just-black-jack/tests/common.ts +20 -56
- package/src/utils/circle-list.ts +27 -39
- package/src/utils/tests/circle-list.test.ts +14 -9
- package/src/utils/timer.ts +14 -0
- package/dist/base/base-game-state.type.d.ts +0 -8
- package/dist/base/base-game-state.type.d.ts.map +0 -1
- package/dist/base/base-game-state.type.js +0 -3
- package/dist/base/base-game-state.type.js.map +0 -1
- package/dist/base/base-move-data.type.d.ts +0 -4
- package/dist/base/base-move-data.type.d.ts.map +0 -1
- package/dist/base/base-move-data.type.js.map +0 -1
- package/dist/base/game-player-move.d.ts +0 -13
- package/dist/base/game-player-move.d.ts.map +0 -1
- package/dist/base/game-player-move.js +0 -28
- package/dist/base/game-player-move.js.map +0 -1
- package/dist/base/game-summary-result.d.ts +0 -3
- package/dist/base/game-summary-result.d.ts.map +0 -1
- package/dist/base/game-summary-result.js +0 -7
- package/dist/base/game-summary-result.js.map +0 -1
- package/dist/cards-game/cards/deck36.d.ts +0 -2
- package/dist/cards-game/cards/deck36.d.ts.map +0 -1
- package/dist/cards-game/cards/deck36.js.map +0 -1
- package/dist/cards-game/cards/deck52.d.ts +0 -2
- package/dist/cards-game/cards/deck52.d.ts.map +0 -1
- package/dist/cards-game/cards/deck52.js.map +0 -1
- package/src/base/base-game-state.type.ts +0 -7
- package/src/base/base-move-data.type.ts +0 -3
- package/src/base/game-player-move.ts +0 -33
- package/src/base/game-summary-result.ts +0 -3
package/src/base/game-room.ts
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
|
-
import { first, remove } from 'lodash';
|
|
1
|
+
import { findIndex, first, remove } from 'lodash';
|
|
2
|
+
|
|
3
|
+
import { IStartStrategy } from '../strategies';
|
|
4
|
+
import { BaseGameEvent } from '../events';
|
|
5
|
+
import { GameRoomRoomCreatedEvent } from '../events';
|
|
2
6
|
|
|
3
7
|
import { GameTable, GameTableConfig } from './game-table';
|
|
4
8
|
import { GameMaster } from './game-master';
|
|
9
|
+
import { GamePlayer } from './game-player';
|
|
10
|
+
|
|
11
|
+
export interface LocalService {
|
|
12
|
+
t (key: string, options: object): string;
|
|
13
|
+
}
|
|
5
14
|
|
|
6
|
-
export
|
|
15
|
+
export interface GameRoomConfig {
|
|
7
16
|
id: string;
|
|
8
17
|
gameType: string;
|
|
9
18
|
roomType: string;
|
|
10
19
|
rulesType: string;
|
|
20
|
+
deckType?: string;
|
|
11
21
|
maxPlayers: number;
|
|
12
22
|
bet: number;
|
|
23
|
+
ticketPrice: number;
|
|
13
24
|
title: Record<string, string>;
|
|
14
25
|
subtitle: Record<string, string>;
|
|
15
26
|
turnTimeout: number;
|
|
16
27
|
restartTimeout: number;
|
|
28
|
+
localeService: LocalService;
|
|
29
|
+
startStrategy: IStartStrategy;
|
|
30
|
+
onRoomEvent?: (event: BaseGameEvent) => void;
|
|
31
|
+
onRoomTableGameFinished?: (master: GameMaster) => void;
|
|
17
32
|
}
|
|
18
33
|
|
|
19
34
|
export abstract class GameRoom {
|
|
@@ -21,35 +36,51 @@ export abstract class GameRoom {
|
|
|
21
36
|
private readonly gameType: string;
|
|
22
37
|
private readonly roomType: string;
|
|
23
38
|
private readonly rulesType: string;
|
|
39
|
+
private readonly deckType?: string;
|
|
24
40
|
private readonly maxPlayers: number;
|
|
25
41
|
private readonly bet: number;
|
|
42
|
+
private readonly ticketPrice: number;
|
|
26
43
|
private readonly title: Record<string, string>;
|
|
27
44
|
private readonly subtitle: Record<string, string>;
|
|
28
45
|
private readonly turnTimeout: number;
|
|
29
46
|
private readonly restartTimeout: number;
|
|
30
47
|
private createdTableCount: number;
|
|
31
48
|
private readonly masters: Array<GameMaster>;
|
|
49
|
+
private readonly localeService: LocalService;
|
|
50
|
+
readonly startStrategy: IStartStrategy;
|
|
51
|
+
private techBreak: boolean;
|
|
52
|
+
private roomQueue: Map<string, GamePlayer>;
|
|
53
|
+
onRoomEvent: (event: BaseGameEvent) => void;
|
|
54
|
+
onRoomTableGameFinished: (master: GameMaster) => void;
|
|
32
55
|
|
|
33
56
|
constructor (config: GameRoomConfig) {
|
|
34
57
|
this.masters = [];
|
|
35
58
|
this.createdTableCount = 0;
|
|
59
|
+
this.roomQueue = new Map();
|
|
60
|
+
this.techBreak = false;
|
|
36
61
|
this.id = config.id;
|
|
37
62
|
this.roomType = config.roomType;
|
|
38
63
|
this.rulesType = config.rulesType;
|
|
39
64
|
this.maxPlayers = config.maxPlayers;
|
|
40
65
|
this.gameType = config.gameType;
|
|
66
|
+
this.deckType = config.deckType;
|
|
41
67
|
this.bet = config.bet;
|
|
68
|
+
this.ticketPrice = config.ticketPrice;
|
|
42
69
|
this.title = config.title;
|
|
43
70
|
this.subtitle = config.subtitle;
|
|
44
71
|
this.turnTimeout = config.turnTimeout;
|
|
45
72
|
this.restartTimeout = config.restartTimeout;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
73
|
+
this.localeService = config.localeService;
|
|
74
|
+
this.startStrategy = config.startStrategy;
|
|
75
|
+
this.onRoomEvent = config.onRoomEvent ?? function () {
|
|
76
|
+
};
|
|
77
|
+
this.onRoomTableGameFinished = config.onRoomTableGameFinished ?? function () {
|
|
78
|
+
};
|
|
49
79
|
|
|
50
|
-
|
|
80
|
+
this.onRoomEvent(new GameRoomRoomCreatedEvent(this));
|
|
81
|
+
}
|
|
51
82
|
|
|
52
|
-
abstract
|
|
83
|
+
abstract createMaster (room: GameRoom): GameMaster;
|
|
53
84
|
|
|
54
85
|
getId () {
|
|
55
86
|
return this.id;
|
|
@@ -60,13 +91,17 @@ export abstract class GameRoom {
|
|
|
60
91
|
}
|
|
61
92
|
|
|
62
93
|
getGameType () {
|
|
63
|
-
return this.
|
|
94
|
+
return this.gameType;
|
|
64
95
|
}
|
|
65
96
|
|
|
66
97
|
getRulesType () {
|
|
67
98
|
return this.rulesType;
|
|
68
99
|
}
|
|
69
100
|
|
|
101
|
+
getDeckType () {
|
|
102
|
+
return this.deckType;
|
|
103
|
+
}
|
|
104
|
+
|
|
70
105
|
getMaxPlayers () {
|
|
71
106
|
return this.maxPlayers;
|
|
72
107
|
}
|
|
@@ -75,17 +110,17 @@ export abstract class GameRoom {
|
|
|
75
110
|
return this.masters;
|
|
76
111
|
}
|
|
77
112
|
|
|
78
|
-
getTables (): Array<GameTable> {
|
|
79
|
-
return this.masters.map(((item) => item.getTable()));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
113
|
getFirstMaster (): GameMaster | undefined {
|
|
83
114
|
return first(this.getMasters());
|
|
84
115
|
}
|
|
85
116
|
|
|
86
|
-
|
|
117
|
+
getTables (): Array<GameTable> {
|
|
118
|
+
return this.masters.map(((item) => item.getTable()));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
getTableWithFreeSeats (): GameTable | undefined {
|
|
87
122
|
return this.masters.find((master) =>
|
|
88
|
-
master.getTable().
|
|
123
|
+
master.getTable().getPlayersWithQueue().length < master.getTable().getTableSize())?.getTable();
|
|
89
124
|
}
|
|
90
125
|
|
|
91
126
|
remainOneMaster (): boolean {
|
|
@@ -105,7 +140,7 @@ export abstract class GameRoom {
|
|
|
105
140
|
}
|
|
106
141
|
|
|
107
142
|
addMaster (): void {
|
|
108
|
-
this.masters.push(this.createMaster());
|
|
143
|
+
this.masters.push(this.createMaster(this));
|
|
109
144
|
this.createdTableCount += 1;
|
|
110
145
|
}
|
|
111
146
|
|
|
@@ -113,13 +148,67 @@ export abstract class GameRoom {
|
|
|
113
148
|
remove(this.masters, (master) => master.getId() === masterId);
|
|
114
149
|
}
|
|
115
150
|
|
|
151
|
+
restartTable (masterId: string): void {
|
|
152
|
+
const index = findIndex(this.masters, (item) => item.getId() === masterId);
|
|
153
|
+
if (index !== -1) {
|
|
154
|
+
this.masters.splice(index, 1, this.createMaster(this));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
116
158
|
getBet () {
|
|
117
159
|
return this.bet;
|
|
118
160
|
}
|
|
119
161
|
|
|
162
|
+
getTicketPrice () {
|
|
163
|
+
return this.ticketPrice;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
getRoomQueue () {
|
|
167
|
+
return Array.from(this.roomQueue.values());
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getRoomQueuerById (playerId: string) {
|
|
171
|
+
return this.roomQueue.get(playerId);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
getOnlineQueuers () {
|
|
175
|
+
return this.getRoomQueue().filter((item) => item.hasOpenConnection());
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
addUserRoomToQueue (player: GamePlayer) {
|
|
179
|
+
this.roomQueue.set(player.id, player);
|
|
180
|
+
player.becomeRoomQueuer(this);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
removeUserFromQueue (player: GamePlayer) {
|
|
184
|
+
this.roomQueue.delete(player.id);
|
|
185
|
+
player.quit();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
clearRoomQueue () {
|
|
189
|
+
this.roomQueue.forEach((player) => player.quit());
|
|
190
|
+
this.roomQueue.clear();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
isTechBreak () {
|
|
194
|
+
return this.techBreak;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
techBreakOn () {
|
|
198
|
+
this.techBreak = true;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
techBreakOff () {
|
|
202
|
+
this.techBreak = false;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
getLocaleService () {
|
|
206
|
+
return this.localeService;
|
|
207
|
+
}
|
|
208
|
+
|
|
120
209
|
getConfigForTable (): GameTableConfig {
|
|
121
210
|
return {
|
|
122
|
-
|
|
211
|
+
room: this,
|
|
123
212
|
number: this.getFreeTableNumber(),
|
|
124
213
|
tableSize: this.getMaxPlayers(),
|
|
125
214
|
bet: this.getBet(),
|
|
@@ -128,8 +217,6 @@ export abstract class GameRoom {
|
|
|
128
217
|
subtitle: this.subtitle,
|
|
129
218
|
turnTimeout: this.turnTimeout,
|
|
130
219
|
restartTimeout: this.restartTimeout,
|
|
131
|
-
onRoomFinishRound: this.handleFinishRound,
|
|
132
|
-
onRoomRestartRound: this.handleRestartRound,
|
|
133
220
|
};
|
|
134
221
|
}
|
|
135
222
|
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { BaseMoveData } from './base-move-data';
|
|
2
|
+
import { BaseFigure } from './base-figure';
|
|
3
|
+
import { GameRoundHistoryItemEnum } from './game-round-history-item.enum';
|
|
4
|
+
|
|
5
|
+
const MASTER_ID = 'GAME_MASTER';
|
|
6
|
+
|
|
7
|
+
export class GameRoundHistoryItem {
|
|
8
|
+
private readonly _userId: string;
|
|
9
|
+
private readonly _fullName: string;
|
|
10
|
+
private readonly _date: Date;
|
|
11
|
+
private readonly _actionType: string;
|
|
12
|
+
private readonly _state: string;
|
|
13
|
+
private readonly _turnNumber: number;
|
|
14
|
+
private readonly _move?: BaseMoveData | null;
|
|
15
|
+
private readonly _figures?: Array<BaseFigure> | null;
|
|
16
|
+
|
|
17
|
+
constructor (
|
|
18
|
+
userId: string,
|
|
19
|
+
fullName: string,
|
|
20
|
+
state: string,
|
|
21
|
+
actionType: string,
|
|
22
|
+
turnNumber: number,
|
|
23
|
+
move: BaseMoveData | null,
|
|
24
|
+
figures: Array<BaseFigure> | null,
|
|
25
|
+
) {
|
|
26
|
+
this._userId = userId;
|
|
27
|
+
this._fullName = fullName;
|
|
28
|
+
this._date = new Date();
|
|
29
|
+
this._actionType = actionType;
|
|
30
|
+
this._turnNumber = turnNumber;
|
|
31
|
+
this._state = state;
|
|
32
|
+
this._move = move;
|
|
33
|
+
this._figures = figures;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get userId () {
|
|
37
|
+
return this._userId;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
get fullName () {
|
|
41
|
+
return this._fullName;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get date () {
|
|
45
|
+
return this._date;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get state () {
|
|
49
|
+
return this._state;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
get actionType () {
|
|
53
|
+
return this._actionType;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
get turnNumber () {
|
|
57
|
+
return this._turnNumber;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get move () {
|
|
61
|
+
return this._move;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
get figures () {
|
|
65
|
+
return this._figures;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static createMasterItem (
|
|
69
|
+
state: string,
|
|
70
|
+
actionType: string,
|
|
71
|
+
turnNumber: number,
|
|
72
|
+
figures: Array<BaseFigure>,
|
|
73
|
+
) {
|
|
74
|
+
return new GameRoundHistoryItem(
|
|
75
|
+
MASTER_ID,
|
|
76
|
+
MASTER_ID,
|
|
77
|
+
state,
|
|
78
|
+
actionType,
|
|
79
|
+
turnNumber,
|
|
80
|
+
null,
|
|
81
|
+
figures,
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static createMasterGivesFigureItem (
|
|
86
|
+
state: string,
|
|
87
|
+
turnNumber: number,
|
|
88
|
+
figures: Array<BaseFigure>,
|
|
89
|
+
) {
|
|
90
|
+
return GameRoundHistoryItem.createMasterItem(state, GameRoundHistoryItemEnum.MASTER_GIVES_FIGURES, turnNumber, figures);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
static createPlayerMove (
|
|
94
|
+
userId: string,
|
|
95
|
+
fullName: string,
|
|
96
|
+
state: string,
|
|
97
|
+
turnNumber: number,
|
|
98
|
+
move: BaseMoveData
|
|
99
|
+
) {
|
|
100
|
+
return new GameRoundHistoryItem(
|
|
101
|
+
userId,
|
|
102
|
+
fullName,
|
|
103
|
+
state,
|
|
104
|
+
GameRoundHistoryItemEnum.PLAYER_MOVE,
|
|
105
|
+
turnNumber,
|
|
106
|
+
move,
|
|
107
|
+
null,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
package/src/base/game-round.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { v4 as uidv4 } from 'uuid';
|
|
|
2
2
|
|
|
3
3
|
import { GamePlayer } from './game-player';
|
|
4
4
|
import { GameStateMachine } from './game-state-machine';
|
|
5
|
+
import { GameRoundHistoryItem } from './game-round-history-item';
|
|
6
|
+
import { GamePlayerExited } from './game-player-exited';
|
|
7
|
+
import { differenceWith } from 'lodash';
|
|
5
8
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
date: Date;
|
|
10
|
-
action: string;
|
|
11
|
-
state: string;
|
|
9
|
+
interface PlayerRank {
|
|
10
|
+
rank: number;
|
|
11
|
+
player: GamePlayerExited;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export class GameRound {
|
|
@@ -16,21 +16,23 @@ export class GameRound {
|
|
|
16
16
|
private id: string;
|
|
17
17
|
private pot: number;
|
|
18
18
|
private state: GameStateMachine;
|
|
19
|
-
private activePlayer: GamePlayer;
|
|
19
|
+
private activePlayer: GamePlayer | null = null;
|
|
20
|
+
private rating: Array<Array<GamePlayerExited>>;
|
|
20
21
|
|
|
21
22
|
constructor (state: GameStateMachine) {
|
|
22
23
|
this.id = uidv4();
|
|
23
24
|
this.pot = 0;
|
|
24
25
|
this.history = [];
|
|
25
26
|
this.state = state;
|
|
27
|
+
this.rating = [];
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
getId (): string {
|
|
29
31
|
return this.id;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
getState ():
|
|
33
|
-
return this.state;
|
|
34
|
+
getState<T extends GameStateMachine> (): T {
|
|
35
|
+
return this.state as T;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
getHistory (): Array<GameRoundHistoryItem> {
|
|
@@ -49,12 +51,56 @@ export class GameRound {
|
|
|
49
51
|
return this.pot;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
getActivePlayer () {
|
|
54
|
+
getActivePlayer (): GamePlayer | null {
|
|
53
55
|
return this.activePlayer;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
setActivePlayer (activePlayer: GamePlayer) {
|
|
57
59
|
this.activePlayer = activePlayer;
|
|
58
60
|
}
|
|
61
|
+
|
|
62
|
+
clearActivePlayer () {
|
|
63
|
+
this.activePlayer = null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getRating () {
|
|
67
|
+
return this.rating;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
addPlayersToRating (newPlayers: Array<GamePlayer>) {
|
|
71
|
+
const onlyNewPlayers = differenceWith(
|
|
72
|
+
newPlayers,
|
|
73
|
+
this.getRatingPlayers(),
|
|
74
|
+
(newPlayer, ratingPlayer) => newPlayer.id === ratingPlayer.id,
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
if (onlyNewPlayers.length > 0) {
|
|
78
|
+
this.rating.push(onlyNewPlayers.map((item) => new GamePlayerExited(item)));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
getPlayerRankGroup () {
|
|
83
|
+
return this.rating.reduce<Array<PlayerRank>>(
|
|
84
|
+
(accumulator, currentPack, index) => {
|
|
85
|
+
currentPack.forEach((item) => {
|
|
86
|
+
accumulator.push({
|
|
87
|
+
rank: index + 1,
|
|
88
|
+
player: item,
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
return accumulator;
|
|
93
|
+
},
|
|
94
|
+
[],
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
getRatingPlayers () {
|
|
99
|
+
return this.getPlayerRankGroup().map((item) => item.player);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
getPlayerRank (player: GamePlayer): number {
|
|
103
|
+
return this.getPlayerRankGroup().find((item) => item.player.id === player.id)?.rank ?? 0;
|
|
104
|
+
}
|
|
59
105
|
}
|
|
60
106
|
|
|
@@ -5,6 +5,16 @@ export abstract class GameStateMachine {
|
|
|
5
5
|
private currentState: string;
|
|
6
6
|
private config: StateMachineConfig;
|
|
7
7
|
|
|
8
|
+
abstract toStart ();
|
|
9
|
+
|
|
10
|
+
abstract toFinish ();
|
|
11
|
+
|
|
12
|
+
abstract isWaiting ();
|
|
13
|
+
|
|
14
|
+
abstract isInProgress ();
|
|
15
|
+
|
|
16
|
+
abstract isFinish ();
|
|
17
|
+
|
|
8
18
|
protected constructor (initialState: string, config: StateMachineConfig) {
|
|
9
19
|
this.config = config;
|
|
10
20
|
this.initialState = initialState;
|
|
@@ -1,21 +1,26 @@
|
|
|
1
|
+
import { CircleListNode } from '../utils';
|
|
2
|
+
|
|
1
3
|
import { GamePlayer } from './game-player';
|
|
2
4
|
|
|
3
|
-
export class GameTableSeat {
|
|
5
|
+
export class GameTableSeat extends CircleListNode {
|
|
6
|
+
private readonly number: number
|
|
4
7
|
private player: GamePlayer | null = null;
|
|
5
|
-
private role: string | null;
|
|
8
|
+
private role: string | null = null;
|
|
6
9
|
|
|
7
|
-
constructor (
|
|
10
|
+
constructor (number: number) {
|
|
11
|
+
super();
|
|
12
|
+
this.number = number;
|
|
8
13
|
}
|
|
9
14
|
|
|
10
|
-
|
|
15
|
+
getRole () {
|
|
11
16
|
return this.role;
|
|
12
17
|
}
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
setRole (role: string) {
|
|
15
20
|
this.role = role;
|
|
16
21
|
}
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
clearRole () {
|
|
19
24
|
this.role = null;
|
|
20
25
|
}
|
|
21
26
|
|
|
@@ -34,4 +39,50 @@ export class GameTableSeat {
|
|
|
34
39
|
removePlayer () {
|
|
35
40
|
this.player = null;
|
|
36
41
|
}
|
|
42
|
+
|
|
43
|
+
getNextSeat (): GameTableSeat | null {
|
|
44
|
+
return this.getNext<GameTableSeat>();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getNextSeatWithPlayer (): GameTableSeat | null {
|
|
48
|
+
let firstNode = this;
|
|
49
|
+
let nextNode = this.getNextSeat();
|
|
50
|
+
|
|
51
|
+
while (firstNode !== nextNode) {
|
|
52
|
+
if (nextNode?.getPlayer()) {
|
|
53
|
+
return nextNode;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
nextNode = nextNode?.getNextSeat() ?? null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getNextPlayer<T> (): T | null {
|
|
63
|
+
return this.getNextSeatWithPlayer()?.getPlayer() as T | null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getPrevSeat (): GameTableSeat | null {
|
|
67
|
+
return this.getPrev<GameTableSeat>();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
getPrevSeatWithPlayer (): GameTableSeat | null {
|
|
71
|
+
let firstNode = this;
|
|
72
|
+
let preNode = this.getPrevSeat();
|
|
73
|
+
|
|
74
|
+
while (firstNode !== preNode) {
|
|
75
|
+
if (preNode?.getPlayer()) {
|
|
76
|
+
return preNode;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
preNode = preNode?.getPrevSeat() ?? null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
getPrevPlayer<T> (): T | null {
|
|
86
|
+
return this.getPrevSeatWithPlayer()?.getPlayer() as T | null;
|
|
87
|
+
}
|
|
37
88
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { compact } from 'lodash';
|
|
1
|
+
import { compact, first } from 'lodash';
|
|
2
2
|
|
|
3
3
|
import { CircleList } from '../utils';
|
|
4
4
|
import { TWO_PLAYER_GAME } from '../const';
|
|
@@ -13,7 +13,7 @@ export class GameTableSeats {
|
|
|
13
13
|
this.seats = new CircleList();
|
|
14
14
|
|
|
15
15
|
for (let i = 0; i < this.tableSize; i += 1) {
|
|
16
|
-
this.seats.push(new GameTableSeat(i
|
|
16
|
+
this.seats.push(new GameTableSeat(i));
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -25,45 +25,30 @@ export class GameTableSeats {
|
|
|
25
25
|
return this.seats.toArray().filter((item) => !!item.getPlayer());
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
return this.
|
|
28
|
+
getFirstSeat (): GameTableSeat | null {
|
|
29
|
+
return first(this.getSeats()) ?? null;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
return this.
|
|
32
|
+
getFirstSeatWithPlayer (): GameTableSeat | null {
|
|
33
|
+
return first(this.getSeatsWithPlayers()) ?? null;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const nextPlayer = nextSeat?.getPlayer();
|
|
39
|
-
|
|
40
|
-
if (!nextPlayer) {
|
|
41
|
-
return this.getNextPlayer(nextSeat?.getNumber() ?? 0);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return nextPlayer;
|
|
36
|
+
findFreeSeat (): GameTableSeat | undefined {
|
|
37
|
+
return this.seats.toArray().find((seat) => seat.getPlayer() === null);
|
|
45
38
|
}
|
|
46
39
|
|
|
47
|
-
|
|
48
|
-
return this.seats.
|
|
40
|
+
getSeatByRole (role: string) {
|
|
41
|
+
return this.seats.toArray().find((item) => item.getRole() === role);
|
|
49
42
|
}
|
|
50
43
|
|
|
51
|
-
|
|
52
|
-
return this.
|
|
44
|
+
getSeatByNumber (number: number | null): GameTableSeat | undefined {
|
|
45
|
+
return this.seats.toArray().find((item) => item.getNumber() === number);
|
|
53
46
|
}
|
|
54
47
|
|
|
55
|
-
getPlayersChain (from: number): Array<
|
|
48
|
+
getPlayersChain<T extends GamePlayer> (from: number): Array<T> {
|
|
56
49
|
const chain = this.seats.getNextChain(from).map((item) => item.getPlayer());
|
|
57
50
|
|
|
58
|
-
return compact(chain)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
getFirstSeatWithPlayer (): GameTableSeat | null {
|
|
62
|
-
return this.getSeatsWithPlayers()[0] ?? null;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
findFreeSeat (): GameTableSeat | undefined {
|
|
66
|
-
return this.seats.toArray().find((seat) => seat.getPlayer() === null);
|
|
51
|
+
return compact(chain) as Array<T>;
|
|
67
52
|
}
|
|
68
53
|
|
|
69
54
|
clearAllSeatsRole () {
|