秘境:秘境关卡首次通关不消耗次数
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user