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(), {