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

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
@@ -97,7 +97,7 @@ export class NormalBattleHandler {
return checkResult.resResult return checkResult.resResult
} }
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) { } 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) { if (checkResult.status == -1) {
return checkResult.resResult return checkResult.resResult
} }
@@ -202,7 +202,7 @@ export class NormalBattleHandler {
warReward.setFixReward(towerEndResult.data.towerReward) warReward.setFixReward(towerEndResult.data.towerReward)
} }
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) { } 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); let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
if (role) { if (role) {
await saveDungeonFirst(role, battleId, BattleRecord); await saveDungeonFirst(role, battleId, BattleRecord);
@@ -330,7 +330,7 @@ export class NormalBattleHandler {
} }
dailyNum = Object.assign(dailyNum, checkResult.data) dailyNum = Object.assign(dailyNum, checkResult.data)
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) { } 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) { if (checkResult.status == -1) {
return checkResult.resResult return checkResult.resResult
} }
+13 -5
View File
@@ -4,7 +4,7 @@
import { resResult, shouldRefresh, } from '../pubUtils/util'; import { resResult, shouldRefresh, } from '../pubUtils/util';
import { STATUS } from '../consts/statusCode'; 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 * as dicParam from '../pubUtils/dicParam';
import { RankParam } from '../domain/rank'; import { RankParam } from '../domain/rank';
import { BattleRecordType } from '../db/BattleRecord'; 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使用 // 检查秘境本次数checkBattle使用
export async function checkDungeonNum(roleId: string, inc: number) { export async function checkDungeonNum(roleId: string, inc: number, 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 curTime = new Date();
let needRefresh = shouldRefresh(dungeonRefTime, curTime); let needRefresh = shouldRefresh(dungeonRefTime, curTime);
if(needRefresh) { if(needRefresh) {
@@ -61,9 +68,10 @@ export async function checkDungeonNum(roleId: string, inc: number) {
* @param isRef 在计算之前是否检查每日的刷新 * @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 curTime = new Date();
let needRefresh = isRef && shouldRefresh(dungeonRefTime, curTime); let needRefresh = isRef && shouldRefresh(dungeonRefTime, curTime);