67 lines
1.4 KiB
TypeScript
67 lines
1.4 KiB
TypeScript
import { prop, pre } from '@typegoose/typegoose';
|
|
import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
|
|
/**
|
|
* BaseModel
|
|
*/
|
|
@pre<BaseModel>('save', function(next) {
|
|
if (!this.createdAt || this.isNew) {
|
|
this.createdAt = this.updatedAt = new Date();
|
|
} else {
|
|
this.updatedAt = new Date();
|
|
}
|
|
next();
|
|
})
|
|
|
|
export default class BaseModel extends TimeStamps {
|
|
|
|
_id?: string
|
|
|
|
@prop()
|
|
createdAt: Date
|
|
|
|
@prop()
|
|
updatedAt: Date
|
|
}
|
|
|
|
export class CeAttrData {
|
|
@prop({ required: true })
|
|
base?: number = 0;
|
|
@prop({ required: true })
|
|
ratioUp: number = 0;
|
|
@prop({ required: true })
|
|
fixUp: number = 0;
|
|
}
|
|
|
|
export class CeAttr {
|
|
@prop({ required: false })
|
|
hp?: CeAttrData;
|
|
@prop({ required: false })
|
|
atk?: CeAttrData;
|
|
@prop({ required: false })
|
|
matk?: CeAttrData;
|
|
@prop({ required: false })
|
|
def?: CeAttrData;
|
|
@prop({ required: false })
|
|
mdef?: CeAttrData;
|
|
@prop({ required: false })
|
|
agi?: CeAttrData;
|
|
@prop({ required: false })
|
|
luk?: CeAttrData;
|
|
@prop({ required: false })
|
|
hit?: CeAttrData;
|
|
@prop({ required: false })
|
|
cri?: CeAttrData;
|
|
@prop({ required: false })
|
|
flee?: CeAttrData;
|
|
@prop({ required: false })
|
|
antCri?: CeAttrData;
|
|
@prop({ required: false })
|
|
damageIncrease?: CeAttrData;
|
|
@prop({ required: false })
|
|
damageDecrease?: CeAttrData;
|
|
@prop({ required: false })
|
|
defIngnore?: CeAttrData;
|
|
@prop({ required: false })
|
|
bloodSuck?: CeAttrData;
|
|
} |