军团:改表

This commit is contained in:
luying
2021-12-21 19:26:24 +08:00
parent 75da9edc85
commit b304995c5d
17 changed files with 7838 additions and 2469 deletions

View File

@@ -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副本idindex:领取位置