✨ feat(校验): 添加战场伤害统计伤害
This commit is contained in:
@@ -15,13 +15,14 @@ import { gameData, getBossByLv } from '../../../pubUtils/data';
|
||||
import { lockData } from '../../../services/redLockService';
|
||||
import { pushGuildBossSucMsg, getGuildChannelSid } from '../../../services/chatService';
|
||||
import { checkTask } from '../../../services/task/taskService';
|
||||
import { guildInter } from '../../../pubUtils/interface';
|
||||
import { guildInter, pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { addItems, getGoldObject, handleCost } from '../../../services/role/rewardService';
|
||||
import * as dicParam from '../../../pubUtils/dicParam';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { sendMailToGuildByContent } from '../../../services/mailService';
|
||||
import { genAuction, getAuctionRewardByPoolId } from '../../../services/auctionService';
|
||||
import { sendMessageToGuildWithSuc } from '../../../services/pushService';
|
||||
import { getBattleRecordParam } from '../../../services/normalBattleService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -204,8 +205,8 @@ export class GuildHandler {
|
||||
}
|
||||
}
|
||||
|
||||
async battleBossEnd(msg: guildInter & { bossCode: string, battleCode: string }, session: BackendSession) {
|
||||
const { battleCode, myUserGuild: userGuild, bossCode } = msg;
|
||||
async battleBossEnd(msg: guildInter & { bossCode: string, battleCode: string, damageRecords: pvpEndParamInter[], round: number }, session: BackendSession) {
|
||||
const { battleCode, myUserGuild: userGuild, bossCode, damageRecords, round } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const sid = session.get('sid');
|
||||
@@ -214,7 +215,7 @@ export class GuildHandler {
|
||||
if(!bossInstance) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let battleRecord = await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
$set: { status: 1 }//战斗结束统一设置成1
|
||||
$set: { status: 1, ...getBattleRecordParam(damageRecords, round) }//战斗结束统一设置成1
|
||||
}, true);
|
||||
|
||||
let { bossDamage = 0 } = battleRecord.record; // 伤害奖励
|
||||
|
||||
@@ -19,8 +19,9 @@ import { GuildTrainReportModel } from '../../../db/GuildTrainReport';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { pushGuildTrainSucMsg } from '../../../services/chatService';
|
||||
import { checkTaskInGuildTrain } from '../../../services/task/taskService';
|
||||
import { guildInter, RewardInter } from '../../../pubUtils/interface';
|
||||
import { guildInter, pvpEndParamInter, RewardInter } from '../../../pubUtils/interface';
|
||||
import { getGuildTrainGkInfo } from '../../../pubUtils/data';
|
||||
import { getBattleRecordParam } from '../../../services/normalBattleService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -140,9 +141,9 @@ export class GuildTrainHandler {
|
||||
* @param msg
|
||||
* @param session
|
||||
*/
|
||||
async trainBattleEnd(msg: guildInter & { battleCode: string, isSuccess: boolean }, session: BackendSession) {
|
||||
async trainBattleEnd(msg: guildInter & { battleCode: string, isSuccess: boolean, damageRecords: pvpEndParamInter[], round: number }, session: BackendSession) {
|
||||
|
||||
const { battleCode, isSuccess, myUserGuild } = msg;
|
||||
const { battleCode, isSuccess, myUserGuild, damageRecords, round } = msg;
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
const roleName: string = session.get('roleName');
|
||||
@@ -169,7 +170,7 @@ export class GuildTrainHandler {
|
||||
userGuild = await UserGuildModel.updateInfo(roleId, {}, { trainCount: -1 });//扣除一次挑战次数
|
||||
}
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
$set: { status: isSuccess ? 1 : 2 }
|
||||
$set: { status: isSuccess ? 1 : 2, ...getBattleRecordParam(damageRecords, round) }
|
||||
}, true);//设置战斗状态
|
||||
|
||||
let { trainId, trainLv, hid, difficulty } = battleRecord.record;
|
||||
|
||||
@@ -16,7 +16,7 @@ import { RoleRankInfo } from "../../../domain/rank";
|
||||
import { getRemoteRplFilePath, getRemoteRplPrefix } from "../../../pubUtils/battleUtils";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { GVG } from "../../../pubUtils/dicParam";
|
||||
import { RewardInter } from "../../../pubUtils/interface";
|
||||
import { RewardInter, pvpEndParamInter } from "../../../pubUtils/interface";
|
||||
import { parseGoodStr, resResult } from "../../../pubUtils/util";
|
||||
import { isHeroHidden } from "../../../services/dataService";
|
||||
import { calBreakGoods, checkHeroIsUsedInOtherVestige, checkVestige, checkVestigeOppStatus, checkVestigeRank, generateAttackHeroInfo, generateAttackInfo, generateDefenseInfo, getDayKeyInfo, getMyVestigeRank, getOppDetailData, getOppPlayerByRanks, getVestigeRecStatus, getVestigeRank, getVestigeUsedHeroes, isRobot, refreshVestigeOppRanks, saveScoreToRank, updateMyVestigeRank, saveVestigeRankSchedule, calVestigeLeagueBoxRewards, checkFightTime, savePlayerRank, checkHeroChangeInVestige } from "../../../services/gvg/gvgFightService";
|
||||
@@ -24,7 +24,7 @@ import { addGVGReward, combinePushItem, handleGVGCost } from "../../../services/
|
||||
import { addGVGActive, getGVGActive } from "../../../services/gvg/gvgPrepareService";
|
||||
import { addVestigeBattleEndRec } from "../../../services/gvg/gvgRecService";
|
||||
import { getGroupKey, getGVGPeriodData, getMemberJoinLeagueTime } from "../../../services/gvg/gvgService";
|
||||
import { checkBattleHeroesByHid } from "../../../services/normalBattleService";
|
||||
import { checkBattleHeroesByHid, getBattleRecordParam } from "../../../services/normalBattleService";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { getAllServerName } from "../../../services/redisService";
|
||||
import { CheckMeterial } from "../../../services/role/checkMaterial";
|
||||
@@ -340,14 +340,14 @@ export class GVGProduceHandler {
|
||||
}
|
||||
|
||||
// 挑战结算
|
||||
async battleEnd(msg: { battleCode: string, isSuccess: boolean }, session: BackendSession) {
|
||||
async battleEnd(msg: { battleCode: string, isSuccess: boolean, damageRecords: pvpEndParamInter[], round: number }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const guildCode = session.get('guildCode');
|
||||
const { battleCode, isSuccess } = msg;
|
||||
const { battleCode, isSuccess, damageRecords, round } = msg;
|
||||
|
||||
let rec = await GVGVestigeRecModel.findByBattleCode(battleCode);
|
||||
if(!rec || rec.attackRoleId != roleId) return resResult(STATUS.GVG_VESTIGE_REC_NOT_FOUND);
|
||||
@@ -370,7 +370,7 @@ export class GVGProduceHandler {
|
||||
// 更新锁
|
||||
await GVGVestigeLockModel.releaseLock(rec.groupKey, rec.vestigeId, rec.defenseInfo.oldRank);
|
||||
// 更新battleRecord
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2, ...getBattleRecordParam(damageRecords, round) } });
|
||||
|
||||
// 取消突破排名奖励
|
||||
// let { rewards, leagueRewards } = calBreakGoods(rec.vestigeId, historyRank, atkData.rank);
|
||||
|
||||
Reference in New Issue
Block a user