镇念塔:检查武将需要根据皮肤变化
This commit is contained in:
@@ -69,7 +69,7 @@ export class NormalBattleHandler {
|
|||||||
if (preBattle == -1) return resResult(STATUS.BATTLE_NEED_PREVIOUS_GK);
|
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);
|
if (!isOK) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
|
||||||
|
|
||||||
const battleCode = genCode(8); // 关卡唯一值
|
const battleCode = genCode(8); // 关卡唯一值
|
||||||
@@ -83,7 +83,7 @@ export class NormalBattleHandler {
|
|||||||
}
|
}
|
||||||
dailyNum = Object.assign(dailyNum, checkResult.data);
|
dailyNum = Object.assign(dailyNum, checkResult.data);
|
||||||
} else if (warInfo.warType == WAR_TYPE.TOWER) {
|
} 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) {
|
if (checkResult.status == -1) {
|
||||||
return checkResult.resResult
|
return checkResult.resResult
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -309,7 +309,7 @@ export class TowerBattleHandler {
|
|||||||
let { warStatus, heroes: recHeroes } = await getTowerRecByLv(roleId, role.towerLv);
|
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 recommendCeSum = 0, heroesCeSum = 0;
|
||||||
let newWarStar: WarStar[] = [];
|
let newWarStar: WarStar[] = [];
|
||||||
for(let { warId, status } of warStatus) {
|
for(let { warId, status } of warStatus) {
|
||||||
@@ -318,7 +318,7 @@ export class TowerBattleHandler {
|
|||||||
recommendCeSum += dicWar.recommendedPower;
|
recommendCeSum += dicWar.recommendedPower;
|
||||||
let heroNum = 0;
|
let heroNum = 0;
|
||||||
for(let hero of heroes) {
|
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++;
|
heroNum++;
|
||||||
recHeroes.push(hero.hid);
|
recHeroes.push(hero.hid);
|
||||||
heroesCeSum += hero.ce;
|
heroesCeSum += hero.ce;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { HeroModel } from './../db/Hero';
|
import { HeroModel, HeroType } from './../db/Hero';
|
||||||
import { HangUpRecordModel } from './../db/HangUpRecord';
|
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 { 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';
|
import { BattleRecordModel } from './../db/BattleRecord';
|
||||||
@@ -141,7 +141,7 @@ export function checkTaskRewards(batchCode: string, tasks: TowerTaskRecType[]) {
|
|||||||
return { compTasks, rewards };
|
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);
|
let { towerLv } = await RoleModel.findByRoleId(roleId);
|
||||||
const towerInfo = gameData.tower.get(towerLv);
|
const towerInfo = gameData.tower.get(towerLv);
|
||||||
if (!towerInfo) {
|
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) };
|
return { status: -1, resResult: resResult(STATUS.TOWER_DUPLICATE_HERO) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(let hid of heroes) {
|
for(let {hid, job} of heroes) {
|
||||||
if(checkForbiddenChar(hid, fobiddenCharactor)) {
|
if(checkForbiddenChar(hid, job, fobiddenCharactor)) {
|
||||||
return { status: -1, resResult: resResult(STATUS.TOWER_HERO_FORBIDDEN) };
|
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 dicHero = gameData.hero.get(hid);
|
||||||
let dicJob = gameData.job.get(dicHero.jobid);
|
let dicJob = gameData.job.get(job);
|
||||||
let flag = false;
|
let flag = false;
|
||||||
for(let { type, id } of fobiddenCharactor) {
|
for(let { type, id } of fobiddenCharactor) {
|
||||||
switch(type) {
|
switch(type) {
|
||||||
|
|||||||
Reference in New Issue
Block a user