diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index ff12a43d8..dce710c5f 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -442,7 +442,6 @@ export class ComBattleHandler { */ async action(msg: {teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: Array, curRnd: number}, session: BackendSession) { let roleId = session.get('roleId'); - let sid = session.get('sid'); let { teamCode, killed, bossHurts, curRnd } = msg; let teamStatus = this.teamMap.get(teamCode); if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID); @@ -471,19 +470,13 @@ export class ComBattleHandler { } } }); - // 更新玩家武将阵亡情况,计算玩家总伤害,计算机器人造成的伤害 - teamStatus.roleStatus.forEach(roleSt => { - if (roleSt.roleId === roleId) { - if (killed && killed.length) { - killed.forEach(killedHid => { - if (roleSt.killed.indexOf(killedHid) === -1 && roleSt.heroes.indexOf(killedHid) !== -1) { - roleSt.killed.push(killedHid); - } - }); - } - roleSt.totalDmg += totalHurtHp; - } - }); + // 更新玩家武将阵亡情况,计算玩家总伤害 + const roleSt = teamStatus.roleStatus.find(st => st.roleId === roleId); + roleSt.totalDmg += totalHurtHp; + if (killed && killed.length) { + roleSt.killed = Array.from(new Set([...roleSt.killed, ...killed])); + } + teamStatus.curRnd = curRnd; teamStatus.bossCurHp -= totalHurtHp; if (teamStatus.bossCurHp < 0) teamStatus.bossCurHp = 0;