✨ feat(战场): 保存战阵连携顺序
This commit is contained in:
@@ -47,7 +47,7 @@ export class GVGBattleHandler {
|
||||
async getTeams(msg: {}, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
let { configId } = getGVGConfig();
|
||||
const teams = await GVGTeamModel.findByRole(roleId, '-_id teamCode index head frame spine lineup confirmConfigId')
|
||||
const teams = await GVGTeamModel.findByRole(roleId, '-_id teamCode index head frame spine lineup combo confirmConfigId')
|
||||
|
||||
return resResult(STATUS.SUCCESS, { teams: teams.map(team => new MyTeamSimpleInfo(team, configId)) });
|
||||
}
|
||||
@@ -64,7 +64,7 @@ export class GVGBattleHandler {
|
||||
const serverId = session.get('serverId');
|
||||
const roleName = session.get('roleName');
|
||||
const guildCode = session.get('guildCode');
|
||||
const { cityId, index, head, spine, frame, lineup } = msg;
|
||||
const { cityId, index, head, spine, frame, lineup, combo } = msg;
|
||||
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
if (period != GVG_PERIOD.BATTLE) return resResult(STATUS.GVG_NOT_BATTLE_PERIOD);
|
||||
@@ -79,7 +79,7 @@ export class GVGBattleHandler {
|
||||
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let role = await RoleModel.findByRoleId(roleId, 'lv title');
|
||||
let updateParam: SaveTeamUpdateParam = { index, head, spine, frame, roleName, serverId, leagueCode, leagueName, lv: role.lv, title: role.title }
|
||||
let updateParam: SaveTeamUpdateParam = { index, head, spine, frame, roleName, serverId, leagueCode, leagueName, lv: role.lv, title: role.title, combo }
|
||||
if(lineup) {
|
||||
let hids: number[] = [];
|
||||
for(let { actorId, subHid } of lineup) {
|
||||
@@ -499,7 +499,7 @@ export class GVGBattleHandler {
|
||||
teamObj.setTime(defenseTeam.teamCode, defenseTeam);
|
||||
let heroes = getOppHeroes(warId, defenseTeam.isRobot, defenseTeam.lineup)
|
||||
|
||||
return resResult(STATUS.SUCCESS, { battleCode: battleRecord.battleCode, warId, isRobot: defenseTeam.isRobot, heroes, curTeam: new MyTeamInfo(attackTeam), oppTeam: new MyTeamInfo(defenseTeam) });
|
||||
return resResult(STATUS.SUCCESS, { battleCode: battleRecord.battleCode, warId, isRobot: defenseTeam.isRobot, heroes, combo: defenseTeam.combo, curTeam: new MyTeamInfo(attackTeam), oppTeam: new MyTeamInfo(defenseTeam) });
|
||||
}
|
||||
|
||||
// 队伍停止攻击
|
||||
|
||||
@@ -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