寻宝:修改机器人伤害计算机制
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user