秘境:秘境关卡首次通关不消耗次数

This commit is contained in:
luying
2022-07-11 19:50:57 +08:00
parent 7bec79b12e
commit b592b68981
2 changed files with 16 additions and 8 deletions

View File

@@ -97,7 +97,7 @@ export class NormalBattleHandler {
return checkResult.resResult
}
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
let checkResult = await checkDungeonNum(roleId, 1);
let checkResult = await checkDungeonNum(roleId, 1, battleId);
if (checkResult.status == -1) {
return checkResult.resResult
}
@@ -202,7 +202,7 @@ export class NormalBattleHandler {
warReward.setFixReward(towerEndResult.data.towerReward)
}
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
let checkResult = await checkDungeonAndIncrease(roleId, isSuccess?1:0, false);
let checkResult = await checkDungeonAndIncrease(roleId, isSuccess?1:0, false, battleId);
let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
if (role) {
await saveDungeonFirst(role, battleId, BattleRecord);
@@ -330,7 +330,7 @@ export class NormalBattleHandler {
}
dailyNum = Object.assign(dailyNum, checkResult.data)
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
let checkResult = await checkDungeonAndIncrease(roleId, count, true);
let checkResult = await checkDungeonAndIncrease(roleId, count, true, battleId);
if (checkResult.status == -1) {
return checkResult.resResult
}

View File

@@ -4,7 +4,7 @@
import { resResult, shouldRefresh, } from '../pubUtils/util';
import { STATUS } from '../consts/statusCode';
import { RoleModel, RoleType } from '../db/Role';
import { RoleModel, RoleType, WarStar } from '../db/Role';
import * as dicParam from '../pubUtils/dicParam';
import { RankParam } from '../domain/rank';
import { BattleRecordType } from '../db/BattleRecord';
@@ -34,9 +34,16 @@ export async function getDungeonData(role: RoleType) {
}
}
function isFirstPass(warStar: WarStar[], warId: number) {
let index = warStar.findIndex(cur => cur.id == warId);
return index == -1;
}
// 检查秘境本次数checkBattle使用
export async function checkDungeonNum(roleId: string, inc: number) {
let { dungeonCnt = 0, dungeonBuyCnt = 0, dungeonRefTime, vipStartTime } = await RoleModel.findByRoleId(roleId);
export async function checkDungeonNum(roleId: string, inc: number, warId: number) {
let { dungeonCnt = 0, dungeonBuyCnt = 0, dungeonRefTime, vipStartTime, warStar } = await RoleModel.findByRoleId(roleId);
if(isFirstPass(warStar, warId)) inc = 0;
let curTime = new Date();
let needRefresh = shouldRefresh(dungeonRefTime, curTime);
if(needRefresh) {
@@ -61,9 +68,10 @@ export async function checkDungeonNum(roleId: string, inc: number) {
* @param isRef 在计算之前是否检查每日的刷新
*/
export async function checkDungeonAndIncrease(roleId: string, inc: number, isRef: boolean) {
export async function checkDungeonAndIncrease(roleId: string, inc: number, isRef: boolean, warId: number) {
let { dungeonCnt = 0, dungeonBuyCnt = 0, dungeonRefTime, vipStartTime } = await RoleModel.findByRoleId(roleId);
let { dungeonCnt = 0, dungeonBuyCnt = 0, dungeonRefTime, vipStartTime, warStar } = await RoleModel.findByRoleId(roleId);
if(isFirstPass(warStar, warId)) inc = 0;
let curTime = new Date();
let needRefresh = isRef && shouldRefresh(dungeonRefTime, curTime);