This commit is contained in:
mamengke01
2020-12-25 14:15:03 +08:00
parent 0c5cb1daac
commit 04fa4e79cf
14 changed files with 304 additions and 27 deletions

View File

@@ -134,6 +134,11 @@ export default class Equip extends BaseModel {
let result: EquipType = await EquipModel.findOneAndUpdate({_id}, {$set: equipUpdate}, {new: true}).lean(lean);
return result;
}
public static async getEquipByObjectId(_id: string) {
let equip: EquipType = await EquipModel.findOne({ _id });
return equip;
}
}
export const EquipModel = getModelForClass(Equip);

View File

@@ -153,7 +153,7 @@ export default class Hero extends BaseModel {
const hero: HeroType = await HeroModel.findOneAndUpdate(
{ roleId, hid, 'ePlace.id': ePlaceId },
{$set: {'ePlace.$.equip': equipId, 'ePlace.$.hid':hid, 'ePlace.$.ePlaceId':ePlaceId}},
{new: true}).lean(lean);
{new: true}).populate('ePlace.equip').lean(lean);
if (hero) {
await Equip.putOn(hero.hid, equipId);
}

View File

@@ -1,4 +1,4 @@
import { HANG_UP_CONSTS } from './../consts';
import { HANG_UP_CONSTS, ROLE_TERAPH } from './../consts';
import BaseModel from './BaseModel';
import { CeAttr } from './generalField';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
@@ -14,6 +14,7 @@ interface roleUpdate {
expeditionPoint?:number;
globalCeAttr?:CeAttr;
title?:number;
teraphs?: Teraph[];
}
class TopHero {
@@ -47,6 +48,41 @@ class WarStar {
star: number; // 星级
}
class Teraph{
@prop({ required: true, default: 1 })
id: number; // 神像的id
@prop({ required: true, default: 1 })
grade: number; // 等级
@prop({ required: true, default: 0 })
hp: number;
@prop({ required: true, default: 0 })
atk: number;
@prop({ required: true, default: 0 })
def: number;
@prop({ required: true, default: 0 })
mdef: number;
@prop({ required: true, default: 0 })
agi: number;
@prop({ required: true, default: 0 })
luk: number;
}
// 初始化
function getInitialTeraph() {
let teraphs = new Array<Teraph>();
for(let i = ROLE_TERAPH.START; i <= ROLE_TERAPH.END; i++) {
let p = new Teraph();
p.id = i;
p.grade = 1;
p.hp = 0;
p.atk = 0;
p.def = 0;
p.mdef = 0;
p.agi = 0;
p.luk = 0;
teraphs.push(p);
}
return teraphs;
}
/**
* 角色字段接口
*/
@@ -173,7 +209,8 @@ export default class Role extends BaseModel {
@prop({ required: true, default: 1 })
title: number; //爵位
//神像
@prop({ required: true, type: Teraph, default: getInitialTeraph() })
teraphs:Array<Teraph>;
public static async findByUid(uid: number, serverId: number, lean = true) {
const role: RoleType = await RoleModel.findOne({ 'userInfo.uid': uid, serverId }).lean(lean);