|
|
|
@@ -395,8 +395,8 @@ function awokenCountInTeam(team, awokenIndex, solo, teamsCount) { |
|
|
|
const assistCard = Cards[assist.id];
|
|
|
|
//启用的觉醒数组片段
|
|
|
|
let enableAwoken = card.awakenings.slice(0, mon.awoken);
|
|
|
|
//单人、3人时,大于等于100级时增加超觉醒
|
|
|
|
if ((solo || teamsCount === 3) && mon.sawoken >= 0 && mon.level >= 100) {
|
|
|
|
//单人、3人时,大于等于100级且297时增加超觉醒
|
|
|
|
if ((solo || teamsCount === 3) && mon.sawoken >= 0 && mon.level >= 100 && mon.plus.every(p=>p>=99)) {
|
|
|
|
const sAwokenT = card.superAwakenings[mon.sawoken];
|
|
|
|
if (sAwokenT >= 0)
|
|
|
|
enableAwoken = enableAwoken.concat(sAwokenT);
|
|
|
|
@@ -508,31 +508,34 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) { |
|
|
|
const dge = formation.dungeonEnchance;
|
|
|
|
const dgeRate = [dge.rate.hp, dge.rate.atk, dge.rate.rcv];
|
|
|
|
const isDge = dge.rarities.includes(memberCard.rarity) || memberCard.attrs.some(attr=>dge.attrs.includes(attr)) || memberCard.types.some(type=>dge.types.includes(type));
|
|
|
|
|
|
|
|
//储存点亮的觉醒
|
|
|
|
let awokenList = memberCard.awakenings.slice(0, member.awoken);
|
|
|
|
//单人、3人时,大于等于100级且297时增加超觉醒
|
|
|
|
if ((solo || teamsCount === 3) && member.sawoken >= 0 && member.level >= 100 && member.plus.every(p=>p>=99)) {
|
|
|
|
const sAwokenT = memberCard.superAwakenings[member.sawoken];
|
|
|
|
if (sAwokenT >= 0) awokenList.push(sAwokenT)
|
|
|
|
}
|
|
|
|
//如果有武器还要计算武器的觉醒
|
|
|
|
let enableBouns = false;
|
|
|
|
if (assistCard?.id > 0 && assistCard.enabled) {
|
|
|
|
const assistAwokenList = assistCard.awakenings.slice(0, assist.awoken); //储存武器点亮的觉醒
|
|
|
|
if (assistAwokenList.includes(49)) { //49是武器觉醒,确认已经点亮了武器觉醒
|
|
|
|
awokenList.push(...assistAwokenList);
|
|
|
|
}
|
|
|
|
enableBouns = memberCard.attrs[0] === assistCard.attrs[0] || memberCard.attrs[0] == 6 || assistCard.attrs[0] == 6;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const abilitys = memberCurves.map((ab, idx) => {
|
|
|
|
const n_base = Math.round(curve(ab, member.level, memberCard.maxLevel, memberCard.limitBreakIncr, limitBreakIncr120[idx])); //等级基础三维
|
|
|
|
const n_plus = member.plus[idx] * plusAdd[idx]; //加值增加量
|
|
|
|
let n_assist_base = 0,
|
|
|
|
n_assist_plus = 0; //辅助的bonus
|
|
|
|
let awokenList = memberCard.awakenings.slice(0, member.awoken); //储存点亮的觉醒
|
|
|
|
//单人、3人时,大于等于100级时增加超觉醒
|
|
|
|
if ((solo || teamsCount === 3) && member.sawoken >= 0 && member.level >= 100) {
|
|
|
|
const sAwokenT = memberCard.superAwakenings[member.sawoken];
|
|
|
|
if (sAwokenT >= 0)
|
|
|
|
awokenList = awokenList.concat(sAwokenT);
|
|
|
|
}
|
|
|
|
//如果有武器还要计算武器的觉醒
|
|
|
|
if (assistCard && assistCard.id > 0 && assistCard.enabled) {
|
|
|
|
const assistAwokenList = assistCard.awakenings.slice(0, assist.awoken); //储存武器点亮的觉醒
|
|
|
|
if (assistAwokenList.includes(49)) //49是武器觉醒,确认已经点亮了武器觉醒
|
|
|
|
{
|
|
|
|
awokenList = awokenList.concat(assistAwokenList);
|
|
|
|
}
|
|
|
|
if (memberCard.attrs[0] === assistCard.attrs[0] || memberCard.attrs[0] == 6 || assistCard.attrs[0] == 6) {
|
|
|
|
|
|
|
|
n_assist_base = Math.round(curve(assistCurves[idx], assist.level, assistCard.maxLevel, assistCard.limitBreakIncr, limitBreakIncr120[idx])); //辅助等级基础三维
|
|
|
|
n_assist_plus = assist.plus[idx] * plusAdd[idx]; //辅助加值增加量
|
|
|
|
}
|
|
|
|
//计算辅助的额外血量
|
|
|
|
if (assistCard?.id > 0 && assistCard.enabled && enableBouns) {
|
|
|
|
n_assist_base = Math.round(curve(assistCurves[idx], assist.level, assistCard.maxLevel, assistCard.limitBreakIncr, limitBreakIncr120[idx])); //辅助等级基础三维
|
|
|
|
n_assist_plus = assist.plus[idx] * plusAdd[idx]; //辅助加值增加量
|
|
|
|
}
|
|
|
|
|
|
|
|
//用来计算倍率觉醒的最终倍率是多少,reduce用
|
|
|
|
|