diff --git a/languages/zh-CN.js b/languages/zh-CN.js index e21a2995..80745078 100644 --- a/languages/zh-CN.js +++ b/languages/zh-CN.js @@ -702,19 +702,19 @@ function parseSkillDescription(skill) str = ""; if (sk[0] || sk[1]) str += `${getAttrTypeString(flags(sk[0]),flags(sk[1]))}宠物`; if (sk[2] || sk[3] || sk[4]) str += `的${getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]})}`; - if (sk[5]) str += `${str.length>0?",":""}受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`; + if (sk[5]) str += `${str.length>0?",":""}受到的${getAttrTypeString(flags(sk[5]))}属性伤害减少${sk[6]}%`; break; case 130: str = `HP ${sk[0]}%以下时`; if (sk[1] || sk[2]) str += `${getAttrTypeString(flags(sk[1]),flags(sk[2]))}宠物`; if (sk[3] || sk[4]) str += `的${getFixedHpAtkRcvString({atk:sk[3],rcv:sk[4]})}`; - if (sk[5]) str += `,受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`; + if (sk[5]) str += `,受到的${getAttrTypeString(flags(sk[5]))}属性伤害减少${sk[6]}%`; break; case 131: str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时`; if (sk[1] || sk[2]) str += `${getAttrTypeString(flags(sk[1]),flags(sk[2]))}宠物`; if (sk[3] || sk[4]) str += `的${getFixedHpAtkRcvString({atk:sk[3],rcv:sk[4]})}`; - if (sk[5]) str += `,受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`; + if (sk[5]) str += `,受到的${getAttrTypeString(flags(sk[5]))}属性伤害减少${sk[6]}%`; break; case 132: str = `${sk[0]}回合内,宝珠移动时间`; @@ -1187,7 +1187,7 @@ function parseSkillDescription(skill) break; case 183: str = getAttrTypeString(flags(sk[0]),flags(sk[1])) + "宠物的"; - if (sk[3] || sk[4]) str+= ` HP ${sk[2]}%以上时`; + if (sk[3] || sk[4]) str+= ` HP ${sk[2]==100?"全满":`${sk[2]}%以上`}时`; if (sk[3]) str+= `${getFixedHpAtkRcvString({atk:sk[3]})}`; if (sk[4]) str += `,受到的伤害减少${sk[4]}%`; if (sk[6] || sk[7]) str+= ` HP ${sk[5]||sk[2]}%以下时`; @@ -1468,7 +1468,7 @@ function parseBigNumber(number) break; case 38: //血线下 + 几率 case 43: //血线上 + 几率 - scale = (noHPneed || allAttr && sk[1]<100) ? 0 : sk[2]/100; + scale = (noHPneed || allAttr) ? 0 : sk[2]/100; break; case 129: //无条件盾,属性个数不固定 case 163: //无条件盾,属性个数不固定 @@ -1874,10 +1874,15 @@ function parseBigNumber(number) const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getHPScale(a_s) - getHPScale(b_s); })}, + {name:"队长血倍率 == 1",function:cards=>cards.filter(card=>{ + const skill = Skills[card.leaderSkillId]; + const HPscale = getHPScale(skill); + return HPscale === 1; + })}, {name:"队长血倍率[0, 1)(按倍率排序)",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; const HPscale = getHPScale(skill); - return HPscale<1; + return HPscale < 1; }).sort((a,b)=>{ const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getHPScale(a_s) - getHPScale(b_s); @@ -1886,7 +1891,7 @@ function parseBigNumber(number) {name:"队长盾减伤[75%, 100%](按倍率排序)",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; const reduceScale = getReduceScale(skill); - return reduceScale>=0.75; + return reduceScale >= 0.75; }).sort((a,b)=>{ const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getReduceScale(a_s) - getReduceScale(b_s); @@ -1894,7 +1899,7 @@ function parseBigNumber(number) {name:"队长盾减伤[50%, 75%)(按倍率排序)",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; const reduceScale = getReduceScale(skill); - return reduceScale>=0.5 && reduceScale < 0.75; + return reduceScale >= 0.5 && reduceScale < 0.75; }).sort((a,b)=>{ const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getReduceScale(a_s) - getReduceScale(b_s); @@ -1902,7 +1907,7 @@ function parseBigNumber(number) {name:"队长盾减伤[25%, 50%)(按倍率排序)",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; const reduceScale = getReduceScale(skill); - return reduceScale>=0.25 && reduceScale < 0.5; + return reduceScale >= 0.25 && reduceScale < 0.5; }).sort((a,b)=>{ const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getReduceScale(a_s) - getReduceScale(b_s); @@ -1910,11 +1915,16 @@ function parseBigNumber(number) {name:"队长盾减伤(0%, 25%)(按倍率排序)",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; const reduceScale = getReduceScale(skill); - return reduceScale>0 && reduceScale < 0.25; + return reduceScale > 0 && reduceScale < 0.25; }).sort((a,b)=>{ const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getReduceScale(a_s) - getReduceScale(b_s); })}, + {name:"队长盾减伤 == 0",function:cards=>cards.filter(card=>{ + const skill = Skills[card.leaderSkillId]; + const reduceScale = getReduceScale(skill); + return reduceScale === 0; + })}, {name:"队长盾减伤-必须全属性减伤",function:cards=>cards.filter(card=>{ const skill = Skills[card.leaderSkillId]; return getReduceScale(skill, true) > 0; @@ -1931,6 +1941,32 @@ function parseBigNumber(number) const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId]; return getReduceScale(a_s) - getReduceScale(b_s); })}, + {name:"队长盾减伤-无条件盾",function:cards=>cards.filter(card=>{ + //获取盾减伤比例 + function getReduceScale_unconditional(ls) + { + const sk = ls.params; + let scale = 0; + switch (ls.type) + { + case 16: //无条件盾 + scale = sk[0]/100; + break; + case 129: //无条件盾,属性个数不固定 + case 163: //无条件盾,属性个数不固定 + scale = (sk[5] & 31) != 31 ? 0 : sk[6]/100; + break; + + case 138: //调用其他队长技 + scale = sk.reduce((pmul,skid)=> 1 - (1-pmul) * (1-getReduceScale_unconditional(Skills[skid])),0); + break; + default: + } + return scale || 0; + } + const skill = Skills[card.leaderSkillId]; + return getReduceScale_unconditional(skill) > 0; + })}, {name:"======主动技======",function:cards=>cards}, {name:"1 CD",function:cards=>cards.filter(card=>{