镇念塔:检查武将需要根据皮肤变化

This commit is contained in:
luying
2022-07-06 14:15:57 +08:00
parent 6ab443c29f
commit 4bce1dbefc
3 changed files with 10 additions and 10 deletions

View File

@@ -69,7 +69,7 @@ export class NormalBattleHandler {
if (preBattle == -1) return resResult(STATUS.BATTLE_NEED_PREVIOUS_GK);
}
let { isOK, hids, lineup } = await checkBattleHeroes(roleId, seqIds);
let { isOK, hids, heroes, lineup } = await checkBattleHeroes(roleId, seqIds);
if (!isOK) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
const battleCode = genCode(8); // 关卡唯一值
@@ -83,7 +83,7 @@ export class NormalBattleHandler {
}
dailyNum = Object.assign(dailyNum, checkResult.data);
} else if (warInfo.warType == WAR_TYPE.TOWER) {
let checkResult = await checkTowerWar(roleId, battleId, seqIds, hids);
let checkResult = await checkTowerWar(roleId, battleId, seqIds, heroes);
if (checkResult.status == -1) {
return checkResult.resResult
}

View File

@@ -309,7 +309,7 @@ export class TowerBattleHandler {
let { warStatus, heroes: recHeroes } = await getTowerRecByLv(roleId, role.towerLv);
// 检查战力是否足够
let heroes = await HeroModel.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce', true);
let heroes = await HeroModel.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce job', true);
let recommendCeSum = 0, heroesCeSum = 0;
let newWarStar: WarStar[] = [];
for(let { warId, status } of warStatus) {
@@ -318,7 +318,7 @@ export class TowerBattleHandler {
recommendCeSum += dicWar.recommendedPower;
let heroNum = 0;
for(let hero of heroes) {
if(recHeroes.indexOf(hero.hid) == -1 && !checkForbiddenChar(hero.hid, dicWar.fobiddenCharactor)) {
if(recHeroes.indexOf(hero.hid) == -1 && !checkForbiddenChar(hero.hid, hero.job, dicWar.fobiddenCharactor)) {
heroNum++;
recHeroes.push(hero.hid);
heroesCeSum += hero.ce;

View File

@@ -1,4 +1,4 @@
import { HeroModel } from './../db/Hero';
import { HeroModel, HeroType } from './../db/Hero';
import { HangUpRecordModel } from './../db/HangUpRecord';
import { HANG_UP_CONSTS, REDIS_KEY, TASK_TYPE, TOWER_FORBIDDEN_CHARA_TYPE, TOWER_TASK_STATUS, MAIL_TYPE, MSG_SOURCE } from './../consts';
import { BattleRecordModel } from './../db/BattleRecord';
@@ -141,7 +141,7 @@ export function checkTaskRewards(batchCode: string, tasks: TowerTaskRecType[]) {
return { compTasks, rewards };
}
export async function checkTowerWar(roleId: string, battleId: number, seqIds: number[], heroes: Array<number>) {
export async function checkTowerWar(roleId: string, battleId: number, seqIds: number[], heroes: HeroType[]) {
let { towerLv } = await RoleModel.findByRoleId(roleId);
const towerInfo = gameData.tower.get(towerLv);
if (!towerInfo) {
@@ -166,8 +166,8 @@ export async function checkTowerWar(roleId: string, battleId: number, seqIds: nu
return { status: -1, resResult: resResult(STATUS.TOWER_DUPLICATE_HERO) };
}
}
for(let hid of heroes) {
if(checkForbiddenChar(hid, fobiddenCharactor)) {
for(let {hid, job} of heroes) {
if(checkForbiddenChar(hid, job, fobiddenCharactor)) {
return { status: -1, resResult: resResult(STATUS.TOWER_HERO_FORBIDDEN) };
}
}
@@ -183,9 +183,9 @@ export async function checkTowerWar(roleId: string, battleId: number, seqIds: nu
};
}
export function checkForbiddenChar(hid: number, fobiddenCharactor: {type: number, id: number}[]) {
export function checkForbiddenChar(hid: number, job: number, fobiddenCharactor: {type: number, id: number}[]) {
let dicHero = gameData.hero.get(hid);
let dicJob = gameData.job.get(dicHero.jobid);
let dicJob = gameData.job.get(job);
let flag = false;
for(let { type, id } of fobiddenCharactor) {
switch(type) {