修改吃牌规则, 可以吃上一张单牌
This commit is contained in:
parent
211320ffb9
commit
fd768743e0
@ -79,7 +79,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
|||||||
})
|
})
|
||||||
return
|
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', {
|
this.room.send(client, 'discard_card_s2c', {
|
||||||
errcode: 6,
|
errcode: 6,
|
||||||
errmsg: '不符合吃牌规则'
|
errmsg: '不符合吃牌规则'
|
||||||
@ -104,6 +104,9 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
for (let [key, val] of this.state.cards) {
|
||||||
|
this.state.cards.delete(key)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!gameUtil.checkDiscard(tmpCards, new GameEnv().selfEatCount)) {
|
if (!gameUtil.checkDiscard(tmpCards, new GameEnv().selfEatCount)) {
|
||||||
this.room.send(client, 'discard_card_s2c', {
|
this.room.send(client, 'discard_card_s2c', {
|
||||||
@ -112,9 +115,6 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
|||||||
})
|
})
|
||||||
return
|
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)
|
stopDrawCardClock(this.room, player)
|
||||||
|
|
||||||
for (let card of tmpCards) {
|
for (let card of tmpCards) {
|
||||||
this.state.cards.set(card.id + '', card)
|
|
||||||
player.cardQueue.push(card)
|
player.cardQueue.push(card)
|
||||||
gameUtil.deleteCardFromPlayer(player, card.id)
|
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)
|
const singleEat = !!this.state.rules.get(RULE_SINGLEEAT)
|
||||||
if (cards.length === 1
|
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 cardArr: Card[] = [...this.state.cards.values()]
|
||||||
let time = this.room.battleMan.onCardDiscarded(player, cardArr[0])
|
let time = this.room.battleMan.onCardDiscarded(player, cardArr[0])
|
||||||
await this.delay(time)
|
await this.delay(time)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user