fix 修复刷新任务数量错误

This commit is contained in:
luying
2020-11-10 19:46:52 +08:00
parent 76e8157ad3
commit 5a700b87c7
5 changed files with 21 additions and 17 deletions

View File

@@ -10,6 +10,7 @@ import { getTaskById, getTowerDataByLv } from '../../../pubUtils/gamedata';
import { decodeArrayStr, resResult, shouldRefresh, calculateNum, getRefTime, genCode } from '../../../pubUtils/util';
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurTasks, treatTask, getRemainTime, getTasksReward, getTaskStatus, getDoingOrWaitingTasks } from '../../../services/battleService';
import { handleFixedReward, handleReward } from '../../../services/rewardService';
import { checkBattleHeroes } from '../../../services/normalBattleService';
export default function(app: Application) {
return new TowerBattleHandler(app);
@@ -145,10 +146,10 @@ export class TowerBattleHandler {
if(needRefresh) {
const batchCode = genCode(8);
await RoleModel.resetTowerCnt(roleId, curTime); // 重置派遣次数
let {waitingTaskCode, doingTaskCode} = getDoingOrWaitingTasks(curTasks, curTime);
let {waitingTaskCode, doingTaskCode, doingIds} = getDoingOrWaitingTasks(curTasks, curTime);
await TowerTaskRecModel.hideTask(roleId, waitingTaskCode); // 隐藏没有在做的任务
await TowerTaskRecModel.updateBatchCode(roleId, doingTaskCode, batchCode); // 更新留下来的旧任务的batchCode
await createCurTasks(towerLv, batchCode, roleId, roleName, doingTaskCode.length); // 新建任务
await createCurTasks(towerLv, batchCode, roleId, roleName, doingTaskCode.length, TOWER_TASK_CONST.RAND_CNT-doingTaskCode.length, doingIds); // 新建任务
curTasks = await TowerTaskRecModel.getCurTasks(roleId);
}
@@ -175,10 +176,10 @@ export class TowerBattleHandler {
// 只刷掉当前面板上没有做派遣的任务
const batchCode = genCode(8);
let curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前显示中的任务
let {waitingTaskCode, doingTaskCode} = getDoingOrWaitingTasks(curTasks, curTime);
let {waitingTaskCode, doingTaskCode, doingIds} = getDoingOrWaitingTasks(curTasks, curTime);
await TowerTaskRecModel.hideTask(roleId, waitingTaskCode); // 隐藏没有在做的任务
await TowerTaskRecModel.updateBatchCode(roleId, doingTaskCode, batchCode); // 更新留下来的旧任务的batchCode
await createCurTasks(towerLv, batchCode, roleId, roleName, 0);
await createCurTasks(towerLv, batchCode, roleId, roleName, 0, waitingTaskCode.length, doingIds);
curTasks = await TowerTaskRecModel.getCurTasks(roleId);
let refRemainTime = getRemainTime(curTime);
@@ -207,13 +208,15 @@ export class TowerBattleHandler {
return resResult(STATUS.TOWER_TASK_MISSING)
}
let taskInfo = getTaskById(curTask.taskId);
if (task.heroes.length == taskInfo.actorNeeded) { // 武将数,从策划表中读取
if (task.heroes.length !== taskInfo.actorNeeded) { // 武将数,从策划表中读取
return resResult(STATUS.TOWER_TASK_MAX_HERO);
}
if (tasksCode.indexOf(task.taskCode) === -1) {
return resResult(STATUS.TOWER_TASK_CODE_NOT_FOUND);
}
if (usedHeroes.length > 0) { // 是否在其他任务重使用了武将
let hasHero = await checkBattleHeroes(roleId, usedHeroes);
if(!hasHero) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
let used = !!task.heroes.find(seqId => usedHeroes.indexOf(seqId) !== -1);
if (used) {
return resResult(STATUS.TOWER_TASK_HERO_HAS_USED);
@@ -230,7 +233,8 @@ export class TowerBattleHandler {
let refRemainTime = getRemainTime(curTime);
curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前显示中的任务
return resResult(STATUS.SUCCESS, { tasks: treatTask(curTasks, curTime), refRemainTime });
let costGold = TOWER_TASK_CONST.COST_GOLD;
return resResult(STATUS.SUCCESS, { curTasks: treatTask(curTasks, curTime), refRemainTime, nextCostGold: costGold });
}
async settleTask(msg: {batchCode: string, taskCode: string}, session: BackendSession) {
@@ -269,7 +273,8 @@ export class TowerBattleHandler {
let refRemainTime = getRemainTime(curTime);
curTasks = await TowerTaskRecModel.getCurTasks(roleId); // 当前显示中的任务
return resResult(STATUS.SUCCESS, { compTasks: treatTask(curTasks, curTime), goods, refRemainTime });
let costGold = TOWER_TASK_CONST.COST_GOLD;
return resResult(STATUS.SUCCESS, { curTasks: treatTask(curTasks, curTime), goods, refRemainTime, nextCostGold: costGold });
}