🐞 fix(gvg): 完善队伍的刷新
This commit is contained in:
@@ -7,7 +7,7 @@ import { Application, BackendSession, ChannelService, HandlerService, pinus } fr
|
||||
import { resResult, genCode } from "../../../pubUtils/util";
|
||||
import { GVGLeagueModel } from '../../../db/GVGLeague';
|
||||
import { getGroupKey, getGVGConfig, getGVGPeriodData, getGVGServerType } from '../../../services/gvg/gvgService';
|
||||
import { redisAddBattleScore, battleEndSendMessage, calBattleScoreByCe, checkAreaIsInCity, checkGVGBattleStart, checkMoveStatus, getBattleRanksByCity, getBirthAreaOfCity, getGVGWarId, getOppHeroes, getTechKnifeHurt, getTechReviveMinus, initRobots, pushTeamMoveMessage, getGVGCitiesInfo, leaveCity, refreshTeams, checkEnterCityTime } from '../../../services/gvg/gvgBattleService';
|
||||
import { redisAddBattleScore, battleEndSendMessage, calBattleScoreByCe, checkAreaIsInCity, checkGVGBattleStart, checkMoveStatus, getBattleRanksByCity, getBirthAreaOfCity, getGVGWarId, getOppHeroes, getTechKnifeHurt, getTechReviveMinus, initRobots, pushTeamMoveMessage, getGVGCitiesInfo, leaveCity, refreshTeams, checkEnterCityTime, generNewLineup } from '../../../services/gvg/gvgBattleService';
|
||||
import { getGVGBattleData } from '../../../services/gvg/gvgBattleMemory';
|
||||
import { GVGBattleRecModel } from '../../../db/GVGBattleRec';
|
||||
import { getFightTimeByPeriod } from '../../../services/gvg/gvgFightService';
|
||||
@@ -77,30 +77,11 @@ export class GVGBattleHandler {
|
||||
let groupKey = await getGroupKey(serverId);
|
||||
let updateParam: SaveTeamUpdateParam = { index, head, spine, frame, configId, groupKey }
|
||||
if(lineup) {
|
||||
let attrByHid = await getHeroesAttributes(roleId);
|
||||
let { isOK, heroes } = await checkBattleHeroesByHid(roleId, lineup.map(cur => cur.actorId));
|
||||
if(!isOK) return resResult(STATUS.BATTLE_HERO_NOT_FOUND);
|
||||
let newLineup: GVGHeroInfo[] = [];
|
||||
for(let { actorId, dataId, order } of lineup) {
|
||||
let hero = heroes.find(cur => cur.hid == actorId);
|
||||
if(hero) {
|
||||
let artifact = hero.artifact? await ArtifactModel.findbySeqId(roleId, hero.artifact): null;
|
||||
let heroInfo = new GVGHeroInfo();
|
||||
heroInfo.setHeroInfo(hero, artifact);
|
||||
heroInfo.setDataId(dataId, order);
|
||||
|
||||
let attr = attrByHid.get(actorId);
|
||||
if(!attr) continue;
|
||||
let attribute = attr.getAttributesToString();
|
||||
heroInfo.setAttribute(attribute);
|
||||
|
||||
newLineup.push(heroInfo);
|
||||
}
|
||||
}
|
||||
|
||||
let lineupCe = heroes.reduce((pre, cur) => pre + cur.ce, 0);
|
||||
let { newLineup, newLineupCe } = await generNewLineup(roleId, heroes, lineup);
|
||||
updateParam.lineup = newLineup;
|
||||
updateParam.lineupCe = lineupCe;
|
||||
updateParam.lineupCe = newLineupCe;
|
||||
}
|
||||
let originTeam = await GVGTeamModel.findByRoleAndIndex(roleId, index, 'cityId');
|
||||
if(!originTeam && cityId > 0) {
|
||||
@@ -113,6 +94,7 @@ export class GVGBattleHandler {
|
||||
if (!team) {
|
||||
return resResult(STATUS.GVG_SAVE_TEAM_FAILED);
|
||||
}
|
||||
|
||||
if(cityId > 0) {
|
||||
let teamObj = getGVGBattleData(groupKey);
|
||||
teamObj.enterCity(team);
|
||||
@@ -192,7 +174,7 @@ export class GVGBattleHandler {
|
||||
// 初始化本城池的守擂机器人
|
||||
await initRobots(configId, groupKey, city||{ cityId, guardLeague: '' });
|
||||
// 每赛季初自己的几支队伍恢复耐久、城市、顺便更新一下自己的玩家名、联军
|
||||
let teams = await refreshTeams(configId, groupKey, roleId, roleName, guildCode, myLeague);
|
||||
let teams = await refreshTeams(configId, groupKey, roleId, myLeague);
|
||||
|
||||
let gvgUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
||||
let originCityId = gvgUserData?.cityId||0;
|
||||
|
||||
Reference in New Issue
Block a user