pvp结算保存战报
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
|
||||
export class HeroesRecord {
|
||||
@prop({ required: true, default: 0 })
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true, default: 0 })
|
||||
quality: number; // 品质
|
||||
@prop({ required: true, default: 0 })
|
||||
star: number; // 星级
|
||||
@prop({ required: true, default: 0 })
|
||||
colorStar: number; // 觉醒
|
||||
@prop({ required: true, default: 0 })
|
||||
lv: number; // 等级
|
||||
@prop({ required: true, default: 0 })
|
||||
damage: number; // 伤害
|
||||
@prop({ required: true, default: 0 })
|
||||
heal: number; // 治疗
|
||||
@prop({ required: true, default: 0 })
|
||||
underDamage: number; // 承伤
|
||||
}
|
||||
|
||||
export class PlayerInfo {
|
||||
@prop({ required: true })
|
||||
roleId: string; // 角色 id
|
||||
@prop({ required: true })
|
||||
roleName: string; // 角色 名
|
||||
@prop({ required: true, default: 0 })
|
||||
lv: number; // 等级
|
||||
@prop({ required: true, default: 0 })
|
||||
sHid: number; // 形象
|
||||
@prop({ required: true, default: 0 })
|
||||
headHid: number; // 头像
|
||||
@prop({ required: true, default: 0 })
|
||||
title: number; // 爵位
|
||||
@prop({ required: true, default: 0 })
|
||||
ce: number; // 最高五人战力
|
||||
@prop({ required: true, default: false })
|
||||
isSuccess: boolean; // 是否胜利
|
||||
@prop({ required: true, default: 0 })
|
||||
score: number; // 获得的总积分
|
||||
@prop({ required: true, type: HeroesRecord, default: [], _id: false })
|
||||
heroes: HeroesRecord[]; // 获得的总积分
|
||||
}
|
||||
|
||||
@index({ roleId1: 1, updatedAt: -1 })
|
||||
@index({ roleId2: 1, updatedAt: -1 })
|
||||
|
||||
export default class PvpRecord extends BaseModel {
|
||||
@prop({ required: true })
|
||||
roleId1: string; // 角色 id
|
||||
@prop({ required: true })
|
||||
roleId2: string; // 角色 id
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
warId: number; // 这一关使用的地图
|
||||
@prop({ required: true, type: PlayerInfo, default: {}, _id: false })
|
||||
attackInfo: PlayerInfo; // 攻方信息
|
||||
@prop({ required: true, type: PlayerInfo, default: {}, _id: false })
|
||||
defenseInfo: PlayerInfo; // 守方信息
|
||||
|
||||
|
||||
public static async createRec(param: { roleId1: string, roleId2: string, warId: number, attackInfo: PlayerInfo, defenseInfo: PlayerInfo}, lean = true) {
|
||||
const result = await PvpRecordModel.findOneAndUpdate({}, param, { new: true, upsert: true }).lean();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export const PvpRecordModel = getModelForClass(PvpRecord);
|
||||
|
||||
export interface PvpRecordType extends Pick<DocumentType<PvpRecord>, keyof PvpRecord>{};
|
||||
Reference in New Issue
Block a user