镇念塔:修复一键碾压后下一层不能打bug
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user