创建武将
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
// 全局加成
|
||||
export class GlobalAttr {
|
||||
@prop({ required: true })
|
||||
attrId: number; // 属性id
|
||||
@prop({ required: true })
|
||||
values: number[]; // 战力公式中的全局加成的数据,查表后的结果
|
||||
}
|
||||
|
||||
// 单武将加成
|
||||
export class HeroAttr {
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true })
|
||||
lv: number;
|
||||
@prop({ required: true, type: () => HeroAttrCell, _id: false })
|
||||
attrs: HeroAttrCell[];
|
||||
}
|
||||
|
||||
export class HeroAttrCell {
|
||||
@prop({ required: true })
|
||||
attrId: number; // 属性id
|
||||
@prop({ required: true })
|
||||
values: number[]; // 战力公式中的武将加成的数据,查表后的结果
|
||||
}
|
||||
|
||||
// 装备加成
|
||||
class EquipAttr {
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true })
|
||||
eplaceId: number; // 装备位置
|
||||
@prop({ required: true })
|
||||
attrId: number; // 属性id
|
||||
@prop({ required: true })
|
||||
values: number[]; // 战力公式中的武将加成的数据,查表后的结果
|
||||
}
|
||||
|
||||
// 百家学宫加成
|
||||
class SchoolAttr {
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true })
|
||||
attrId: number; // 属性id
|
||||
@prop({ required: true })
|
||||
value: number; // 百家学宫有多个武将,单独拎出来方便计算,计算之后结果存到globaAttrs的global1
|
||||
}
|
||||
|
||||
// 名将谱加成
|
||||
class ScrollAttr {
|
||||
@prop({ required: true })
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true })
|
||||
attrId: number; // 属性id
|
||||
@prop({ required: true })
|
||||
value: number; // 百家学宫有多个武将,单独拎出来方便计算,计算之后结果存到globaAttrs的global1
|
||||
}
|
||||
|
||||
/**
|
||||
* 属性表
|
||||
*/
|
||||
|
||||
@index({ roleId: 1 })
|
||||
@index({ roleId: 1 })
|
||||
|
||||
export default class RoleCe extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
roleId: string; // 角色 id
|
||||
|
||||
@prop({ required: true, type: GlobalAttr, _id: false })
|
||||
globalAttrs: GlobalAttr[]
|
||||
|
||||
@prop({ required: true, type: HeroAttr, _id: false })
|
||||
heroAttrs: HeroAttr[]
|
||||
|
||||
@prop({ required: true, type: EquipAttr, _id: false })
|
||||
equipAttrs: EquipAttr[]
|
||||
|
||||
@prop({ required: true, type: SchoolAttr, _id: false })
|
||||
schoolAttr: SchoolAttr[];
|
||||
|
||||
@prop({ required: true, type: ScrollAttr, _id: false })
|
||||
scrollAttrs: ScrollAttr[];
|
||||
|
||||
public static async findByRoleId(roleId: string) {
|
||||
let result: RoleCeType[] = await RoleCeModel.find({ roleId }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const RoleCeModel = getModelForClass(RoleCe);
|
||||
|
||||
export interface RoleCeType extends Pick<DocumentType<RoleCe>, keyof RoleCe> { };
|
||||
export type RoleCeUpdate = Partial<RoleCeType>;
|
||||
Reference in New Issue
Block a user