jp.ms.common.engine 1.0.21 → 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 +5 -4
- package/dist/base/base-move-data.d.ts.map +1 -1
- package/dist/base/base-move-data.js +3 -3
- package/dist/base/base-move-data.js.map +1 -1
- 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 +9 -4
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +15 -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-game-state.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 -22
- 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 +2 -2
- package/dist/tests/just-black-jack/domain/black-jack-move-data.d.ts.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-move-data.js +3 -2
- package/dist/tests/just-black-jack/domain/black-jack-move-data.js.map +1 -1
- 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 +7 -5
- 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 +16 -5
- 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 -73
- 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 +4 -3
- 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.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/game-player-move.ts +0 -33
- package/src/base/game-summary-result.ts +0 -3
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { GameMaster, GameRoom } from '../base';
|
|
4
|
-
import { superShuffle } from '../utils';
|
|
1
|
+
import { GameMaster, GameRoom, GameRoundHistoryItem } from '../base';
|
|
5
2
|
|
|
6
3
|
import { CardsPlayer } from './cards-player';
|
|
7
4
|
import { Card } from './cards/card';
|
|
5
|
+
import { CardPairSlots } from './cards-pairs/card-pair-slots';
|
|
6
|
+
import { CardsDeck } from './cards-deck/cards-deck';
|
|
7
|
+
import { cards } from './index';
|
|
8
8
|
|
|
9
9
|
const ONE_CARD = 1;
|
|
10
10
|
const TWO_CARDS = 2;
|
|
11
11
|
const SIX_CARDS = 6;
|
|
12
12
|
|
|
13
13
|
export abstract class CardsGameMaster extends GameMaster {
|
|
14
|
-
private sourceDeck:
|
|
15
|
-
private gameDeck:
|
|
14
|
+
private sourceDeck: CardsDeck;
|
|
15
|
+
private gameDeck: CardsDeck | null;
|
|
16
16
|
private readonly gameCards: Array<Card>;
|
|
17
|
+
private readonly gameCardPairSlots: CardPairSlots;
|
|
18
|
+
private gameBaseCard: Card | undefined;
|
|
17
19
|
|
|
18
|
-
constructor (room: GameRoom
|
|
20
|
+
protected constructor (room: GameRoom) {
|
|
19
21
|
super(room);
|
|
20
|
-
this.sourceDeck =
|
|
21
|
-
this.gameDeck =
|
|
22
|
+
this.sourceDeck = CardsDeck.createFromDeckType(this.room.getDeckType() ?? '');
|
|
23
|
+
this.gameDeck = null;
|
|
22
24
|
this.gameCards = [];
|
|
25
|
+
this.gameCardPairSlots = new CardPairSlots();
|
|
26
|
+
this.gameBaseCard = undefined;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
getDeck (): CardsDeck | null {
|
|
30
|
+
return this.gameDeck;
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
takeNewDeck () {
|
|
30
|
-
this.
|
|
31
|
-
this.gameDeck =
|
|
34
|
+
this.sourceDeck.shuffle();
|
|
35
|
+
this.gameDeck = new CardsDeck(this.sourceDeck.cards);
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
getGameCards () {
|
|
@@ -36,7 +40,7 @@ export abstract class CardsGameMaster extends GameMaster {
|
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
putCardsOnTheTableFromDeck () {
|
|
39
|
-
const popCard = this.gameDeck
|
|
43
|
+
const popCard = this.gameDeck?.takeCardFromTop();
|
|
40
44
|
if (popCard) {
|
|
41
45
|
this.gameCards.push(popCard);
|
|
42
46
|
}
|
|
@@ -46,18 +50,6 @@ export abstract class CardsGameMaster extends GameMaster {
|
|
|
46
50
|
this.gameCards.push(card);
|
|
47
51
|
}
|
|
48
52
|
|
|
49
|
-
popCardFromDeck () {
|
|
50
|
-
return this.gameDeck.pop();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
pushCardToDeck (card: Card, position: number) {
|
|
54
|
-
this.gameDeck.splice(position, 0, card);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
pushCardToBeggingOfTheDeck (card: Card) {
|
|
58
|
-
this.pushCardToDeck(card, 0);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
53
|
give2CardsToAllPlayers () {
|
|
62
54
|
this.giveCardsToAllPlayers(TWO_CARDS);
|
|
63
55
|
}
|
|
@@ -77,11 +69,56 @@ export abstract class CardsGameMaster extends GameMaster {
|
|
|
77
69
|
}
|
|
78
70
|
|
|
79
71
|
giveCardsToPlayer (player: CardsPlayer, count: number) {
|
|
72
|
+
const cards: Array<Card> = [];
|
|
73
|
+
|
|
80
74
|
for (let i = 0; i < count; i += 1) {
|
|
81
|
-
const popCard = this.
|
|
75
|
+
const popCard = this.gameDeck?.takeCardFromTop();
|
|
82
76
|
if (popCard) {
|
|
77
|
+
cards.push(popCard);
|
|
83
78
|
player.takeCard(popCard);
|
|
84
79
|
}
|
|
85
80
|
}
|
|
81
|
+
|
|
82
|
+
this.getGameRound()?.addToHistory(GameRoundHistoryItem.createMasterGivesFigureItem(this.getStateId(), this._turnNumber, cards));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
getPlayersWithoutCards () {
|
|
86
|
+
return this.getTable().getPlayers<CardsPlayer>().filter((item) => !item.hasCards());
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
getPlayersWithCards () {
|
|
90
|
+
return this.getTable().getPlayers<CardsPlayer>().filter((item) => item.hasCards());
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
getGameCardPairSlots () {
|
|
94
|
+
return this.gameCardPairSlots;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
getGameBaseCard () {
|
|
98
|
+
return this.gameBaseCard;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
setGameBaseCard (card: Card) {
|
|
102
|
+
this.gameBaseCard = card;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
clearBaseCard () {
|
|
106
|
+
this.gameBaseCard = undefined;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
enableAllCards () {
|
|
110
|
+
this.getTable().getPlayers<CardsPlayer>().forEach((item) => item.enableAllCards());
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
disableAllCards () {
|
|
114
|
+
this.getTable().getPlayers<CardsPlayer>().forEach((item) => item.disableAllCards());
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
clearTargetsCards () {
|
|
118
|
+
this.getTable().getPlayers<CardsPlayer>().forEach((item) => item.clearTargetsCard());
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
clearPlayersCards () {
|
|
122
|
+
this.getTable().getPlayers<CardsPlayer>().forEach((item) => item.clearCards());
|
|
86
123
|
}
|
|
87
124
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Card } from '../cards/card';
|
|
2
|
+
|
|
3
|
+
export class CardPairSlot {
|
|
4
|
+
private readonly _id: number;
|
|
5
|
+
private _bottom: Card | null;
|
|
6
|
+
private _top: Card | null;
|
|
7
|
+
private _activated: boolean;
|
|
8
|
+
private _disabled: boolean;
|
|
9
|
+
|
|
10
|
+
constructor (id: number, activated: boolean, disabled: boolean) {
|
|
11
|
+
this._id = id;
|
|
12
|
+
this._activated = activated;
|
|
13
|
+
this._disabled = disabled;
|
|
14
|
+
this._top = null;
|
|
15
|
+
this._bottom = null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get id () {
|
|
19
|
+
return this._id;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get bottom (): Card | null {
|
|
23
|
+
return this._bottom;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
set bottom (card: Card) {
|
|
27
|
+
this._bottom = card;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get top (): Card | null {
|
|
31
|
+
return this._top;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
set top (card: Card) {
|
|
35
|
+
this._top = card;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get activated () {
|
|
39
|
+
return this._activated;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
activate () {
|
|
43
|
+
this._activated = true;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get disabled () {
|
|
47
|
+
return this._disabled;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
disable () {
|
|
51
|
+
this._disabled = true;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
enable () {
|
|
55
|
+
this._disabled = false;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
isFree () {
|
|
59
|
+
return !this.bottom && !this.top;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
isHalfOccupied () {
|
|
63
|
+
return this.bottom && !this.top;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
isOccupied () {
|
|
67
|
+
return this.bottom && this.top;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static createEmptySlot (id: number) {
|
|
71
|
+
return new CardPairSlot(id, false, true);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { compact, first } from 'lodash';
|
|
2
|
+
|
|
3
|
+
import { Card } from '../cards/card';
|
|
4
|
+
|
|
5
|
+
import { CardPairSlot } from './card-pair-slot';
|
|
6
|
+
|
|
7
|
+
export class CardPairSlots {
|
|
8
|
+
private _slots: Array<CardPairSlot>;
|
|
9
|
+
|
|
10
|
+
constructor () {
|
|
11
|
+
this._slots = [];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
init (size: number) {
|
|
15
|
+
this._slots = [];
|
|
16
|
+
|
|
17
|
+
for (let i = 0; i < size; i += 1) {
|
|
18
|
+
this._slots.push(CardPairSlot.createEmptySlot(this._slots.length));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getSlots () {
|
|
23
|
+
return this._slots;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getLength () {
|
|
27
|
+
return this._slots.length;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getSlotById (id: number) {
|
|
31
|
+
return this._slots.find((item) => item.id === id);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getFreeSlots () {
|
|
35
|
+
return this._slots.filter((pair) => pair.isFree());
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
getFreeSlot (): CardPairSlot | undefined {
|
|
39
|
+
return first(this.getFreeSlots());
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getHalfOccupiedSlots () {
|
|
43
|
+
return this._slots.filter((pair) => pair.isHalfOccupied());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getHalfOccupiedSLot (): CardPairSlot | undefined {
|
|
47
|
+
return first(this.getHalfOccupiedSlots());
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getOccupiedSlots () {
|
|
51
|
+
return this._slots.filter((pair) => pair.isOccupied());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getOccupiedSlot (): CardPairSlot | undefined {
|
|
55
|
+
return first(this.getOccupiedSlots());
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
getCardsWithoutPair (): Array<Card> {
|
|
59
|
+
return compact(this.getHalfOccupiedSlots().map((item) => item.bottom));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
isAllSlotsOccupied () {
|
|
63
|
+
return this.getOccupiedSlots().length === this.getLength();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getCards (): Array<Card> {
|
|
67
|
+
return this._slots.reduce((allCards, currentPair) => {
|
|
68
|
+
const { bottom, top } = currentPair;
|
|
69
|
+
if (bottom) {
|
|
70
|
+
allCards.push(bottom);
|
|
71
|
+
}
|
|
72
|
+
if (top) {
|
|
73
|
+
allCards.push(top);
|
|
74
|
+
}
|
|
75
|
+
return allCards;
|
|
76
|
+
}, [] as Array<Card>);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
hasNoCards () {
|
|
80
|
+
return this.getCards().length === 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
putCard (id: number, card: Card) {
|
|
84
|
+
const slot = this.getSlotById(id);
|
|
85
|
+
if (slot) {
|
|
86
|
+
slot.bottom = card;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
putCardOnCard (id: number, card: Card) {
|
|
91
|
+
const slot = this.getSlotById(id);
|
|
92
|
+
if (slot) {
|
|
93
|
+
slot.top = card;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
disableAllSlots () {
|
|
98
|
+
this._slots.forEach((item) => item.disable());
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
clearSlots () {
|
|
102
|
+
this._slots = [];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,41 +1,89 @@
|
|
|
1
|
-
import { first, remove } from 'lodash';
|
|
1
|
+
import { concat, first, intersectionBy, remove } from 'lodash';
|
|
2
2
|
|
|
3
|
-
import { GamePlayer } from '../base';
|
|
3
|
+
import { GamePlayer, IGamePlayerConfig } from '../base';
|
|
4
4
|
|
|
5
5
|
import { Card } from './cards/card';
|
|
6
6
|
|
|
7
7
|
export abstract class CardsPlayer extends GamePlayer {
|
|
8
|
-
private
|
|
8
|
+
private _cards: Array<Card>;
|
|
9
|
+
private _usingCards: Array<Card>;
|
|
9
10
|
|
|
10
|
-
protected constructor (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
balance: number,
|
|
15
|
-
) {
|
|
16
|
-
super(id, fullName, avatarUrl, balance);
|
|
17
|
-
this.cards = [];
|
|
11
|
+
protected constructor (config: IGamePlayerConfig) {
|
|
12
|
+
super(config);
|
|
13
|
+
this._cards = [];
|
|
14
|
+
this._usingCards = [];
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
getCards (): Array<Card> {
|
|
21
|
-
return this.
|
|
18
|
+
return this._cards;
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
return this.
|
|
21
|
+
getCardById (cardId: number | undefined): Card | undefined {
|
|
22
|
+
return this._cards.find((item) => item.getId() === cardId);
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
this.
|
|
25
|
+
hasCards (): boolean {
|
|
26
|
+
return this._cards.length > 0 || this._usingCards.length > 0;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
takeCard (card: Card): void {
|
|
33
|
-
this.
|
|
30
|
+
this._cards.push(card);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
takeCards (cards: Array<Card>): void {
|
|
34
|
+
this._cards = concat(this._cards, cards);
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
clearCards () {
|
|
38
|
+
this._cards = [];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
putCard (puttingCard: Card): Card | undefined {
|
|
42
|
+
const removedCards = remove(this._cards, (card: Card) => card.getId() === puttingCard.getId());
|
|
43
|
+
const removedCard = first<Card | undefined>(removedCards);
|
|
44
|
+
|
|
45
|
+
if (removedCard) {
|
|
46
|
+
this._usingCards.push(removedCard);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return removedCard;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
getCardsWithRank (cards: Array<Card>): Array<Card> {
|
|
53
|
+
return intersectionBy(this._cards, cards, (card) => card.getRank());
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
hasCardsWithRank (cards: Array<Card>): boolean {
|
|
57
|
+
return this.getCardsWithRank(cards).length > 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
enableAllCards () {
|
|
61
|
+
this._cards.forEach((item) => item.enable());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
disableAllCards () {
|
|
65
|
+
this._cards.forEach((item) => item.disable());
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
hasEnabledCards (): boolean {
|
|
69
|
+
return this._cards.some((card) => card.isEnable);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
clearTargetsCard () {
|
|
73
|
+
this._cards.forEach((item) => item.clearTargets());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
clearUsingCards () {
|
|
77
|
+
this._usingCards = [];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
removeUsingCard (card: Card) {
|
|
81
|
+
remove(this._usingCards, (item: Card) => item.id === card.id)
|
|
82
|
+
}
|
|
38
83
|
|
|
39
|
-
|
|
84
|
+
flush () {
|
|
85
|
+
super.flush();
|
|
86
|
+
this._cards = [];
|
|
87
|
+
this._usingCards = [];
|
|
40
88
|
}
|
|
41
89
|
}
|
package/src/cards-game/index.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as cards from './cards/cards';
|
|
2
2
|
import { Card } from './cards/card';
|
|
3
|
-
import { deck36 } from './cards/deck36';
|
|
4
|
-
import { deck52 } from './cards/deck52';
|
|
3
|
+
import { deck36 } from './cards-deck/types/deck36';
|
|
4
|
+
import { deck52 } from './cards-deck/types/deck52';
|
|
5
5
|
import { Ranks } from './cards/ranks';
|
|
6
6
|
import { Suits } from './cards/suits';
|
|
7
7
|
import { CardsGameMaster } from './cards-game-master';
|
|
8
8
|
import { CardsPlayer } from './cards-player';
|
|
9
|
+
import { CardPairSlots } from './cards-pairs/card-pair-slots';
|
|
10
|
+
import { CardPairSlot } from './cards-pairs/card-pair-slot';
|
|
11
|
+
import { CardsDeck } from './cards-deck/cards-deck';
|
|
9
12
|
|
|
10
13
|
export {
|
|
11
14
|
cards,
|
|
@@ -16,4 +19,7 @@ export {
|
|
|
16
19
|
Suits,
|
|
17
20
|
CardsGameMaster,
|
|
18
21
|
CardsPlayer,
|
|
22
|
+
CardPairSlots,
|
|
23
|
+
CardPairSlot,
|
|
24
|
+
CardsDeck,
|
|
19
25
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export class BaseGameEvent {}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseMoveData, GameMaster, GamePlayer, GameRoom } from '../../base';
|
|
2
|
+
|
|
3
|
+
import { GameTableEvent } from './game-table.event';
|
|
4
|
+
|
|
5
|
+
export class GamePlayerEvent extends GameTableEvent {
|
|
6
|
+
private readonly _player: GamePlayer;
|
|
7
|
+
private readonly _move?: BaseMoveData;
|
|
8
|
+
|
|
9
|
+
constructor (room: GameRoom, master: GameMaster, player: GamePlayer, move?: BaseMoveData) {
|
|
10
|
+
super(room, master);
|
|
11
|
+
this._player = player;
|
|
12
|
+
this._move = move;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
get getPlayerId (): string {
|
|
16
|
+
return this._player.id;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
get getPlayerFullName (): string {
|
|
20
|
+
return this._player.fullName;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get getMoveAction (): string {
|
|
24
|
+
return this._move?.action ?? '';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GameRoom } from '../../base';
|
|
2
|
+
|
|
3
|
+
import { BaseGameEvent } from './base-game.event';
|
|
4
|
+
|
|
5
|
+
export class GameRoomEvent extends BaseGameEvent {
|
|
6
|
+
private readonly _room: GameRoom;
|
|
7
|
+
|
|
8
|
+
get roomId (): string {
|
|
9
|
+
return this._room.getId();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
constructor (room: GameRoom) {
|
|
13
|
+
super();
|
|
14
|
+
this._room = room;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GameMaster, GameRoom } from '../../base';
|
|
2
|
+
|
|
3
|
+
import { GameRoomEvent } from './game-room.event';
|
|
4
|
+
|
|
5
|
+
export class GameTableEvent extends GameRoomEvent {
|
|
6
|
+
private readonly _master: GameMaster;
|
|
7
|
+
|
|
8
|
+
constructor (room: GameRoom, master: GameMaster) {
|
|
9
|
+
super(room);
|
|
10
|
+
this._master = master;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get tableId (): string {
|
|
14
|
+
return this._master.getId();
|
|
15
|
+
}
|
|
16
|
+
}
|