修正出牌超时将效果卡加入吃牌队列的bug, 修正吃牌时, 没有传fromPlayer的bug
This commit is contained in:
parent
2576e0183e
commit
ffe4d17057
@ -170,13 +170,15 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
let cardArr: Card[] = [...player.cardQueue.values()]
|
||||
let self = this
|
||||
let cardMsg: any = { player: player.id, errcode: 0, errmsg: '' }
|
||||
let targetUser
|
||||
if (targetCard) {
|
||||
cardMsg.target = targetCard.owner
|
||||
targetUser = this.state.players.get(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, targetUser)
|
||||
player.statData.inc(StateTypeEnum.EATCOUNT, 1)
|
||||
await this.delay(delay)
|
||||
let time = new GameEnv().playerActTime * 1000 + player.extraTime
|
||||
|
@ -230,6 +230,7 @@ let assistantUtil = {
|
||||
rate: number,
|
||||
noEatRate: number,
|
||||
noTripleRate: number}): {cards: Card[], nums?: number[]} {
|
||||
const pointCardArr = cardArr.filter(c => 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) {
|
||||
|
@ -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,6 +24,7 @@ export function addDrawCardClock(room: Room) {
|
||||
const client = room.getClient(sessionId)
|
||||
const card = player.cards.values().next().value
|
||||
debugRoom('出牌时间到, 自动出牌: ', card.id)
|
||||
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
|
||||
@ -34,6 +36,8 @@ export function addDrawCardClock(room: Room) {
|
||||
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(), {
|
||||
|
Loading…
x
Reference in New Issue
Block a user