边窗:主线关卡奖励
This commit is contained in:
@@ -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)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user