寻宝:简化战场同步逻辑

This commit is contained in:
liangtongchuan
2021-02-19 21:22:30 +08:00
parent ee4c9f7adf
commit ace2ad896e

View File

@@ -442,7 +442,6 @@ export class ComBattleHandler {
*/
async action(msg: {teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: Array<number>, 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;