import { prop } from '@typegoose/typegoose'; // hero表内属性基础格式 export class CeAttrData { @prop({ required: true }) base: number = 0; @prop({ required: true }) ratioUp: number = 0; @prop({ required: true }) fixUp: number = 0; @prop({ required: true }) equipUp: number = 0; } // hero表全属性 export class CeAttr { @prop({ required: false, _id: false }) hp?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) atk?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) matk?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) def?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) mdef?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) agi?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) luk?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) hit?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) cri?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) flee?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) antCri?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) damageIncrease?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) damageDecrease?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) defIngnore?: CeAttrData = new CeAttrData(); @prop({ required: false, _id: false }) bloodSuck?: CeAttrData = new CeAttrData(); } // role表属性格式 export class CeAttrDataRole { @prop({ required: true }) ratioUp: number = 0; @prop({ required: true }) fixUp: number = 0; } // role表全属性 export class CeAttrRole { @prop({ required: false, _id: false }) hp?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) atk?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) matk?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) def?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) mdef?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) agi?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) luk?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) hit?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) cri?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) flee?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) antCri?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) damageIncrease?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) damageDecrease?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) defIngnore?: CeAttrDataRole = new CeAttrDataRole(); @prop({ required: false, _id: false }) bloodSuck?: CeAttrDataRole = new CeAttrDataRole(); } // 所有属性使用数字格式 export class CeAttrNumber { @prop({ required: false }) hp?: number = 0; @prop({ required: false }) atk?: number = 0; @prop({ required: false }) matk?: number = 0; @prop({ required: false }) def?: number = 0; @prop({ required: false }) mdef?: number = 0; @prop({ required: false }) agi?: number = 0; @prop({ required: false }) luk?: number = 0; @prop({ required: false }) hit?: number = 0; @prop({ required: false }) cri?: number = 0; @prop({ required: false }) flee?: number = 0; @prop({ required: false }) antCri?: number = 0; @prop({ required: false }) damageIncrease?: number = 0; @prop({ required: false }) damageDecrease?: number = 0; @prop({ required: false }) defIngnore?: number = 0; @prop({ required: false }) bloodSuck?: number = 0; } // 主属性 export class MainAttrNumber { hp: number = 0; atk: number = 0; matk: number = 0; def: number = 0; mdef: number = 0; agi: number = 0; luk: number = 0; constructor(attr: CeAttrNumber) { if(attr.hp) this.hp = attr.hp; if(attr.atk) this.atk = attr.atk; if(attr.def) this.def = attr.def; if(attr.mdef) this.mdef = attr.mdef; if(attr.agi) this.agi = attr.agi; if(attr.luk) this.luk = attr.luk; } }