吃牌成功后,广播吃牌成功消息, 并增加被吃的玩家的id

This commit is contained in:
zhl 2021-02-22 11:09:56 +08:00
parent 1dd88339c1
commit cc15c95ca3

View File

@ -48,6 +48,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
this.room.send(client,'discard_card_s2c', {errcode: 3, errmsg: '不是当前轮'}); this.room.send(client,'discard_card_s2c', {errcode: 3, errmsg: '不是当前轮'});
return; return;
} }
let targetCard
if (target) { if (target) {
if (this.state.cards.size > 1) { if (this.state.cards.size > 1) {
this.room.send(client,'discard_card_s2c', {errcode: 6, errmsg: '不符合吃牌规则'}); this.room.send(client,'discard_card_s2c', {errcode: 6, errmsg: '不符合吃牌规则'});
@ -57,7 +58,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
this.room.send(client,'discard_card_s2c', {errcode: 5, errmsg: '找不到要吃的牌'}); this.room.send(client,'discard_card_s2c', {errcode: 5, errmsg: '找不到要吃的牌'});
return; return;
} }
let targetCard = this.state.cards.values().next().value.clone() targetCard = this.state.cards.values().next().value.clone()
let targetPlayer = this.state.players.get(targetCard.owner) let targetPlayer = this.state.players.get(targetCard.owner)
targetPlayer?.cardQueue.clear() targetPlayer?.cardQueue.clear()
tmpCards.push(targetCard) tmpCards.push(targetCard)
@ -108,9 +109,14 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
return [new Wait().setPayload(new GameEnv().emptyRoundTime), new TurnEndCommand()]; return [new Wait().setPayload(new GameEnv().emptyRoundTime), new TurnEndCommand()];
} else { } else {
let cardArr: Card[] = [...this.state.cards.values()]; let cardArr: Card[] = [...this.state.cards.values()];
let cardids = cardArr.map(o => o.id)
let self = this; let self = this;
this.room.send(client,'eat_card_s2c', {player: player.id, errcode: 0, errmsg: '', cards: cards}); let cardMsg: any = {player: player.id, errcode: 0, errmsg: ''}
if (targetCard) {
cardMsg.target = targetCard.owner
}
this.room.broadcast('eat_card_s2c', cardMsg, {except: client});
cardMsg.cards = cards;
this.room.send(client,'eat_card_s2c', cardMsg);
let delay = this.room.battleMan.onCardLinkOver(player, cardArr); let delay = this.room.battleMan.onCardLinkOver(player, cardArr);
player.statData.inc(StateTypeEnum.EATCOUNT, 1); player.statData.inc(StateTypeEnum.EATCOUNT, 1);
await this.delay(delay); await this.delay(delay);