diff --git a/src/common/Debug.ts b/src/common/Debug.ts index ac0944d..095aba5 100644 --- a/src/common/Debug.ts +++ b/src/common/Debug.ts @@ -10,5 +10,7 @@ export const robotLog = debug('jc:robot'); export const assistLog = debug('jc:assist'); +export const cardLog = debug('jc:card'); + export const error = debug('jc:error'); error.log = console.error.bind(console); diff --git a/src/rooms/commands/DiscardCommand.ts b/src/rooms/commands/DiscardCommand.ts index 1bdfd38..c7e81fe 100644 --- a/src/rooms/commands/DiscardCommand.ts +++ b/src/rooms/commands/DiscardCommand.ts @@ -65,8 +65,7 @@ export class DiscardCommand extends Command [o.id, o.effect, o.type])}`) + }, + /** + * 往玩家的卡组里添加卡 + * @param room + * @param player + * @param cards + * @param fromplayer + */ + addCardToPlayer(room: Room, player: Player, cards: Card[], fromplayer?: Player) { + this.pushInPlayerCards(player, cards); player.countTotal += cards.length; room.battleMan.onCardGetted(player, cards, fromplayer); }, @@ -233,21 +250,17 @@ let gameUtil = { changeCard(cardArr: Card[], player: Player, targetCards: Card[]): Card[] { const effectMap = global.$cfg.get(BaseConst.EFFECTCARD); let cards: Card[] = []; + let tmpCards: Card[] = []; for (let card of targetCards) { - player.cards.delete(card.id + ''); - player.cardSet.delete(card.id + ''); + tmpCards.push(card.clone()); } - cardArr.randomInsert(targetCards); + this.deleteCardFromPlayer(player, targetCards); + cardArr.randomInsert(tmpCards); let count = targetCards.length; for (let i = 0; i < count; i++) { - let card = cardArr.pop(); - if (card.type == CardType.variable_unit && effectMap.get(card.effect).type_id == EffectType.variable_unit) { - card.effect = this.getRandomServant(player); - } - cards.push(card); - player.cards.set(card.id + '', card); - player.cardSet.add(card.id + ''); + cards.push(cardArr.pop()); } + this.pushInPlayerCards(player, cards); return cards; }, /**