寻宝:修改机器人伤害计算机制

This commit is contained in:
liangtongchuan
2021-01-20 01:27:30 +08:00
parent 3d29da928e
commit 58b8d1c05d
4 changed files with 92 additions and 21 deletions

View File

@@ -16,7 +16,7 @@ import { ItemModel } from '../../../db/Item';
import { handleFixedReward, addItems, handleCost } from '../../../services/rewardService';
import { checkRoleInQueue, getTeamSearchByQuality, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService';
import { transBossHpArr } from '../../../services/battleService';
import { getRandBlueprtId, getRandComBtlRobots, checkComBattleResult, clearComBtlTimer, getRealReward, getAssistTimesByQuality, getFrd } from '../../../services/comBattleService';
import { getRandBlueprtId, getRandComBtlRobots, checkComBattleResult, clearComBtlTimer, getRealReward, getAssistTimesByQuality, getFrd, updateRobotHurt, updateRobotHurtByTime } from '../../../services/comBattleService';
import { setAp } from '../../../services/actionPointService';
import { roleLevelup } from '../../../services/normalBattleService';
@@ -73,6 +73,7 @@ export class ComBattleHandler {
}
private teamMap: Map<string, ComTeam> = new Map();
private teamDisTimer: Map<string, NodeJS.Timer> = new Map();
private robotHurtTimer: Map<string, NodeJS.Timer> = new Map();
/**
* @description 队长创建队伍
@@ -541,6 +542,11 @@ export class ComBattleHandler {
thiz.teamMap.delete(teamCode);
}
}, COM_BTL_CONST.BTL_TIME_LMT);
teamStatus.roleStatus.forEach((st, idx) => {
if (st.isRobot === true) {
updateRobotHurtByTime(teamStatus, st, COM_BTL_CONST.ROBOT_BASE_TIME_INTERVAL + idx, channel);
}
});
return resResult(STATUS.SUCCESS);
}
@@ -592,25 +598,6 @@ export class ComBattleHandler {
});
}
roleSt.totalDmg += totalHurtHp;
} else if (curRnd > teamStatus.curRnd && curRnd <= COM_BTL_CONST.ROBOT_RND_LMT && roleSt.isRobot) {
// 机器人的伤害为boss 血量的一定比例,平均到一定回合数内,再平均到每个敌军,上下浮动一定比例
let eachHurtHp = getRandValue(teamStatus.bossHp / COM_BTL_CONST.ROBOT_RND_LMT * COM_BTL_CONST.ROBOT_HURT_RATIO / 5, COM_BTL_CONST.ROBOT_HURT_CH_RATIO, 0);
let robotTotalHurt = 0;
teamStatus.bossHpArr.forEach(boss => {
if (boss.curHp >= eachHurtHp) {
robotTotalHurt += eachHurtHp;
boss.curHp -= eachHurtHp;
} else if (boss.curHp > 0) { // 丢弃溢出的伤害
robotTotalHurt += boss.curHp;
boss.curHp = 0;
}
});
teamStatus.bossCurHp -= robotTotalHurt;
roleSt.totalDmg += robotTotalHurt;
// 输出回合一到机器人武将集体阵亡
if (curRnd === COM_BTL_CONST.ROBOT_RND_LMT) {
roleSt.killed === roleSt.heroes;
}
}
});
teamStatus.curRnd = curRnd;