修改吃牌规则, 可以吃上一张单牌
This commit is contained in:
parent
211320ffb9
commit
fd768743e0
@ -79,7 +79,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.state.cards.size > 1) {
|
||||
if (this.state.cards.size > 1 || this.state.cards.size == 0) {
|
||||
this.room.send(client, 'discard_card_s2c', {
|
||||
errcode: 6,
|
||||
errmsg: '不符合吃牌规则'
|
||||
@ -104,6 +104,9 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
})
|
||||
return
|
||||
}
|
||||
for (let [key, val] of this.state.cards) {
|
||||
this.state.cards.delete(key)
|
||||
}
|
||||
} else {
|
||||
if (!gameUtil.checkDiscard(tmpCards, new GameEnv().selfEatCount)) {
|
||||
this.room.send(client, 'discard_card_s2c', {
|
||||
@ -112,9 +115,6 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
})
|
||||
return
|
||||
}
|
||||
for (let [key, val] of this.state.cards) {
|
||||
this.state.cards.delete(key)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -122,10 +122,17 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
stopDrawCardClock(this.room, player)
|
||||
|
||||
for (let card of tmpCards) {
|
||||
this.state.cards.set(card.id + '', card)
|
||||
player.cardQueue.push(card)
|
||||
gameUtil.deleteCardFromPlayer(player, card.id)
|
||||
}
|
||||
// 如果当前出的牌只有一张, 且是法术牌或者随从牌, 则替换state.cards中的牌
|
||||
if (tmpCards.length == 1 && (tmpCards[0].type == CardType.general || tmpCards[0].type == CardType.variable_unit)) {
|
||||
for (let [key, val] of this.state.cards) {
|
||||
this.state.cards.delete(key)
|
||||
}
|
||||
let card = tmpCards[0]
|
||||
this.state.cards.set(card.id + '', card)
|
||||
}
|
||||
/**
|
||||
* 这说明是当前轮正常出牌,
|
||||
* 如果出一张牌的话, 进入胡牌轮
|
||||
@ -138,7 +145,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
})
|
||||
const singleEat = !!this.state.rules.get(RULE_SINGLEEAT)
|
||||
if (cards.length === 1
|
||||
&& !(singleEat && tmpCards.length == 1 && (tmpCards[0].type == 1 || tmpCards[0].type == 11))) {
|
||||
&& !(singleEat && tmpCards.length == 1 && (tmpCards[0].type == CardType.general || tmpCards[0].type == CardType.variable_unit))) {
|
||||
let cardArr: Card[] = [...this.state.cards.values()]
|
||||
let time = this.room.battleMan.onCardDiscarded(player, cardArr[0])
|
||||
await this.delay(time)
|
||||
|
Loading…
x
Reference in New Issue
Block a user