pvp: 修复重复对手bug

This commit is contained in:
luying
2021-04-09 16:14:05 +08:00
parent 7b8b009d1a
commit f1b5867a5d
5 changed files with 47 additions and 17 deletions
+8 -3
View File
@@ -43,7 +43,7 @@ export async function calPlayerCeAndSave(type: number, roleId: string, originHer
let { topLineup, topLineupCe } = await calculatetopLineup(role, originHero.hid, heroCe, originHero._id); // 计算更新最强五人战力
role = await RoleModel.updateRoleInfo(roleId, { ce: role.ce + incCe, topLineup, topLineupCe });
await PvpDefenseModel.updateCe(roleId, originHero.hid, heroCe); // 更新pvp防守阵战力
await PvpDefenseModel.updateCe(roleId, originHero.hid, incCe); // 更新pvp防守阵战力
let guild = await GuildModel.updateCe(roleId, incCe); // 公会更新战力
let pushHeros = new Array<{ hid: number, ce: number, incHeroCe: number }>();
@@ -66,6 +66,7 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
let pushHeros = new Array<{ hid: number, ce: number, incHeroCe: number }>();
let roleCe = 0; // 总战力加成
let allIncCe = 0;
for (let hero of heros) {
let { attr: heroAttrs } = hero;
let newAttr = new Attribute();
@@ -73,9 +74,12 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
let heroCe = newAttr.calCe(); // 计算最终战力
let incHeroCe = heroCe - hero.ce;
allIncCe += incHeroCe;
roleCe += heroCe;
pushHeros.push({ hid: hero.hid, ce: reduceCe(hero.ce), incHeroCe: reduceCe(incHeroCe) });
await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: heroCe });
await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: heroCe });
await PvpDefenseModel.updateCe(roleId, hero.hid, incHeroCe); // 更新pvp防守阵战力
}
let { topLineup, topLineupCe } = await calculatetopLineup(role); // 计算更新最强五人战力
@@ -85,7 +89,8 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
update.topLineupCe = topLineupCe;
role = await RoleModel.updateRoleInfo(roleId, update);
return { role, pushHeros, ce: role.ce, topLineupCe: role.topLineupCe }
let guild = await GuildModel.updateCe(roleId, allIncCe); // 公会更新战力
return { role, pushHeros, ce: role.ce, topLineupCe: role.topLineupCe, guild }
}
// 计算武将全局战力