fix bug 远征显示下一关等

This commit is contained in:
luying
2020-11-17 17:37:05 +08:00
parent 0e2f043f93
commit 80b8f1bac7
13 changed files with 73 additions and 49 deletions
+8 -4
View File
@@ -26,7 +26,11 @@ export async function checkTowerWar(roleId: string, battleId: number, heroes: Ar
return { status: -1, resResult: resResult(STATUS.TOWER_WRONG_BATTLE_ID) };
}
let { heroes: recHeroes = [], warStatus = [] } = await TowerRecordModel.getRecordByLv(roleId, towerLv);
const tower = await TowerRecordModel.getRecordByLv(roleId, towerLv);
if(!tower) {
return { status: -1, resResult: resResult(STATUS.TOWER_NOT_FOUND) };
}
let { heroes: recHeroes = [], warStatus = [] } = tower;
for (let hid of heroes) {
if (recHeroes.indexOf(hid) !== -1) {
return { status: -1, resResult: resResult(STATUS.TOWER_DUPLICATE_HERO) };
@@ -194,8 +198,8 @@ async function checkCond(roleId: string, heroes, type: number, param: number, cn
switch (type) {
case 1:
for(let seqId of heroes) {
const rec = await HeroModel.findBySeqIdAndRole(seqId, roleId);
if (rec.star >= param) {
const {star, fire} = await HeroModel.findBySeqIdAndRole(seqId, roleId);
if (star + fire >= param) {
heroCnt++;
}
}
@@ -253,7 +257,7 @@ export async function createCurTasks(towerLv: number, batchCode: string, roleId:
let dicTask = getGamedata('dic_zyz_search');
for(let task of dicTask) {
let {suitFloor} = task;
let {min, max} = decodeStrSingle('suitLevel', suitFloor);
let {min, max} = decodeStrSingle('suitLevelSingle', suitFloor);
let flag = max?(towerLv >= min && towerLv <= max): (towerLv >= min);
if(flag) {
randomList.push(task);
@@ -8,8 +8,9 @@ import { decodeStr, resResult, setLocalHours, shouldRefresh } from '../pubUtils/
import { WAR_JSON_ATTRIBUTE_TYPE, EXPEDITION_CONST } from '../consts/consts';
import Actor from '../pubUtils/actor';
import { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord';
import { stat } from 'fs';
export async function findOrCreateEnemies(roleId: string, myCe: number, expeditionCode: string, expeditionId: number) {
export async function findOrCreateEnemies(roleId: string, myCe: number, expeditionCode: string, expeditionId: number, battleStatus: number) {
let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId);
if(!expeditionWarRecord) { // 如果没有信息
@@ -35,7 +36,7 @@ export async function findOrCreateEnemies(roleId: string, myCe: number, expediti
// 保存
let {warId} = curDicExpedition;
expeditionWarRecord = await ExpeditionWarRecordModel.saveRecord(expeditionCode, expeditionId, {
roleId, battleId: warId, ...enemyObj
roleId, battleId: warId, ...enemyObj, battleStatus
});
}
}
@@ -30,8 +30,12 @@ export async function roleLevelup(roleId: string, kingExp: number) {
export async function checkBattleHeroes(roleId: string, heroes: Array<number>) {
let flag = true;
if(heroes.length <= 0) flag = false;
const findHeroes = await HeroModel.findBySeqIdRange(heroes, roleId);
if(findHeroes.length != heroes.length) flag = false;
for(let seqId of heroes) {
let hero = await HeroModel.findBySeqIdAndRole(seqId||0, roleId);
let hero = findHeroes.find(cur => cur.seqId == seqId);
if(!hero) flag = false;
}
return flag;
+2 -2
View File
@@ -45,9 +45,9 @@ export class WarReward {
let last = str.substr(str.length-1, 1);
if(last == '&') str = str.substr(0, str.length - 1);
if(str.length) {
this.fixReward += reward;
} else {
this.fixReward += '|' + reward;
} else {
this.fixReward += reward;
}
}