Files
ZYZ/shared/db/Equip.ts
2020-09-09 00:57:26 +08:00

61 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { COUNTER } from './../consts/consts';
import { CounterModel } from './Counter';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
@index({ roleId: 1, hid: 1, eid: 1 })
@index({ seqId: 1 })
export default class Equip extends BaseModel {
@prop({ required: true })
roleId: string; // 角色 id
@prop({ required: true })
roleName: string; // 角色名称
@prop({ required: true })
eid: number; // 装备 id
@prop({ required: true })
type: number; // 装备类型
@prop({ required: true })
eName: string; // 装备名称
@prop({ required: true })
seqId: number; // 装备表自增 id
@prop({ required: false })
hid: number; // 装备此装备的武将 id
@prop({ required: true, default: 1 })
lv: number; // 强化等级
@prop({ required: false, default: [] })
randSe: [{ // 强化随机属性
seType: number; // 属性类型
value: number; // 属性数值
}];
@prop({ required: true, default: 0 })
randRange: number; // 物攻策攻数值浮动上下限变化率,浮点数
@prop({ required: true, default: 0 })
initHoleCnt: number; // 初始珠宝孔位个数
@prop({ required: true, default: [] })
holes: [{
id: number; // 宝石 id待定也可能是 type + lv
lv: number; // 宝石等级
}];
public static async findbyRole(roleId: string, lean = true) {
const equips = await EquipModel.find({ roleId }).lean(lean);
return equips;
}
public static async createEquip(equipInfo: {roleId: string, roleName: string, eid: number, seqId: number, type: number, eName: string}, lean = true) {
const equip = await EquipModel.findOneAndUpdate({ seqId: equipInfo.seqId }, equipInfo, {upsert: true, new: true}).lean();
return equip;
}
public static async putOn(hid: number, equipId: string, lean = true) {
const equip = await EquipModel.findOneAndUpdate({ _id: equipId }, {hid}, {new: true});
return equip;
}
}
export const EquipModel = getModelForClass(Equip);