根据最新规则修改添加特定卡的gm命令

This commit is contained in:
zhl 2020-12-23 19:09:41 +08:00
parent 54e3d589c1
commit 1a7a6361d5
2 changed files with 24 additions and 9 deletions

View File

@ -182,8 +182,10 @@ Object.defineProperties(Room.prototype, {
for (let i = 0; i < realCount; i++) {
let cardId = 1000 + (this.state.maxCardId ++ );
let card = gameUtil.generateCardWithEffect(effectId, cardId, options);
if (card) {
tmpCards.push(card);
}
}
let sourcePlayer;

View File

@ -47,7 +47,16 @@ let gameUtil = {
*/
generateCardWithEffect(effectId: number, preCardId: number, options?: any): Card {
let numCfgMap: Map<number, SystemCardCfg> = global.$cfg.get(BaseConst.SYSTEMCARD);
const effectMap = global.$cfg.get(BaseConst.EFFECTCARD);
let cfgs = [];
const effectCfg = effectMap.get(effectId);
if (!effectCfg) {
return null;
}
if (effectCfg.type_id == EffectType.unit) {
let point = Math.random2(1, 11) | 0;
return new Card(preCardId + 1, point, CardType.variable_unit, effectId);
} else {
for (let [, cfg] of numCfgMap) {
if (cfg.weight.indexOf(effectId + '') >= 0) {
cfgs.push(cfg);
@ -55,6 +64,8 @@ let gameUtil = {
}
let cfg: SystemCardCfg = cfgs.randomOne();
return new Card(preCardId + 1, cfg.point, cfg.type_id, effectId);
}
},
/**
*
@ -201,9 +212,10 @@ let gameUtil = {
* @param fromplayer
*/
addCardToPlayer(room: Room, player: Player, cards: Card[], fromplayer?: Player) {
const effectMap = global.$cfg.get(BaseConst.EFFECTCARD);
for (let card of cards) {
// 如果card的type == 11, 说明是自选随从卡, 则替换成玩家牌组中的卡
if (card.type == CardType.variable_unit) {
if (card.type == CardType.variable_unit && effectMap.get(card.effect).type_id == EffectType.variable_unit) {
card.effect = this.getRandomServant(player);
}
player.cards.set(card.id + '', card);
@ -219,6 +231,7 @@ let gameUtil = {
* @param targetCards
*/
changeCard(cardArr: Card[], player: Player, targetCards: Card[]): Card[] {
const effectMap = global.$cfg.get(BaseConst.EFFECTCARD);
let cards: Card[] = [];
for (let card of targetCards) {
player.cards.delete(card.id + '');
@ -228,7 +241,7 @@ let gameUtil = {
let count = targetCards.length;
for (let i = 0; i < count; i++) {
let card = cardArr.pop();
if (card.type == CardType.variable_unit) {
if (card.type == CardType.variable_unit && effectMap.get(card.effect).type_id == EffectType.variable_unit) {
card.effect = this.getRandomServant(player);
}
cards.push(card);