✨ feat(副将): 设置副将

This commit is contained in:
luying
2022-12-08 15:36:55 +08:00
parent bdbac4b085
commit b684307818
12 changed files with 92 additions and 8 deletions
+18
View File
@@ -163,6 +163,12 @@ export default class Hero extends BaseModel {
@prop({ required: true, type: Reward, default: [], _id: false })
consumes: Reward[]; // 武将装备引用数组
@prop({ required: true, default: 0 })
subHid: number; // 副将
@prop({ required: true, default: 0 })
subActorId: number; // 副将
public static async findByRole(roleId: string, sort: { field: string, sortBy: number }[] = [], select?: string, getters = false) {
let sortParam = {};
for (let { field, sortBy } of sort) {
@@ -205,6 +211,18 @@ export default class Hero extends BaseModel {
return hero;
}
public static async findSubHero(roleId: string, subHid: number) {
const hero: HeroType = await HeroModel.findOne({ roleId, subHid }).lean();
return hero;
}
// 设置副将
public static async setSubHero(roleId: string, hid: number, subSkinId: number, subActorId: number) {
const preHero = subActorId > 0? await HeroModel.findOneAndUpdate({ roleId, subActorId }, { $set: { subActorId: 0, subHid: 0 } }, { new: true }).lean(): null;
const curHero: HeroType = await HeroModel.findOneAndUpdate({ roleId, hid }, { $set: { subHid: subSkinId, subActorId } }, { new: true }).lean();
return { preHid: preHero?.hid||0, curHero };
}
public static async addEquip(roleId: string, hid: number, ePlaceId: number, equipId: string) {
const hero: HeroType = await HeroModel.findOneAndUpdate(
{ roleId, hid, 'ePlace.id': ePlaceId },