✨ feat(战场): 保存战阵连携顺序
This commit is contained in:
@@ -22,6 +22,7 @@ import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { isHeroHidden } from '../../../services/dataService';
|
||||
import { getRemoteRplFilePath, getRemoteRplPrefix } from '../../../pubUtils/battleUtils';
|
||||
import { pvpEndParamInter } from '../../../pubUtils/interface';
|
||||
import { Combo } from '../../../domain/battleField/pvp';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -275,8 +276,8 @@ export class LadderHandler {
|
||||
}
|
||||
|
||||
// 9. 设置防守阵容
|
||||
async saveDefense(msg: { warId: number, heroes: { actorId: number, ai: number, dataId: number, order: number, subHid?: number }[] }, session: BackendSession) {
|
||||
let { warId, heroes } = msg;
|
||||
async saveDefense(msg: { warId: number, heroes: { actorId: number, ai: number, dataId: number, order: number, subHid?: number }[], combo: Combo[] }, session: BackendSession) {
|
||||
let { warId, heroes, combo } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
|
||||
let ladderData = await LadderMatchModel.findByRoleId(roleId);
|
||||
@@ -296,7 +297,7 @@ export class LadderHandler {
|
||||
let dbHero = dbHeroes.find(ccur => ccur.hid == cur.actorId);
|
||||
return dbHero && new LadderDefenseHero(cur, dbHero._id, dbHero.ce);
|
||||
}).filter(cur => cur);
|
||||
let defense = new LadderDefense(defenseHeroes, warId);
|
||||
let defense = new LadderDefense(defenseHeroes, warId, combo);
|
||||
ladderData = await LadderMatchModel.updateByRoleId(roleId, { defense, hasDefense: true });
|
||||
// 返回
|
||||
let result = new LadderDataReturn();
|
||||
|
||||
@@ -11,7 +11,7 @@ import { PvpDefenseModel, pvpUpdateInter } from '../../../db/PvpDefense';
|
||||
import { PvpSeasonResultModel } from '../../../db/PvpSeasonResult';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
import { checkTask, checkTaskInPvpEnd } from '../../../services/task/taskService';
|
||||
import { Attack, Defense, DefenseHero, PvpDataReturn, pvpSaveDataReturn } from '../../../domain/battleField/pvp';
|
||||
import { Attack, Combo, Defense, DefenseHero, PvpDataReturn, pvpSaveDataReturn } from '../../../domain/battleField/pvp';
|
||||
import { DEBUG_MAGIC_WORD, FIGURE_UNLOCK_CONDITION, ITEM_CHANGE_REASON, LINEUP_NUM, REDIS_KEY, TASK_TYPE } from '../../../consts';
|
||||
import { PVP } from '../../../pubUtils/dicParam';
|
||||
import { addItems, getGoldObject, handleCost, unlockFigure } from '../../../services/role/rewardService';
|
||||
@@ -158,7 +158,7 @@ export class PvpHandler {
|
||||
|
||||
let pvpHistoryOpp = <PvpHistoryOpp>curOpp.oppDef;
|
||||
|
||||
return resResult(STATUS.SUCCESS, { roleId: pvpHistoryOpp.oppRoleId, ...pick(pvpHistoryOpp, ['pos', 'title', 'warId', 'buff', 'heroes']) });
|
||||
return resResult(STATUS.SUCCESS, { roleId: pvpHistoryOpp.oppRoleId, ...pick(pvpHistoryOpp, ['pos', 'title', 'warId', 'buff', 'heroes', 'combo']) });
|
||||
}
|
||||
|
||||
|
||||
@@ -490,8 +490,8 @@ export class PvpHandler {
|
||||
}
|
||||
|
||||
//3. 保存防守阵容
|
||||
async saveDefense(msg: { heroes: { actorId: number, dataId: number, order: number, ai: number, subHid?: number }[], warId: number, buff: number }, session: BackendSession) {
|
||||
let { heroes, warId, buff } = msg;
|
||||
async saveDefense(msg: { heroes: { actorId: number, dataId: number, order: number, ai: number, subHid?: number }[], warId: number, buff: number, combo: Combo[] }, session: BackendSession) {
|
||||
let { heroes, warId, buff, combo } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
if (heroes.length > LINEUP_NUM || heroes.length <= 0) {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
@@ -539,7 +539,7 @@ export class PvpHandler {
|
||||
let defenseHeroes = heroes.map(cur => {
|
||||
return new DefenseHero(cur, heroIdMap.get(cur.actorId));
|
||||
});
|
||||
let defense = new Defense(defenseHeroes, scores, warId, buff);
|
||||
let defense = new Defense(defenseHeroes, scores, warId, buff, combo);
|
||||
let lineupCe = await generPvpLineupCe(roleId, pvpDefense.lineupCe, pvpDefense.attack?.heroes??[], defense.heroes, dbHeroes);
|
||||
await PvpSaveDataModel.createSaveData(roleId, warId, buff, defenseHeroes);
|
||||
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { ...refChallengeObj, defense, lineupCe, hasDefense: true, seasonNum });
|
||||
|
||||
Reference in New Issue
Block a user