远征:重置使用历史最高战力

This commit is contained in:
luying
2022-07-01 15:24:19 +08:00
parent bb0542c561
commit b1050b645c
4 changed files with 14 additions and 17 deletions

View File

@@ -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

View File

@@ -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
});

View File

@@ -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) {

View File

@@ -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;