修复当封觉醒时,未正确计算恢复颜色后的血量的问题。也解决了武器没有点亮变色觉醒时也变色的问题。

This commit is contained in:
枫谷剑仙 2023-12-16 01:58:02 +08:00
parent 047f542d29
commit b9c768265c
3 changed files with 24 additions and 16 deletions

View File

@ -1150,19 +1150,26 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) {
let memberArr = team[0], assistArr = team[1];
const ls1 = Skills[(Cards[leader1id] || Cards[0])?.leaderSkillId];
const ls2 = Skills[(Cards[leader2id] || Cards[0])?.leaderSkillId];
const mHpArr = memberArr.map((member, idx) => {
const ability = noAwoken ? member.abilityNoAwoken : member.ability;
const mHpArr = [];
for (let idx = 0; idx < memberArr.length ; idx++) {
let tMember = new MemberTeam(),
tAssist = new MemberAssist();
tMember.loadFromMember(memberArr[idx]);
tAssist.loadFromMember(assistArr[idx]);
if (noAwoken) { //封觉醒时本体有语音觉醒,不能直接去掉觉醒
tAssist.awoken = 0;
}
const ability = noAwoken ? tMember.abilityNoAwoken : tMember.ability;
const hp = ability ? ability[0] : 0;
if (!hp) return 0;
const mulHP = hp * memberHpMul(member, assistArr[idx], ls2, memberArr, solo) //战友队长技
* memberHpMul(member, assistArr[idx], ls1, memberArr, solo);//我方队长技
const mulHP = hp * memberHpMul(tMember, tAssist, ls2, memberArr, solo) //战友队长技
* memberHpMul(tMember, tAssist, ls1, memberArr, solo);//我方队长技
//演示用代码
//console.log("%s 第1次倍率血量%s第2次倍率血量%s",Cards[m.id].otLangName["chs"],hp1,hp2);
return Math.round(mulHP);
});
mHpArr.push(Math.round(mulHP));
}
//console.log('单个队伍血量:',mHpArr,mHpArr.reduce((p,c)=>p+c));

View File

@ -172,17 +172,18 @@ Member.prototype.effectiveAwokens = function(assist) {
return enableAwoken;
}
Member.prototype.getAttrsTypesWithWeapon = function(assist) {
let memberCard = this.card, assistCard = assist?.card;
let memberCard = this.card, assistCard = assist?.card,
assistAwakenings = assistCard?.awakenings?.slice(0, assist.awoken);
if (this.id <= 0 || !memberCard) return null; //跳过 id 0
let attrs = [...memberCard.attrs]; //属性只有两个,因此用固定的数组
let types = new Set(memberCard.types); //Type 用Set确保不会重复
let changeAttr, appendTypes;
if (assistCard?.awakenings?.includes(49)) { //如果有武器
if (assistAwakenings?.includes(49)) { //如果有武器
//更改副属性
changeAttr = assistCard.awakenings.find(ak=>ak >= 91 && ak <= 95);
changeAttr = assistAwakenings.find(ak=>ak >= 91 && ak <= 95);
if (changeAttr) attrs[1] = changeAttr - 91;
//添加类型
appendTypes = assistCard.awakenings.filter(ak=>ak >= 83 && ak <= 90);
appendTypes = assistAwakenings.filter(ak=>ak >= 83 && ak <= 90);
appendTypes = appendTypes.map(type=>
typekiller_for_type.find(t=>(type - 52) === t.awoken).type);
appendTypes.forEach(appendType=>types.add(appendType));
@ -4828,10 +4829,10 @@ function changeid(mon, monDom, latentDom, assist) {
const attrDoms = monDom.querySelectorAll(".attr"); //所有属性边框
attrDoms[0].setAttribute("data-attr", card.attrs[0]); //主属性
let subAttribute = card.attrs[1] ?? -1; //正常的副属性
let assistCard = Cards[assist?.id];
let assistCard = Cards[assist?.id], assistAwakenings = assistCard?.awakenings?.slice(0, assist.awoken);
let changeAttr;
if (assistCard && assistCard.awakenings.includes(49) && //如果传入了辅助武器
(changeAttr = assistCard.awakenings.find(ak=>ak >= 91 && ak <= 95)) //搜索改副属性的觉醒
if (assistAwakenings?.includes(49) && //如果传入了辅助武器
(changeAttr = assistAwakenings.find(ak=>ak >= 91 && ak <= 95)) //搜索改副属性的觉醒
) {
subAttribute = changeAttr - 91; //更改副属性
}

View File

@ -20563,11 +20563,11 @@ const cachesMap = new Map([
],
[
"script-universal_function.js",
"5101e4bf6261efba36ce614d13b82735"
"2b9a65a604cc3bd88d74ac8394e3efbf"
],
[
"script.js",
"06b8d6008889cb90c22135c2f05295f8"
"6981e3ee58350d6d2cac2ff5182ace40"
],
[
"solo.html",