From ffe4d1705797ea3ba7c5d5869be269fe3d9c6c0e Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 19 Mar 2021 18:27:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=87=BA=E7=89=8C=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E5=B0=86=E6=95=88=E6=9E=9C=E5=8D=A1=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=90=83=E7=89=8C=E9=98=9F=E5=88=97=E7=9A=84bug,=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E5=90=83=E7=89=8C=E6=97=B6,=20=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=BC=A0fromPlayer=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rooms/commands/DiscardCommand.ts | 4 +++- src/utils/assistant.util.ts | 5 +++-- src/utils/clock.util.ts | 24 ++++++++++++++---------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/rooms/commands/DiscardCommand.ts b/src/rooms/commands/DiscardCommand.ts index 62d5ea9..87f5f46 100644 --- a/src/rooms/commands/DiscardCommand.ts +++ b/src/rooms/commands/DiscardCommand.ts @@ -170,13 +170,15 @@ export class DiscardCommand extends Command c.type == CardType.general || c.type == CardType.variable_unit) const { selfEat, otherEat, @@ -237,8 +238,8 @@ let assistantUtil = { normalPairs, eatSecs, normalSecs - } = this.checkDiscard({cardArr, eatCard}) - robotLog(`[discard] check: eatself: ${selfEat}, eatother: ${otherEat}, self: ${cardArr.map(o=>o.number)}, target: ${eatCard?.number}`) + } = this.checkDiscard({cardArr: pointCardArr, eatCard}) + robotLog(`[discard] check: eatself: ${selfEat}, eatother: ${otherEat}, self: ${pointCardArr.map(o=>o.number)}, target: ${eatCard?.number}`) let results: Card[] = [] let random = getRandom(0, 100) if (otherEat && random <= noEatRate) { diff --git a/src/utils/clock.util.ts b/src/utils/clock.util.ts index 7d44bb9..8e946df 100644 --- a/src/utils/clock.util.ts +++ b/src/utils/clock.util.ts @@ -7,6 +7,7 @@ import { ClockNameConst } from '../constants/ClockNameConst' import { GameEnv } from '../cfg/GameEnv' import { Player } from '../rooms/schema/Player' import { EatCard } from '../message/EatCard' +import { CardType } from '../cfg/enums/CardType' /** * 添加出牌计时器 @@ -23,17 +24,20 @@ export function addDrawCardClock(room: Room) { const client = room.getClient(sessionId) const card = player.cards.values().next().value debugRoom('出牌时间到, 自动出牌: ', card.id) - let old: EatCard = null - if (room.state.cards.size > 0) { - let card = room.state.cards.values().next().value - old = EatCard.fromCard(card) + if (card.type == CardType.general || card.type == CardType.variable_unit) { + let old: EatCard = null + if (room.state.cards.size > 0) { + let card = room.state.cards.values().next().value + old = EatCard.fromCard(card) + } + for (let [key, val] of room.state.cards) { + room.state.cards.delete(key) + } + card.round = room.state.round + room.state.cards.set(card.id + '', card) + room.bEatChange({type: 'replace', old, current: EatCard.fromCard(card)}) } - for (let [key, val] of room.state.cards) { - room.state.cards.delete(key) - } - card.round = room.state.round - room.state.cards.set(card.id + '', card) - room.bEatChange({type: 'replace', old, current: EatCard.fromCard(card)}) + player.extraTime = 0 if (client && card) { room.dispatcher.dispatch(new DiscardCommand(), {