镇念塔:检查武将需要根据皮肤变化
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user