✨ feat(战场): 保存战阵连携顺序
This commit is contained in:
@@ -748,13 +748,14 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
}
|
||||
case "battle.pvpHandler.saveDefense":
|
||||
{
|
||||
let { heroes, warId, buff } = msg;
|
||||
let { heroes, warId, buff, combo } = msg;
|
||||
if (!checkNaturalArray(heroes)) return false;
|
||||
if (!checkNaturalNumbers(warId, buff)) return false;
|
||||
if (heroes.length > LINEUP_NUM) return false;
|
||||
for (let { actorId, dataId, order, ai } of heroes) {
|
||||
if (!checkNaturalNumbers(actorId, dataId, order, ai)) return false;
|
||||
}
|
||||
if(!checkCombo(combo)) return false
|
||||
break;
|
||||
}
|
||||
case "battle.pvpHandler.receiveBox":
|
||||
@@ -815,6 +816,7 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
for (let { actorId, dataId, order } of msg.heroes) {
|
||||
if (!checkNaturalNumbers(actorId, dataId, order)) return false;
|
||||
}
|
||||
if(!checkCombo(msg.combo)) return false
|
||||
break;
|
||||
}
|
||||
case "battle.ladderHandler.buyCnt":
|
||||
@@ -2302,4 +2304,18 @@ function checkSeqId(...seqIds: (number | string)[]) {
|
||||
if (!checkNaturalNumbers(<number>seqId) && !checkNaturalStrings(<string>seqId)) return false
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkCombo(combo: {groupId: number, levelList: number[]}[]) {
|
||||
if(combo) {
|
||||
if(!isArray(combo)) return false;
|
||||
for(let {groupId, levelList} of combo) {
|
||||
if(!isNumber(groupId)) return false;
|
||||
if(!isArray(levelList)) return false;
|
||||
for(let lv of levelList) {
|
||||
if(!isNumber(lv)) return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -33,6 +33,7 @@ import { addGVGReward, combinePushItem } from "./gvgItemService";
|
||||
import { calFighterContribute } from "./gvgPrepareService";
|
||||
import { addVestigeLeagueRankRec, addVestigeRankMessage } from "./gvgRecService";
|
||||
import { getGroupKey, getGVGServerType, getPeriodByTime } from "./gvgService";
|
||||
import { Combo } from "../../domain/battleField/pvp";
|
||||
|
||||
let gvgFightTime = undefined;
|
||||
|
||||
@@ -249,7 +250,7 @@ export async function generateDefenseInfo(roleId: string, vestigeId: number, ran
|
||||
|
||||
let info = new OppPlayerInfo();
|
||||
info.initByPlayer(playerVestigeData.rank, role, league, true);
|
||||
info.setPlayerHeroes(heroes, lineup);
|
||||
info.setPlayerHeroes(heroes, lineup, playerVestigeData.combo||[]);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
@@ -261,9 +262,9 @@ export async function generateAttackInfo(roleId: string, league: GVGLeagueType,
|
||||
return info;
|
||||
}
|
||||
|
||||
export async function generateAttackHeroInfo(lineup: { actorId: number, dataId: number, order: number, subHid: number }[], dbHeroes: HeroType[]) {
|
||||
export async function generateAttackHeroInfo(lineup: { actorId: number, dataId: number, order: number, subHid: number }[], dbHeroes: HeroType[], combo: Combo[]) {
|
||||
let info = new OppPlayerInfo();
|
||||
info.setPlayerHeroes(dbHeroes, lineup);
|
||||
info.setPlayerHeroes(dbHeroes, lineup, combo);
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -283,7 +284,7 @@ export async function getOppDetailData(rec: GVGVestigeRecType) {
|
||||
const heroes = await HeroModel.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar skins ce skinId');
|
||||
const artifactSeids = heroes.map(hero => hero.artifact);
|
||||
const artifacts = await ArtifactModel.findbySeqIds(rec.defenseRoleId, artifactSeids);
|
||||
result.setByPlayer(dicWarJson, defenseInfo, heroes, artifacts);
|
||||
result.setByPlayer(dicWarJson, defenseInfo, heroes, artifacts, rec.defenseInfo.combo);
|
||||
let attrByHid = await getHeroesAttributes(rec.defenseRoleId);
|
||||
for(let [hid, attribute] of attrByHid) {
|
||||
result.setAttribute(hid, attribute.getAttributesToString());
|
||||
|
||||
Reference in New Issue
Block a user