Files
ZYZ/shared/domain/roleField/attribute.ts
2021-02-04 13:57:58 +08:00

143 lines
4.6 KiB
TypeScript

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;
}
}