比大小出牌后, 将card信息存入player.cardQueue

This commit is contained in:
zhl 2021-03-30 14:08:40 +08:00
parent 072d7092ba
commit e7021949a6
3 changed files with 14 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import { Client } from 'colyseus'
import { error } from '../../common/Debug' import { error } from '../../common/Debug'
import { DiceResultCommand } from './DiceResultCommand' import { DiceResultCommand } from './DiceResultCommand'
import { GameStateConst } from '../../constants/GameStateConst' import { GameStateConst } from '../../constants/GameStateConst'
import gameUtil from '../../utils/game.util'
/** /**
* *
@ -28,6 +29,7 @@ export class DiceCommand extends Command<CardGameState, { client: Client, cards:
} }
let cardIds = [] let cardIds = []
for (let id of cards) { for (let id of cards) {
if (player.cards.has(id + '')) { if (player.cards.has(id + '')) {
if (!player.cards.get(id + '').number) { if (!player.cards.get(id + '').number) {
@ -35,7 +37,8 @@ export class DiceCommand extends Command<CardGameState, { client: Client, cards:
continue continue
} }
const card = player.cards.get(id + '').clone() const card = player.cards.get(id + '').clone()
player.cards.delete(id + '') player.cardQueue.push(card)
gameUtil.deleteCardFromPlayer(player, card.id)
cardIds.push(card) cardIds.push(card)
} else { } else {
error(`${ player.id } 出的牌 ${ id } 在手牌中不存在`) error(`${ player.id } 出的牌 ${ id } 在手牌中不存在`)

View File

@ -7,6 +7,9 @@ export class DiceNextTurnCommand extends Command<CardGameState, {}> {
async execute() { async execute() {
this.state.round += 1 this.state.round += 1
this.state.updateGameState(GameStateConst.STATE_DICE_TURN) this.state.updateGameState(GameStateConst.STATE_DICE_TURN)
for (let [,player] of this.state.players) {
player.cardQueue.clear()
}
return [new DiceDrawCommand()] return [new DiceDrawCommand()]
} }
} }

View File

@ -1,9 +1,16 @@
import { Command } from '@colyseus/command' import { Command } from '@colyseus/command'
import { CardGameState } from '../schema/CardGameState' import { CardGameState } from '../schema/CardGameState'
import { DiceNextTurnCommand } from './DiceNextTurnCommand' import { DiceNextTurnCommand } from './DiceNextTurnCommand'
import gameUtil from '../../utils/game.util'
import { GameResultCommand } from './GameResultCommand'
export class DiceTurnEndCommand extends Command<CardGameState, {}> { export class DiceTurnEndCommand extends Command<CardGameState, {}> {
async execute() { async execute() {
// 判断是否胜利
let result = gameUtil.checkGameEnd(this.state)
if (result) {
return [new GameResultCommand()]
}
return [new DiceNextTurnCommand()] return [new DiceNextTurnCommand()]
} }
} }