修复地下成强化和阴阳同时存在时的计算误差
This commit is contained in:
parent
c70942aca0
commit
7c814e707a
|
@ -783,7 +783,7 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) {
|
|||
}
|
||||
|
||||
//倍率类觉醒的比例,直接从1开始乘
|
||||
const n_awokenScale = previousAwokenScale[idx].reduce(calculateAwokenScale, 1);
|
||||
const n_previousAwokenScale = previousAwokenScale[idx].reduce(calculateAwokenScale, 1);
|
||||
//觉醒增加的数值
|
||||
const n_awoken = awokenList.length > 0 ?
|
||||
Math.round(awokenAdd[idx].reduce((previous, aw) => {
|
||||
|
@ -802,32 +802,26 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) {
|
|||
return previous + la.scale * latentCount;
|
||||
}, 0) :
|
||||
0;
|
||||
// if (member.id === 10783 && idx === 0) {
|
||||
// console.debug(n_base, n_awokenScale, n_latentScale)
|
||||
// }
|
||||
let reValue = Math.round(n_base * n_awokenScale) + Math.round(n_base * n_latentScale) + n_plus + n_awoken + Math.round((n_assist_base + n_assist_plus) * bonusScale[idx]);
|
||||
//因为语音觉醒觉醒无效也生效,所以这里需要计算
|
||||
let reValueNoAwoken = Math.round(n_base * n_awokenScale) + n_plus + Math.round((n_assist_base + n_assist_plus) * bonusScale[idx]);
|
||||
|
||||
//觉醒生效时的协力、语音觉醒等的倍率
|
||||
reValue = Math.floor(reValue * latterAwokenScale[idx].reduce(calculateAwokenScale, 1));
|
||||
|
||||
//都要做四舍五入
|
||||
if (isDge && dgeRate[idx] !== 1)
|
||||
{
|
||||
let rate = dgeRate[idx];
|
||||
let dgeScale = 1; //地下城强化
|
||||
if (isDge && dgeRate[idx] !== 1) {
|
||||
dgeScale = dgeRate[idx];
|
||||
//计算攻击力,有浮游觉醒,且比例小于1时
|
||||
if (idx === 1 && rate < 1 && awokenList.includes(106)) {
|
||||
if (idx === 1 && dgeScale < 1 && awokenList.includes(106)) {
|
||||
//比例乘以20,但是不得大于1
|
||||
rate = Math.min(1, rate * 20);
|
||||
dgeScale = Math.min(1, rate * 20);
|
||||
}
|
||||
reValue = Math.round(reValue * rate);
|
||||
reValueNoAwoken = Math.round(reValueNoAwoken * rate);
|
||||
}else
|
||||
{
|
||||
reValue = Math.round(reValue);
|
||||
reValueNoAwoken = Math.round(reValueNoAwoken);
|
||||
}
|
||||
|
||||
let reValue = Math.round(n_base * n_previousAwokenScale) + n_plus +
|
||||
Math.round(n_base * n_latentScale) + n_awoken +
|
||||
Math.round((n_assist_base + n_assist_plus) * bonusScale[idx]);
|
||||
//觉醒生效时的协力、1.5三维、阴阳、熟成等的倍率
|
||||
reValue = Math.floor(reValue * latterAwokenScale[idx].reduce(calculateAwokenScale, 1) * dgeScale);
|
||||
//因为语音觉醒觉醒无效也生效,所以这里需要计算
|
||||
let reValueNoAwoken = Math.round(n_base * n_previousAwokenScale) + n_plus +
|
||||
Math.round((n_assist_base + n_assist_plus) * bonusScale[idx]);
|
||||
reValueNoAwoken = Math.floor(reValueNoAwoken * dgeScale)
|
||||
|
||||
if (idx < 2) //idx顺序为HP、ATK、RCV
|
||||
{ //HP和ATK最低为1
|
||||
reValue = Math.max(reValue, 1);
|
||||
|
|
Loading…
Reference in New Issue