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

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
@@ -6,7 +6,7 @@ import { ExpeditionPointModel } from '../../../db/ExpeditionPoint';
import { RoleModel } from '../../../db/Role'; import { RoleModel } from '../../../db/Role';
import { genCode, getWarTypeName } from '../../../pubUtils/util'; import { genCode, getWarTypeName } from '../../../pubUtils/util';
import { getPointRewardStatus, getResetRemainCnt, findOrCreateEnemies, getExpeditionStatus } from '../../../services/expeditionService'; 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 { WarReward } from '../../../services/warRewardService';
import { addItems } from '../../../services/role/rewardService'; import { addItems } from '../../../services/role/rewardService';
import { getAp, setAp } from '../../../services/actionPointService'; import { getAp, setAp } from '../../../services/actionPointService';
@@ -60,7 +60,7 @@ export class ExpeditionBattleHandler {
await ExpeditionRecordModel.hideRecord(roleId); // 刷掉旧关卡 await ExpeditionRecordModel.hideRecord(roleId); // 刷掉旧关卡
// 我方战力 // 我方战力
let myCe = await getSumCe(roleId, LINEUP_NUM); let myCe = await getSumCe(roleId);
// 每一关的挑战状态 // 每一关的挑战状态
let { expeditionCode, heroes } = await ExpeditionRecordModel.createRecord({ let { expeditionCode, heroes } = await ExpeditionRecordModel.createRecord({
roleId, roleName, heroes: [], myCe roleId, roleName, heroes: [], myCe
@@ -2,7 +2,7 @@
import { ExpeditionPointModel } from '../db/ExpeditionPoint'; import { ExpeditionPointModel } from '../db/ExpeditionPoint';
import Role, { RoleModel } from '../db/Role'; import Role, { RoleModel } from '../db/Role';
import { shouldRefresh, getRandSingleEelm } from '../pubUtils/util'; 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 { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord';
import { HeroType } from '../db/Hero'; import { HeroType } from '../db/Hero';
import { gameData } from '../pubUtils/data'; import { gameData } from '../pubUtils/data';
@@ -27,7 +27,7 @@ export async function getExpeditionStatus(roleId: string, roleName: string, isEn
let expeditionRecord = await ExpeditionRecordModel.getCurRecord(roleId); let expeditionRecord = await ExpeditionRecordModel.getCurRecord(roleId);
if (!expeditionRecord) { // 首次新建一条记录 if (!expeditionRecord) { // 首次新建一条记录
// 我方战力 // 我方战力
let myCe = await getSumCe(roleId, LINEUP_NUM); let myCe = await getSumCe(roleId);
expeditionRecord = await ExpeditionRecordModel.createRecord({ expeditionRecord = await ExpeditionRecordModel.createRecord({
roleId, roleName, heroes: [], myCe roleId, roleName, heroes: [], myCe
}); });
+7 -13
View File
@@ -10,7 +10,7 @@ import { HERO_SYSTEM_TYPE, PUSH_ROUTE, REDIS_KEY } from '../consts';
import { updateUserInfo } from './redisService'; import { updateUserInfo } from './redisService';
import { GuildModel, GuildType } from '../db/Guild'; import { GuildModel, GuildType } from '../db/Guild';
import { CalCe } from './role/calCe'; import { CalCe } from './role/calCe';
import { RoleCeModel } from '../db/RoleCe'; import { RoleCeModel, RoleCeUpdate } from '../db/RoleCe';
import { PvpDefenseModel } from '../db/PvpDefense'; import { PvpDefenseModel } from '../db/PvpDefense';
import { saveCeChangeLog } from '../pubUtils/logUtil'; import { saveCeChangeLog } from '../pubUtils/logUtil';
import { JewelType } from '../db/Jewel'; 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 { 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); roleCe = await RoleCeModel.updateRoleCe(roleId, roleCeUpdate);
let role = await RoleModel.incRoleInfo(roleId, { ...roleIncUpdate, ce: roleInc }, { ...roleUpdate, topLineup, topLineupCe }); let role = await RoleModel.incRoleInfo(roleId, { ...roleIncUpdate, ce: roleInc }, { ...roleUpdate, topLineup, topLineupCe });
let guild = await GuildModel.updateCe(roleId, roleInc); // 公会更新战力 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); 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 roleCe = await RoleCeModel.findByRoleId(roleId);
let calCe = new CalCe(roleId); return roleCe.historyLineupCe;
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;
} }
export async function getHeroesAttributes(roleId: string) { export async function getHeroesAttributes(roleId: string) {
+3
View File
@@ -105,6 +105,9 @@ export default class RoleCe extends BaseModel {
@prop({ required: true, type: Attribute, _id: false }) @prop({ required: true, type: Attribute, _id: false })
attributes: Attribute[]; attributes: Attribute[];
@prop({ required: true })
historyLineupCe: number;
public static async findByRoleId(roleId: string) { public static async findByRoleId(roleId: string) {
let result: RoleCeType = await RoleCeModel.findOne({ roleId }).lean(); let result: RoleCeType = await RoleCeModel.findOne({ roleId }).lean();
return result; return result;