红点:每日战斗结算增加返回

This commit is contained in:
luying
2021-06-02 20:41:36 +08:00
parent b9a3a96514
commit 6d99619050
2 changed files with 36 additions and 27 deletions
@@ -153,6 +153,7 @@ export class NormalBattleHandler {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK); return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
} }
let { warStar } = await RoleModel.findByRoleId(roleId);
let warReward = new WarReward(roleId, roleName, sid, battleId, isSuccess); let warReward = new WarReward(roleId, roleName, sid, battleId, isSuccess);
let dailyNum = {}; let dailyNum = {};
@@ -160,7 +161,7 @@ export class NormalBattleHandler {
let dungeonNum = {}; let dungeonNum = {};
if (warInfo.warType == WAR_TYPE.DAILY) { if (warInfo.warType == WAR_TYPE.DAILY) {
let checkResult = await checkDailyAndIncrease(roleId, battleId, 1, false); let checkResult = await checkDailyAndIncrease(roleId, [{id: battleId, star, warType: warInfo.warType}, ...warStar], battleId, 1, false);
if (checkResult.status == -1) { if (checkResult.status == -1) {
return checkResult.resResult; return checkResult.resResult;
} }
@@ -208,7 +209,6 @@ export class NormalBattleHandler {
if (isSuccess) { // 挑战胜利 if (isSuccess) { // 挑战胜利
// 是否首通 // 是否首通
let { warStar } = await RoleModel.findByRoleId(roleId);
let condition1 = warStar.find(cur => cur.id == battleId); let condition1 = warStar.find(cur => cur.id == battleId);
if (!condition1) { if (!condition1) {
await switchOnFunc(roleId, FUNC_OPT_TYPE.BATTLE_END, battleId, session); await switchOnFunc(roleId, FUNC_OPT_TYPE.BATTLE_END, battleId, session);
@@ -274,7 +274,7 @@ export class NormalBattleHandler {
let dailyNum = {}; let dailyNum = {};
let dungeonNum = {}; let dungeonNum = {};
if (warInfo.warType == WAR_TYPE.DAILY) { if (warInfo.warType == WAR_TYPE.DAILY) {
let checkResult = await checkDailyAndIncrease(roleId, battleId, count, true); let checkResult = await checkDailyAndIncrease(roleId, warStar, battleId, count, true);
if (checkResult.status == -1) { if (checkResult.status == -1) {
return checkResult.resResult return checkResult.resResult
} }
+33 -24
View File
@@ -7,6 +7,8 @@ import { resResult } from '../pubUtils/util';
import { STATUS } from '../consts/statusCode'; import { STATUS } from '../consts/statusCode';
import { RoleModel, RoleType } from '../db/Role'; import { RoleModel, RoleType } from '../db/Role';
import { gameData } from '../pubUtils/data'; import { gameData } from '../pubUtils/data';
import { DicWar } from '../pubUtils/dictionary/DicWar';
import { WarStar } from '../domain/dbGeneral';
/** /**
* 获取全部每日关卡列表 * 获取全部每日关卡列表
@@ -21,27 +23,9 @@ export async function getDailyBattleList(role: RoleType) {
let refreshResult = await DailyRecordModel.refreshRecord(roleId, type); let refreshResult = await DailyRecordModel.refreshRecord(roleId, type);
let wars: {battleId: number, cost: number, star: number, status: number, name: string}[] = new Array(); let wars: {battleId: number, cost: number, star: number, status: number, name: string}[] = new Array();
let dicDailyWar = gameData.dailyWarByType.get(type); let dicDailyWar = gameData.dailyWarByType.get(type);
for(let {war_id, cost, gk_name, previousGk } of dicDailyWar) { for(let dic of dicDailyWar) {
let status = 0, star = 0; let war = getDailyWarStatus(dic, warStar);
let curBattle = warStar.find(cur => cur.id == war_id); wars.push(war);
if(curBattle) {
status = 2;
star = curBattle.star;
} else {
if (previousGk) {
let preBattleRecord = warStar.find(cur => cur.id == previousGk);
if(preBattleRecord) {
status = 1;
} else {
status = 0;
}
} else {
status = 1;
}
}
wars.push({
battleId: war_id, cost, star, status, name: gk_name
});
} }
let checkDailyResult = await getDailyNum(refreshResult, timesPerDay, timesCanBuy); let checkDailyResult = await getDailyNum(refreshResult, timesPerDay, timesCanBuy);
result.push({ result.push({
@@ -52,6 +36,30 @@ export async function getDailyBattleList(role: RoleType) {
return result; return result;
} }
function getDailyWarStatus(dicDailyWar: DicWar, warStar: WarStar[]) {
let {war_id, cost, gk_name, previousGk } = dicDailyWar;
let status = 0, star = 0;
let curBattle = warStar.find(cur => cur.id == war_id);
if(curBattle) {
status = 2;
star = curBattle.star;
} else {
if (previousGk) {
let preBattleRecord = warStar.find(cur => cur.id == previousGk);
if(preBattleRecord) {
status = 1;
} else {
status = 0;
}
} else {
status = 1;
}
}
return {
battleId: war_id, cost, star, status, name: gk_name
}
}
// 检查每日本次数checkBattle使用 // 检查每日本次数checkBattle使用
export async function checkDaily(roleId: string, battleId: number, inc: number) { export async function checkDaily(roleId: string, battleId: number, inc: number) {
let dailyWar = gameData.war.get(battleId); let dailyWar = gameData.war.get(battleId);
@@ -66,7 +74,7 @@ export async function checkDaily(roleId: string, battleId: number, inc: number)
return { status: -1, resResult: resResult(STATUS.DAILY_TIMES_LACK) } return { status: -1, resResult: resResult(STATUS.DAILY_TIMES_LACK) }
} }
let checkDailyResult = await getDailyNum(dailyRecord, curDaily.timesPerDay, curDaily.timesCanBuy); let checkDailyResult = await getDailyNum(dailyRecord, curDaily.timesPerDay, curDaily.timesCanBuy);
return {status: 1, data: {type, ...checkDailyResult}}; return {status: 1, data: {type, ...checkDailyResult }};
} }
/** /**
@@ -77,10 +85,11 @@ export async function checkDaily(roleId: string, battleId: number, inc: number)
* @param isRef 在计算之前是否检查每日的刷新 * @param isRef 在计算之前是否检查每日的刷新
*/ */
export async function checkDailyAndIncrease(roleId: string, battleId: number, inc: number, isRef: boolean) { export async function checkDailyAndIncrease(roleId: string, warStar: WarStar[], battleId: number, inc: number, isRef: boolean) {
let dailyWar = gameData.war.get(battleId); let dailyWar = gameData.war.get(battleId);
if(!dailyWar) return { status: -1, resResult: resResult(STATUS.DAILY_WAR_NOT_FOUND) }; if(!dailyWar) return { status: -1, resResult: resResult(STATUS.DAILY_WAR_NOT_FOUND) };
let type = dailyWar.dailyType; let type = dailyWar.dailyType;
let war = getDailyWarStatus(dailyWar, warStar);
let curDaily = gameData.daily.find(cur => cur.dailyType == type); let curDaily = gameData.daily.find(cur => cur.dailyType == type);
if(!curDaily) return { status: -1, resResult: resResult(STATUS.DAILY_TYPE_NOT_FOUND) }; if(!curDaily) return { status: -1, resResult: resResult(STATUS.DAILY_TYPE_NOT_FOUND) };
@@ -97,7 +106,7 @@ export async function checkDailyAndIncrease(roleId: string, battleId: number, in
} }
let result = await DailyRecordModel.increseDailyCount(roleId, type, inc); let result = await DailyRecordModel.increseDailyCount(roleId, type, inc);
let checkDailyResult = await getDailyNum(result, curDaily.timesPerDay, curDaily.timesCanBuy); let checkDailyResult = await getDailyNum(result, curDaily.timesPerDay, curDaily.timesCanBuy);
return {status: 1, data: {type, ...checkDailyResult}}; return {status: 1, data: {type, ...checkDailyResult, war}};
} }
export async function getDailyNum(dailyRecord: DailyRecord, timesPerDay?: number, timesCanBuy?: number) { export async function getDailyNum(dailyRecord: DailyRecord, timesPerDay?: number, timesCanBuy?: number) {