From 1e71e66c1265ddec018021d48b089a07cdcea85d Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 19 Apr 2022 11:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=87=E5=BF=B5=E5=A1=94=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B8=80=E9=94=AE=E7=A2=BE=E5=8E=8B=E5=90=8E=E4=B8=8B?= =?UTF-8?q?=E4=B8=80=E5=B1=82=E4=B8=8D=E8=83=BD=E6=89=93bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/towerBattleHandler.ts | 7 +++++-- shared/db/Role.ts | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/game-server/app/servers/battle/handler/towerBattleHandler.ts b/game-server/app/servers/battle/handler/towerBattleHandler.ts index eb83a464f..0c42fc1a6 100644 --- a/game-server/app/servers/battle/handler/towerBattleHandler.ts +++ b/game-server/app/servers/battle/handler/towerBattleHandler.ts @@ -16,6 +16,7 @@ import { isNumber } from 'underscore'; import { HeroModel } from '../../../db/Hero'; import { vipCanSkipTower } from '../../../services/activity/monthlyTicketService'; import { pushTowerMsg } from '../../../services/sysChatService'; +import { WarStar } from '../../../domain/dbGeneral'; export default function(app: Application) { return new TowerBattleHandler(app); @@ -294,6 +295,7 @@ export class TowerBattleHandler { // 检查战力是否足够 let heroes = await HeroModel.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce', true); let recommendCeSum = 0, heroesCeSum = 0; + let newWarStar: WarStar[] = []; for(let { warId, status } of warStatus) { if(!status) { let dicWar = gameData.war.get(warId); @@ -307,6 +309,7 @@ export class TowerBattleHandler { } if(heroNum >= dicWar.minHeroNum) break; } + newWarStar.push({ id: warId, warType: dicWar.warType, star: 0, stars: [] }) } } if(!vipCanSkipTower(recommendCeSum, heroesCeSum, role.vipStartTime)) { @@ -314,14 +317,14 @@ export class TowerBattleHandler { } // 更新玩家表 - role = await RoleModel.towerLvUp(roleId); + role = await RoleModel.towerLvUp(roleId, newWarStar); // 更新towerRecord await TowerRecordModel.skipTower(roleId, role.towerLv - 1, recHeroes); await createNewTowerRecord(roleId, role.towerLv); await checkAndStartHungUp(roleId, roleName, role.towerLv); let goods = await addItems(roleId, roleName, sid, dicTower.reward, ITEM_CHANGE_REASON.TOWER_BATTLE_END); - pushTowerMsg(roleId, roleName, serverId, MSG_SOURCE.TOWER_SUC, role.lv); + pushTowerMsg(roleId, roleName, serverId, MSG_SOURCE.TOWER_SUC, role.towerLv); let data = await getTowerStatus(role); diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 70f15a396..17007ce6a 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -359,8 +359,8 @@ export default class Role extends BaseModel { return role; } - public static async towerLvUp(roleId: string) { - let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { towerLv: 1 }, towerUpTime: new Date() }, { new: true }).lean({ getters: true, virtuals: true }); + public static async towerLvUp(roleId: string, newWarStar: WarStar[] = []) { + let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { towerLv: 1 }, $push: { warStar: { $each: newWarStar }}, towerUpTime: new Date() }, { new: true }).lean({ getters: true, virtuals: true }); return role; }