From b1050b645cc880723ff7a968147094e8c32b02af Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 1 Jul 2022 15:24:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9C=E5=BE=81=EF=BC=9A=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=8E=86=E5=8F=B2=E6=9C=80=E9=AB=98=E6=88=98?= =?UTF-8?q?=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/handler/expeditionBattleHandler.ts | 4 ++-- game-server/app/services/expeditionService.ts | 4 ++-- game-server/app/services/playerCeService.ts | 20 +++++++------------ shared/db/RoleCe.ts | 3 +++ 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts index 79534baa4..e8a02c8b2 100644 --- a/game-server/app/servers/battle/handler/expeditionBattleHandler.ts +++ b/game-server/app/servers/battle/handler/expeditionBattleHandler.ts @@ -6,7 +6,7 @@ import { ExpeditionPointModel } from '../../../db/ExpeditionPoint'; import { RoleModel } from '../../../db/Role'; import { genCode, getWarTypeName } from '../../../pubUtils/util'; import { getPointRewardStatus, getResetRemainCnt, findOrCreateEnemies, getExpeditionStatus } from '../../../services/expeditionService'; -import { DEBUG_MAGIC_WORD, EXPEDITION_WAR_RECORD_STATUS, ITEM_CHANGE_REASON, KING_EXP_RATIO_TYPE, LINEUP_NUM, TASK_TYPE, TA_EVENT } from '../../../consts'; +import { DEBUG_MAGIC_WORD, EXPEDITION_WAR_RECORD_STATUS, ITEM_CHANGE_REASON, KING_EXP_RATIO_TYPE, TASK_TYPE, TA_EVENT } from '../../../consts'; import { WarReward } from '../../../services/warRewardService'; import { addItems } from '../../../services/role/rewardService'; import { getAp, setAp } from '../../../services/actionPointService'; @@ -60,7 +60,7 @@ export class ExpeditionBattleHandler { await ExpeditionRecordModel.hideRecord(roleId); // 刷掉旧关卡 // 我方战力 - let myCe = await getSumCe(roleId, LINEUP_NUM); + let myCe = await getSumCe(roleId); // 每一关的挑战状态 let { expeditionCode, heroes } = await ExpeditionRecordModel.createRecord({ roleId, roleName, heroes: [], myCe diff --git a/game-server/app/services/expeditionService.ts b/game-server/app/services/expeditionService.ts index 09405723e..311f9c0b4 100644 --- a/game-server/app/services/expeditionService.ts +++ b/game-server/app/services/expeditionService.ts @@ -2,7 +2,7 @@ import { ExpeditionPointModel } from '../db/ExpeditionPoint'; import Role, { RoleModel } from '../db/Role'; import { shouldRefresh, getRandSingleEelm } from '../pubUtils/util'; -import { LINEUP_NUM, EXPEDITION_WAR_RECORD_STATUS, SYSTEM_OPEN_ID } from '../consts'; +import { EXPEDITION_WAR_RECORD_STATUS, SYSTEM_OPEN_ID } from '../consts'; import { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord'; import { HeroType } from '../db/Hero'; import { gameData } from '../pubUtils/data'; @@ -27,7 +27,7 @@ export async function getExpeditionStatus(roleId: string, roleName: string, isEn let expeditionRecord = await ExpeditionRecordModel.getCurRecord(roleId); if (!expeditionRecord) { // 首次新建一条记录 // 我方战力 - let myCe = await getSumCe(roleId, LINEUP_NUM); + let myCe = await getSumCe(roleId); expeditionRecord = await ExpeditionRecordModel.createRecord({ roleId, roleName, heroes: [], myCe }); diff --git a/game-server/app/services/playerCeService.ts b/game-server/app/services/playerCeService.ts index 59e0c8ba4..32658a04c 100644 --- a/game-server/app/services/playerCeService.ts +++ b/game-server/app/services/playerCeService.ts @@ -10,7 +10,7 @@ import { HERO_SYSTEM_TYPE, PUSH_ROUTE, REDIS_KEY } from '../consts'; import { updateUserInfo } from './redisService'; import { GuildModel, GuildType } from '../db/Guild'; import { CalCe } from './role/calCe'; -import { RoleCeModel } from '../db/RoleCe'; +import { RoleCeModel, RoleCeUpdate } from '../db/RoleCe'; import { PvpDefenseModel } from '../db/PvpDefense'; import { saveCeChangeLog } from '../pubUtils/logUtil'; import { JewelType } from '../db/Jewel'; @@ -360,7 +360,10 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve } let { topLineup, topLineupCe } = calCe.getTopLineup(); - let roleCeUpdate = calCe.getRoleCeTable(); + let roleCeUpdate: RoleCeUpdate = calCe.getRoleCeTable(); + if(topLineupCe > roleCe.historyLineupCe) { + roleCeUpdate = { ...roleCeUpdate, historyLineupCe: topLineupCe }; + } roleCe = await RoleCeModel.updateRoleCe(roleId, roleCeUpdate); let role = await RoleModel.incRoleInfo(roleId, { ...roleIncUpdate, ce: roleInc }, { ...roleUpdate, topLineup, topLineupCe }); let guild = await GuildModel.updateCe(roleId, roleInc); // 公会更新战力 @@ -416,18 +419,9 @@ async function updateRank(roleId: string, serverId: number, topLineupCe: number, await r6.setRankWithRoleInfo(roleId, role.heroNum, role.heroNumUpdatedAt, role); } -export async function getSumCe(roleId: string, num: number) { +export async function getSumCe(roleId: string) { let roleCe = await RoleCeModel.findByRoleId(roleId); - let calCe = new CalCe(roleId); - calCe.setRoleCe(roleCe); - let arr = calCe.getResultCeArr(); - let ce = 0; - for(let i = 0; i < num; i++) { - if(arr[i]) { - ce += arr[i].ce; - } - } - return ce; + return roleCe.historyLineupCe; } export async function getHeroesAttributes(roleId: string) { diff --git a/shared/db/RoleCe.ts b/shared/db/RoleCe.ts index f604d8a9f..38a27f1b7 100644 --- a/shared/db/RoleCe.ts +++ b/shared/db/RoleCe.ts @@ -105,6 +105,9 @@ export default class RoleCe extends BaseModel { @prop({ required: true, type: Attribute, _id: false }) attributes: Attribute[]; + @prop({ required: true }) + historyLineupCe: number; + public static async findByRoleId(roleId: string) { let result: RoleCeType = await RoleCeModel.findOne({ roleId }).lean(); return result;