主线:添加宝箱

This commit is contained in:
luying
2022-03-10 11:48:35 +08:00
parent f69c3955e0
commit 053e603301
10 changed files with 278 additions and 6 deletions
@@ -2,7 +2,7 @@ import { Application, BackendSession, HandlerService, } from 'pinus';
import { BattleRecordModel } from '../../../db/BattleRecord';
import { BattleSweepRecordModel } from '../../../db/BattleSweepRecord';
import { genCode, getReasonByWarType, getWarTypeName } from '../../../pubUtils/util';
import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY, TASK_TYPE, KING_EXP_RATIO_TYPE, TA_EVENT } from '../../../consts';
import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY, TASK_TYPE, KING_EXP_RATIO_TYPE, TA_EVENT, ITEM_CHANGE_REASON } from '../../../consts';
import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattleService';
import { checkTowerWar, towerBattleEnd } from '../../../services/battleService';
import { WarReward } from '../../../services/warRewardService';
@@ -12,7 +12,7 @@ import { STATUS } from '../../../consts/statusCode';
import { resResult } from '../../../pubUtils/util';
import { RoleModel } from '../../../db/Role';
import { RScriptRecordModel } from '../../../db/RScriptRecord';
import { checkBattleHeroes, roleLevelup, getBattleList, calculateWarStar, getBattleListOfTypes } from '../../../services/normalBattleService';
import { checkBattleHeroes, roleLevelup, getBattleList, calculateWarStar, getBattleListOfTypes, getMainChapter, getStarOfChapter } from '../../../services/normalBattleService';
import { checkDungeonNum, checkDungeonAndIncrease, saveDungeonFirst } from '../../../services/dungeonService';
// import { switchOnFunc } from '../../../services/funcSwitchService';
import { gameData } from '../../../pubUtils/data';
@@ -26,7 +26,9 @@ import { challengeDailyGK } from '../../../services/activity/dailyGKService';
import { challengeNewHeroGK } from '../../../services/activity/newHeroGKService';
import { reportTAEvent } from '../../../services/sdkService';
import { getVipRegretCnt } from '../../../services/activity/monthlyTicketService';
import { isNumber } from 'underscore';
import { isArray, isNumber } from 'underscore';
import { RewardInter } from '../../../pubUtils/interface';
import { addItems } from '../../../services/rewardService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -117,6 +119,8 @@ export class NormalBattleHandler {
// 关卡列表
async getBattleList(msg: { types: number[] }, session: BackendSession) {
const { types } = msg;
if(!isArray(types)) return resResult(STATUS.WRONG_PARMS);
let roleId = session.get('roleId');
let role = await RoleModel.findByRoleId(roleId);
@@ -422,4 +426,48 @@ export class NormalBattleHandler {
return resResult(STATUS.SUCCESS, { regretCnt: battleRecord.regretCnt||0, maxRegretCnt });
}
async getMainStarBox(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let role = await RoleModel.findByRoleId(roleId, 'warStar receivedBox');
let result = getMainChapter(role);
return resResult(STATUS.SUCCESS, result);
}
// 关卡列表
async receiveChapterBox(msg: { chapter: number, id: number }, session: BackendSession) {
const { id, chapter } = msg;
if(!isNumber(id)) return resResult(STATUS.WRONG_PARMS);
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let role = await RoleModel.findByRoleId(roleId, 'warStar receivedBox');
let ids: number[] = [];
let rewards: RewardInter[] = [];
let starOfChapter = getStarOfChapter(role.warStar);
let boxIds = id == 0? gameData.mainBoxByChapter.get(chapter): [id];
for(let id of boxIds) {
let dicBox = gameData.mainBox.get(id);
if(dicBox && dicBox.chapter == chapter) {
let star = starOfChapter.get(chapter)
if(star >= dicBox.star) {
rewards.push(...dicBox.reward);
ids.push(id);
}
}
}
if(ids.length <= 0) return resResult(STATUS.BATTLE_NO_BOX_CAN_RECEIVE);
role = await RoleModel.receivedBox(roleId, ids);
let goods = await addItems(roleId, roleName, sid, rewards, ITEM_CHANGE_REASON.RECEIVE_CHAPTER_BOX)
let result = getMainChapter(role);
return resResult(STATUS.SUCCESS, {
...result, goods
});
}
}