diff --git a/shared/db/BaseModel.ts b/shared/db/BaseModel.ts index 23807ef1d..094dace53 100644 --- a/shared/db/BaseModel.ts +++ b/shared/db/BaseModel.ts @@ -23,3 +23,45 @@ export default class BaseModel extends TimeStamps { @prop() updatedAt: Date } + +class CeAttrData { + @prop({ required: true }) + base?: number; + @prop({ required: true }) + ratioUp: number; + @prop({ required: true }) + fixUp: number; +} + +export class CeAttr { + @prop({ required: true }) + hp: CeAttrData; + @prop({ required: true }) + atk: CeAttrData; + @prop({ required: true }) + matk: CeAttrData; + @prop({ required: true }) + def: CeAttrData; + @prop({ required: true }) + mdef: CeAttrData; + @prop({ required: true }) + agi: CeAttrData; + @prop({ required: true }) + luk: CeAttrData; + @prop({ required: true }) + hit: CeAttrData; + @prop({ required: true }) + cri: CeAttrData; + @prop({ required: true }) + flee: CeAttrData; + @prop({ required: true }) + antCri: CeAttrData; + @prop({ required: true }) + damageIncrease: CeAttrData; + @prop({ required: true }) + damageDecrease: CeAttrData; + @prop({ required: true }) + defIngnore: CeAttrData; + @prop({ required: true }) + bloodSuck: CeAttrData; +} \ No newline at end of file diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 267d8bdc8..3f48bc0a3 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -1,4 +1,4 @@ -import BaseModel from './BaseModel'; +import BaseModel, { CeAttr } from './BaseModel'; import { index, getModelForClass, prop, Ref, mongoose } from '@typegoose/typegoose'; import Equip from './Equip'; import { CounterModel } from './Counter'; @@ -19,6 +19,7 @@ class Skin { @prop({ required: true }) enable: boolean; } + interface heroUpdate { exp?: number; lv?: number; @@ -62,7 +63,9 @@ export default class Hero extends BaseModel { @prop({ required: true, default: 0 }) ce: number; // 武将战力 @prop({ required: true, default: 0 }) - historyCe: number; // 武将历史最高战力 + historyCe: number; // 武将历史最高战力 + @prop({required: true, default: {} }) + ceAttr: CeAttr; // 影响战力的属性 @prop({ required: true, default: 1 }) star: number; // 星级 diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 7c57789dc..31ad7fd85 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -1,5 +1,5 @@ import { HANG_UP_CONSTS } from './../consts/consts'; -import BaseModel from './BaseModel'; +import BaseModel, { CeAttr } from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; import User from './User'; import { shouldRefresh } from '../pubUtils/util'; @@ -78,6 +78,8 @@ export default class Role extends BaseModel { @prop({ required: true, default: 0 }) ce: number; // 总战力 @prop({ required: true, default: 0 }) + globalCeAttr: CeAttr; // 总战力 + @prop({ required: true, default: 0 }) topFiveCe: number; // 最强5人战力 @prop({ required: true, type: TopHero, default: [] }) topFive: Array; // 总战力