战力:替换新方法

This commit is contained in:
陆莹
2022-03-26 19:19:51 +08:00
parent 68e4d2232d
commit f35af70adc
18 changed files with 1294 additions and 1249 deletions

View File

@@ -166,8 +166,6 @@ export default class Hero extends BaseModel {
ce: number; // 武将战力
@prop({ required: false, set: (val: boolean) => val, get: () => true })
isReducedCe: boolean; // 如果战力没有缩过就会返回false缩过了就会返回true
@prop({ required: true, default: 0 })
historyCe: number; // 武将历史最高战力
@prop({ required: true, type: CeAttrData, default: [], _id: false })
attr: CeAttrData[]; // 影响战力的属性
@@ -300,16 +298,6 @@ export default class Hero extends BaseModel {
return <HeroType[]>insertInfos;
}
public static async sumTopHeroCe(roleId: string, num: number) {
let ce: Array<{ historyCe: number }> = await HeroModel.aggregate([
{ $match: { roleId } },
{ $sort: { historyCe: -1 } },
{ $limit: num },
{ $group: { _id: null, historyCe: { $sum: '$historyCe' } } }
]);
return ce.length > 0 ? ce[0].historyCe : 0;
}
public static async sumHeroCe(roleId: string) {
let ce: Array<{ ce: number }> = await HeroModel.aggregate([
{ $match: { roleId } },
@@ -323,13 +311,6 @@ export default class Hero extends BaseModel {
return heroes;
}
public static async updateCe(roleId: string, hid: number, ce: number, oldCe: number, historyCe: number, lean = true) {
let distance = ce - oldCe;
let historyDistance = ce > historyCe ? ce - historyCe : 0;
let result: HeroType = await HeroModel.findOneAndUpdate({ roleId, hid }, { $inc: { ce: distance, historyCe: historyDistance } }).lean(lean);
return result;
}
public static async deleteAccount(roleId: string) {
let result = await HeroModel.deleteMany({ roleId });
return result;

View File

@@ -17,6 +17,10 @@ export class HeroAttr {
lv: number;
@prop({ required: true, type: () => AttrCell, _id: false })
attrs: AttrCell[];
@prop({ required: true })
historyCe: number;
@prop({ required: true })
objectId: string;
}
export class EquipAttr {
@@ -78,7 +82,7 @@ export default class RoleCe extends BaseModel {
scrollAttrs: ScrollAttr[];
public static async findByRoleId(roleId: string) {
let result: RoleCeType = await RoleCeModel.findOne({ roleId }).lean();
let result: RoleCeType = await RoleCeModel.findOneAndUpdate({ roleId }).lean();
return result;
}