diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index f4f2e4907..780bc8d2b 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -7,6 +7,18 @@ import { COUNTER } from '../consts/consts'; /** * 英雄表 */ + +class Connect { + @prop({ required: true }) + id: number; +} + +class Skin { + @prop({ required: true }) + id: number; + @prop({ required: true }) + enable: boolean; +} interface heroUpdate { exp?: number; lv?: number; @@ -20,17 +32,11 @@ interface heroUpdate { jobStage?:number; favour?:number; favourLv?:number; - skins?: [{ - id: number; - enable: boolean; - }]; - conections?: [{ - id: number; - name: string; - valid: boolean; - }]; + skins?: Skin[]; + conections?: Connect[]; _id?:number; } + @index({ roleId: 1, hid: 1 }) @index({ roleId: 1, seqId: 1 }) export default class Hero extends BaseModel { @@ -79,15 +85,10 @@ export default class Hero extends BaseModel { favour: number; // 好感度 @prop({ required: true, default: 1 }) favourLv: number; // 好感等级 + @prop({ required: true, type:Connect, default: [] }) + conections: Connect[]; // 羁绊 @prop({ required: true, default: [] }) - conections: [{ // 羁绊 - id: number; // 羁绊编号 - }]; - @prop({ required: true, default: [] }) - skins: [{ // 皮肤 - id: number; // id - enable: boolean; // 是否装备 - }] + skins: Skin[]; // 皮肤 @prop({ ref: Equip, type: mongoose.Schema.Types.ObjectId }) equips: Ref[]; // 武将装备引用数组 @@ -123,7 +124,7 @@ export default class Hero extends BaseModel { const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1; const update = Object.assign(doc.toJSON(), heroInfo, {seqId}); delete update._id; - const hero = await HeroModel.findOneAndUpdate({roleId: heroInfo.roleId, hid: heroInfo.hid}, update, {upsert: true, new: true}).select('hid hName lv exp star starStage colorStar colorStarStage quality job jobStage connections favour favourLv skins equips').lean(lean); + const hero = await HeroModel.findOneAndUpdate({roleId: heroInfo.roleId, hid: heroInfo.hid}, update, {upsert: true, new: true}).select('hid hName lv exp star starStage colorStar colorStarStage quality job jobStage conections favour favourLv skins equips').lean(lean); return hero; } diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index 2c9fda718..54fc9c9fe 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -400,13 +400,13 @@ export function ratioReward(rewardStr: string, ratio: number): string { } export function getItems(str:string) { - let arr = []; + let arr = new Array<{id: number, count: number}>(); let strArr = str.split('|'); for (let item of strArr) { var itemArr = item.split('&'); arr.push({ - id : itemArr[0], - count : itemArr[1] + id : parseInt(itemArr[0]), + count : parseInt(itemArr[1]) }); } return arr;