红点:每日战斗结算增加返回
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user