军团:改表
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, HandlerService, } from 'pinus';
|
||||
import { resResult, genCode, getRandSingleEelm } from '../../../pubUtils/util';
|
||||
import { DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, STATUS, TASK_TYPE, TRAIN_REWARD_TYPE } from '../../../consts';
|
||||
import { GuildTrainModel } from '../../../db/GuildTrain';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getTimeFun, getZeroPoint } from '../../../pubUtils/timeUtil';
|
||||
@@ -10,7 +10,7 @@ import { lockData } from '../../../services/redLockService';
|
||||
import { GUILD_REPORT_NUM, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
import { getArmyTrainJuDian, getTrainSoloReward, getTrainBaseByLv, gameData } from '../../../pubUtils/data';
|
||||
import { getArmyTrainJuDian, getTrainBaseByLv, gameData } from '../../../pubUtils/data';
|
||||
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
@@ -20,7 +20,7 @@ import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { pushGuildTrainSucMsg } from '../../../services/chatService';
|
||||
import { checkActivityTask, checkTask } from '../../../services/taskService';
|
||||
import { sendPopUpActivityData } from '../../../services/guildActivityService';
|
||||
import { guildInter } from '../../../pubUtils/interface';
|
||||
import { guildInter, RewardInter } from '../../../pubUtils/interface';
|
||||
import { getGuildTrainGkInfo } from '../../../pubUtils/data';
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -132,6 +132,7 @@ export class GuildTrainHandler {
|
||||
* @param session
|
||||
*/
|
||||
async trainBattleEnd(msg: guildInter & { battleCode: string, isSuccess: boolean }, session: BackendSession) {
|
||||
|
||||
const { battleCode, isSuccess, myUserGuild } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
@@ -167,6 +168,8 @@ export class GuildTrainHandler {
|
||||
let res: any = await lockData(serverId, DATA_NAME.TRAIN, code + '_' + trainId);//加锁
|
||||
if (!!res.err)
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
try {
|
||||
|
||||
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
||||
if (!guildTrain) {
|
||||
res.releaseCallback();//解锁
|
||||
@@ -179,19 +182,19 @@ export class GuildTrainHandler {
|
||||
}
|
||||
|
||||
let { trainInstances, soloRewardRatio } = getArmyTrainJuDian(trainId);
|
||||
let dicWar = gameData.war.get(battleRecord.battleId);
|
||||
if(!dicWar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let instance = findWhere(trainInstances, { hid });
|
||||
if (!instance) {//校验是否存在该关卡
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let trainSoloReward = getTrainSoloReward(difficulty);
|
||||
if (!trainSoloReward) {//获得个人奖励信息
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let addScore = Math.floor((isSuccess ? trainSoloReward.winScore : trainSoloReward.failScore));//个人获得积分,也是压制进度
|
||||
let score = isSuccess ? dicWar.winReward.get(TRAIN_REWARD_TYPE.SCORE) : dicWar.failReward.get(TRAIN_REWARD_TYPE.SCORE);
|
||||
let item = isSuccess ? dicWar.winReward.get(TRAIN_REWARD_TYPE.ITEM) : dicWar.failReward.get(TRAIN_REWARD_TYPE.ITEM);
|
||||
let addScore = Math.floor(<number>score);//个人获得积分,也是压制进度
|
||||
//个人功勋奖励
|
||||
let goods = await addItems(roleId, roleName, sid, [{ id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR), count: Math.floor((isSuccess ? trainSoloReward.winHonour : trainSoloReward.failHonour) * soloRewardRatio) }], ITEM_CHANGE_REASON.TRAIN_BATTLE_END);
|
||||
let goods = await addItems(roleId, roleName, sid, <RewardInter[]>item, ITEM_CHANGE_REASON.TRAIN_BATTLE_END);
|
||||
let { isComplete, ranks } = guildTrain;
|
||||
let reports = [];
|
||||
// let index = findIndex(ranks, { roleId });
|
||||
@@ -261,6 +264,11 @@ export class GuildTrainHandler {
|
||||
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.GUILD_TRAIN, 1)
|
||||
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
|
||||
} catch(e) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.INTERNAL_ERR);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 领取练兵场宝箱 hid:副本id,index:领取位置
|
||||
|
||||
Reference in New Issue
Block a user