边窗:主线关卡奖励

This commit is contained in:
luying
2022-07-07 13:27:43 +08:00
parent 2e03348f53
commit eb4ecd7c94
8 changed files with 709 additions and 1 deletions
@@ -30,6 +30,7 @@ import { isArray, isNumber } from 'underscore';
import { RewardInter } from '../../../pubUtils/interface';
import { addItems } from '../../../services/role/rewardService';
import { treasureHuntChallengeConsume } from '../../../services/activity/treasureHuntService';
import { combineItems } from '../../../services/role/util';
export default function (app: Application) {
new HandlerService(app, {});
@@ -478,4 +479,33 @@ export class NormalBattleHandler {
...result, goods
});
}
// 关卡列表
async receiveWarReward(msg: { chapter: number, warType: number }, session: BackendSession) {
const { chapter, warType } = msg;
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let role = await RoleModel.findByRoleId(roleId, 'receivedWarIds');
let { receivedWarIds = [] } = role;
let warIds: number[] = [];
let rewards: RewardInter[] = [];
let mainWarRewards = gameData.mainWarReward.get(`${warType}_${chapter}`)??[];
for(let { warId, cityReward } of mainWarRewards) {
if(receivedWarIds.indexOf(warId) == -1) {
rewards.push(...cityReward);
warIds.push(warId);
}
}
if(warIds.length <= 0) return resResult(STATUS.BATTLE_NO_WAR_REWARD_CAN_RECEIVE);
role = await RoleModel.receiveWarRewards(roleId, warIds);
let goods = await addItems(roleId, roleName, sid, rewards, ITEM_CHANGE_REASON.RECEIVE_CHAPTER_BOX)
return resResult(STATUS.SUCCESS, {
receivedWarIds: warIds, goods: combineItems(goods)
});
}
}