✨ feat(战场): 保存战阵连携顺序
This commit is contained in:
@@ -29,6 +29,7 @@ import { Rank } from "../../../services/rankService";
|
||||
import { getAllServerName } from "../../../services/redisService";
|
||||
import { CheckMeterial } from "../../../services/role/checkMaterial";
|
||||
import { checkGVGTask } from "../../../services/task/taskService";
|
||||
import { Combo } from "../../../domain/battleField/pvp";
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -68,7 +69,7 @@ export class GVGProduceHandler {
|
||||
let myVestigeRank = await getMyVestigeRank(configId, groupKey, vestigeId, roleId, myLeague);
|
||||
if(!myVestigeRank) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
let { rank, lineup, oppRanks, refreshCnt } = myVestigeRank;
|
||||
let { rank, lineup, oppRanks, refreshCnt, combo } = myVestigeRank;
|
||||
|
||||
let lineupCe = lineup.reduce((pre, cur) => pre + cur.ce, 0);
|
||||
let oppPlayers = await getOppPlayerByRanks(serverId, groupKey, vestigeId, oppRanks);
|
||||
@@ -78,7 +79,7 @@ export class GVGProduceHandler {
|
||||
vestigeId,
|
||||
myRank: rank,
|
||||
score: dicRankMap?.get(rank)?.score||0,
|
||||
lineup, lineupCe,
|
||||
lineup, lineupCe, combo,
|
||||
oppPlayers,
|
||||
refreshCnt,
|
||||
usedHeroes,
|
||||
@@ -87,11 +88,11 @@ export class GVGProduceHandler {
|
||||
}
|
||||
|
||||
// 编辑阵容
|
||||
async saveLineup(msg: { vestigeId: number, lineup: [{ actorId: number, dataId: number, order: number, correspondingVar: number, subHid: number }] }, session: BackendSession) {
|
||||
async saveLineup(msg: { vestigeId: number, lineup: [{ actorId: number, dataId: number, order: number, correspondingVar: number, subHid: number }], combo: Combo[] }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
const { vestigeId, lineup: heroes } = msg;
|
||||
const { vestigeId, lineup: heroes, combo } = msg;
|
||||
|
||||
if(!await checkVestige(serverId, vestigeId)) {
|
||||
return resResult(STATUS.GVG_VESTIGE_ERR);
|
||||
@@ -115,11 +116,12 @@ export class GVGProduceHandler {
|
||||
let curHero = dbHeroes.find(cur => cur.hid == hero.actorId);
|
||||
return { actorId: curHero.hid, dataId: hero.dataId, order: hero.order, subHid: hero.subHid, correspondingVar: hero.correspondingVar, ce: curHero.ce }
|
||||
});
|
||||
let vestigeRank = await GVGVestigeRankModel.updateByRoleId(vestigeId, roleId, { lineup, hasDefense: true });
|
||||
let vestigeRank = await GVGVestigeRankModel.updateByRoleId(vestigeId, roleId, { lineup, combo, hasDefense: true });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
vestigeId,
|
||||
lineup: vestigeRank.lineup,
|
||||
combo: vestigeRank.combo,
|
||||
lineupCe: vestigeRank.lineup.reduce((pre, cur) => pre + cur.ce, 0),
|
||||
});
|
||||
}
|
||||
@@ -296,12 +298,12 @@ export class GVGProduceHandler {
|
||||
}
|
||||
|
||||
// 布完阵开始挑战
|
||||
async checkBattle(msg: { battleCode: string, heroes: { actorId: number, dataId: number, order: number, subHid: number }[] }, session: BackendSession) {
|
||||
async checkBattle(msg: { battleCode: string, heroes: { actorId: number, dataId: number, order: number, subHid: number }[], combo: Combo[] }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const serverId = session.get('serverId');
|
||||
const { battleCode, heroes } = msg;
|
||||
const { battleCode, heroes, combo } = msg;
|
||||
|
||||
let rec = await GVGVestigeRecModel.findByBattleCode(battleCode);
|
||||
if(!rec || rec.attackRoleId != roleId) return resResult(STATUS.GVG_VESTIGE_REC_NOT_FOUND);
|
||||
@@ -322,7 +324,7 @@ export class GVGProduceHandler {
|
||||
if(!lock) return resResult(STATUS.GVG_VESTIGE_CHECK_BATTLE_STATUS_ERR);
|
||||
|
||||
// 向vestigerec保存阵容
|
||||
const info = await generateAttackHeroInfo(heroes, dbHeroes);
|
||||
const info = await generateAttackHeroInfo(heroes, dbHeroes, combo);
|
||||
rec = await GVGVestigeRecModel.startBattle(battleCode, info.heroes, info.ce);
|
||||
|
||||
// 更新battleRecord
|
||||
|
||||
Reference in New Issue
Block a user