远征:重置使用历史最高战力
This commit is contained in:
@@ -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
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user