Merge branch 'second' of http://git.kingsome.cn/node/card_svr into second

This commit is contained in:
yuexin 2020-12-23 16:42:42 +08:00
commit 487f4b0902
3 changed files with 16 additions and 3 deletions

View File

@ -223,7 +223,9 @@ export class Robot {
@wait('playerActTime') @wait('playerActTime')
private async selectPet() { private async selectPet() {
let data = await assistantUtil.selectPet(this.player, this.room.state); let data = await assistantUtil.selectPet(this.player, this.room.state);
this.reply('select_pet_c2s', data); if (data) {
this.reply('select_pet_c2s', data);
}
} }

View File

@ -230,7 +230,9 @@ export class RobotClient implements Client {
@wait('playerActTime') @wait('playerActTime')
private async selectPet() { private async selectPet() {
let data = await assistantUtil.selectPet(this.selfPlayer, this.svrstate); let data = await assistantUtil.selectPet(this.selfPlayer, this.svrstate);
this.reply('select_pet_c2s', data) if (data) {
this.reply('select_pet_c2s', data);
}
} }
} }

View File

@ -9,6 +9,7 @@ import {Player} from "../rooms/schema/Player";
import {HeroCfg} from "../cfg/parsers/HeroCfg"; import {HeroCfg} from "../cfg/parsers/HeroCfg";
import {EffectType} from "../cfg/enums/EffectType"; import {EffectType} from "../cfg/enums/EffectType";
import {CardType} from "../cfg/enums/CardType"; import {CardType} from "../cfg/enums/CardType";
import {GameEnv} from "../cfg/GameEnv";
let assistantUtil = { let assistantUtil = {
@ -150,10 +151,15 @@ let assistantUtil = {
let effectMap: Map<number, EffectCardCfg> = global.$cfg.get(BaseConst.EFFECTCARD); let effectMap: Map<number, EffectCardCfg> = global.$cfg.get(BaseConst.EFFECTCARD);
let spellCards: Card[] = []; let spellCards: Card[] = [];
// 优先取随从 // 优先取随从
let petCount = 1;
for (let [,pet] of dstPlayer.pets) {
if (pet.state == 1) petCount ++;
}
let noMorePet = petCount >= new GameEnv().maxPlayerPetCount;
for (let card of cards) { for (let card of cards) {
let effect = effectMap.get(card.effect); let effect = effectMap.get(card.effect);
// if (effect.type_id == EffectType.unit && dstPlayer.unitCfgs.has(card.effect + '')) { // if (effect.type_id == EffectType.unit && dstPlayer.unitCfgs.has(card.effect + '')) {
if (effect.type_id == EffectType.unit) { if (effect.type_id == EffectType.unit && !noMorePet) {
result = card; result = card;
break; break;
} else if (effect.type_id == EffectType.skill) { } else if (effect.type_id == EffectType.skill) {
@ -163,6 +169,9 @@ let assistantUtil = {
if (!result) { if (!result) {
result = spellCards.randomOne(); result = spellCards.randomOne();
} }
if (!result) {
return null;
}
let targetType: SkillTargetType = CfgMan.getTargetByCard(result.effect); let targetType: SkillTargetType = CfgMan.getTargetByCard(result.effect);
let targetPlayer; let targetPlayer;
let targetPos; let targetPos;