✨ feat(共鸣系统): 新增
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import { getModelForClass, prop, DocumentType, index } from '@typegoose/typegoose';
|
||||
import { HeroSkin } from './Hero';
|
||||
|
||||
|
||||
export class ResonanceHistoryEplaceStone {
|
||||
@prop({ required: true })
|
||||
id: number; // 孔的id
|
||||
@prop({ required: true })
|
||||
stone: number; // 装备的宝石id,未装备为0
|
||||
}
|
||||
export class ResonanceHistoryEplace {
|
||||
@prop({ required: true })
|
||||
id: number; // 装备栏id,id固定部位
|
||||
@prop({ required: true })
|
||||
equipId: number; // 装备表id
|
||||
@prop({ required: true })
|
||||
lv: number; // 强化等级
|
||||
@prop({ required: true })
|
||||
quality: number; // 品质
|
||||
@prop({ required: true })
|
||||
qualityStage: number; // 升品之前需要的次数
|
||||
@prop({ required: true })
|
||||
star: number; // 星级
|
||||
@prop({ required: true })
|
||||
starStage: number; // 升星级之前的小点
|
||||
@prop({ required: true, type: ResonanceHistoryEplaceStone, _id: false })
|
||||
stones: ResonanceHistoryEplaceStone[]; // 地玉石,初始的时候就有3个槽,是否解锁靠star判断
|
||||
@prop({ required: true })
|
||||
jewel: number; // 天晶石的seqId,具体状态去jewel表查
|
||||
}
|
||||
|
||||
export class ResonanceHistoryConnection {
|
||||
@prop({ required: true })
|
||||
shipId: number; // 羁绊编号
|
||||
@prop({ required: true })
|
||||
level: number;
|
||||
@prop({ required: true })
|
||||
exp: number;
|
||||
}
|
||||
|
||||
@index({ roleId: 1, position: 1, hid: 1, time: 1 })
|
||||
export default class ResonanceHistory extends BaseModel {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
|
||||
@prop({ required: true })
|
||||
position: number; // 上阵位置,前6(6是鸣主配在系统参数表)不存通过计算获得,已解锁未上阵仅有positon
|
||||
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将id
|
||||
|
||||
@prop({ required: true })
|
||||
seqId: number; // 武将表自增id
|
||||
|
||||
@prop({ required: true })
|
||||
lv: number; //武将等级
|
||||
|
||||
@prop({ required: true })
|
||||
exp: number; //
|
||||
|
||||
@prop({ required: true })
|
||||
jobStage: number; // 职阶
|
||||
|
||||
@prop({ required: true })
|
||||
skinId: number; // 当前皮肤id,fashions表的heroId字段
|
||||
|
||||
@prop({ required: true, type: HeroSkin, default: [], _id: false })
|
||||
skins: HeroSkin[]; // 皮肤
|
||||
|
||||
@prop({ required: true, type: ResonanceHistoryConnection, _id: false })
|
||||
connections: ResonanceHistoryConnection[] // 羁绊
|
||||
|
||||
@prop({ required: true, type: ResonanceHistoryEplace, _id: false })
|
||||
ePlace: ResonanceHistoryEplace[] // 所有装备栏
|
||||
|
||||
@prop({ required: true })
|
||||
ce: number // 战力
|
||||
|
||||
@prop({ required: true, default: () => new Date() })
|
||||
time: Date;
|
||||
|
||||
// public static async findByRoleId(roleId: string, lean = true) {
|
||||
// let result: ResonanceHistoryType[] = await ResonanceHistoryModel.find({ roleId }).select({ '_id': -1 }).lean(lean);
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// public static async findByPosition(roleId: string, position: number, lean = true) {
|
||||
// let result: ResonanceHistoryType = await ResonanceHistoryModel.findOne({ roleId, position }).select({ '_id': -1 }).lean(lean);
|
||||
// return result
|
||||
// }
|
||||
|
||||
// public static async findByPositionAndHid(roleId: string, position: number, hid: number, lean = true) {
|
||||
// let result: ResonanceHistoryType = await ResonanceHistoryModel.findOne({ roleId, position, hid }).select({ '_id': -1 }).lean(lean);
|
||||
// return result
|
||||
// }
|
||||
|
||||
public static async updateByPosition(roleId: string, position: number, param: ResonanceHistoryPara, lean = true) {
|
||||
delete param._id;
|
||||
let result: ResonanceHistoryType = await ResonanceHistoryModel.findOneAndUpdate({ roleId, position }, { $set: param }, { new: true, upsert: true }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
// public static async deletePosition(roleId: string, position: number) {
|
||||
// let result = await ResonanceHistoryModel.deleteMany({ roleId, position });
|
||||
// return result;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
export const ResonanceHistoryModel = getModelForClass(ResonanceHistory);
|
||||
export interface ResonanceHistoryType extends Pick<DocumentType<ResonanceHistory>, keyof ResonanceHistory> { };
|
||||
export type ResonanceHistoryPara = Partial<ResonanceHistoryType>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user