减伤增加去除血线的筛选

This commit is contained in:
枫谷剑仙 2020-10-14 01:37:44 +08:00
parent 6aa14dcc19
commit dbdc97fa93
3 changed files with 31 additions and 15 deletions

View File

@ -13,4 +13,7 @@
}
.search-box .control-div .specialSearch-clear::before {
content: "❌";
}
.specialSearch {
display: block;
}

View File

@ -1451,7 +1451,7 @@ function parseBigNumber(number)
return scale || 1;
}
//获取盾减伤比例
function getReduceScale(ls, allAttr = false)
function getReduceScale(ls, allAttr = false, noHPneed = false)
{
const sk = ls.params;
let scale = 0;
@ -1466,12 +1466,18 @@ function parseBigNumber(number)
case 36: //2个属性盾
scale = allAttr ? 0 : sk[2]/100;
break;
case 38: case 43: //血线盾 + 几率盾
scale = (allAttr && sk[1]<100) ? 0 : sk[2]/100;
case 38: //血线下 + 几率
case 43: //血线上 + 几率
scale = (noHPneed || allAttr && sk[1]<100) ? 0 : sk[2]/100;
break;
case 129: case 130: case 131: case 163: //属性个数不固定
case 129: //无条件盾,属性个数不固定
case 163: //无条件盾,属性个数不固定
scale = (allAttr && (sk[5] & 31) != 31) ? 0 : sk[6]/100;
break;
case 130: //血线下 + 属性个数不固定
case 131: //血线上 + 属性个数不固定
scale = (noHPneed || allAttr && (sk[5] & 31) != 31) ? 0 : sk[6]/100;
break;
case 151: //十字心触发
case 169: //C触发
case 198: //回血触发
@ -1486,11 +1492,11 @@ function parseBigNumber(number)
scale = sk[6]/100;
break;
case 183: //又是个有两段血线的队长技
scale = sk[4]/100;
scale = noHPneed ? 0 : sk[4]/100;
break;
case 138: //调用其他队长技
scale = sk.reduce((pmul,skid)=> 1 - (1-pmul) * (1-getReduceScale(Skills[skid], allAttr)),0);
scale = sk.reduce((pmul,skid)=> 1 - (1-pmul) * (1-getReduceScale(Skills[skid], allAttr, noHPneed)),0);
break;
default:
}
@ -1860,10 +1866,10 @@ function parseBigNumber(number)
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
return getHPScale(a_s) - getHPScale(b_s);
})},
{name:"队长血倍率[1, 1.5)(按倍率排序)",function:cards=>cards.filter(card=>{
{name:"队长血倍率(1, 1.5)(按倍率排序)",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
const HPscale = getHPScale(skill);
return HPscale >= 1 && HPscale < 1.5;
return HPscale > 1 && HPscale < 1.5;
}).sort((a,b)=>{
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
return getHPScale(a_s) - getHPScale(b_s);
@ -1877,10 +1883,6 @@ function parseBigNumber(number)
return getHPScale(a_s) - getHPScale(b_s);
})},
{name:"-----减伤盾-----",function:cards=>cards},
{name:"队长盾减伤-必须全属性减伤",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
return getReduceScale(skill, true) > 0;
})},
{name:"队长盾减伤[75%, 100%](按倍率排序)",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
const reduceScale = getReduceScale(skill);
@ -1913,7 +1915,15 @@ function parseBigNumber(number)
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
return getReduceScale(a_s) - getReduceScale(b_s);
})},
{name:"99重力不下半血-队长盾减伤[29%, 100%)(按倍率排序)",function:cards=>cards.filter(card=>{
{name:"队长盾减伤-必须全属性减伤",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
return getReduceScale(skill, true) > 0;
})},
{name:"队长盾减伤-排除血线盾",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
return getReduceScale(skill, undefined, true) > 0;
})},
{name:"满血99重力不下半血-队长盾减伤[29%, 100%)(按倍率排序)",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
const reduceScale = getReduceScale(skill);
return reduceScale>=0.29;
@ -3619,8 +3629,8 @@ function parseBigNumber(number)
const controlDiv = searchBox.querySelector(".control-div");
let fragment = document.createDocumentFragment();
const specialSearchDiv = fragment.appendChild(document.createElement("ul"))
specialSearchDiv.style.display = "block";
const specialSearchArray = new Array(4).fill(null).map((i,n)=>{
specialSearchDiv.className = "specialSearch";
const specialSearchArray = new Array(6).fill(null).map((i,n)=>{
const specialSearchLabel = specialSearchDiv.appendChild(document.createElement("li"));
specialSearchLabel.innerHTML = `筛选${n+1}:`;
const specialSearch = specialSearchLabel.appendChild(document.createElement("select"));

View File

@ -1888,6 +1888,7 @@ ul{
.board .orb-6
{ /*废*/
background-color: #d3d3d3;
border-radius: 5px;
}
.board .orb-6::before
{
@ -1896,6 +1897,7 @@ ul{
.board .orb-7
{ /*毒*/
background-color: #e831f3;
border-radius: 5px;
}
.board .orb-7::before
{
@ -1904,6 +1906,7 @@ ul{
.board .orb-8
{ /*剧毒*/
background-color: #670181;
border-radius: 5px;
}
.board .orb-8::before
{