更改怪物搜索的属性部分的代码

This commit is contained in:
枫谷剑仙 2020-11-21 13:06:47 +08:00
parent b61473c70c
commit d88bcd3afe
1 changed files with 14 additions and 18 deletions

View File

@ -393,29 +393,25 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,typeAndOr,rares,awoken
{
let cardsRange = cards.concat(); //这里需要复制一份原来的数组不然若无筛选后面的排序会改变初始Cards
//属性
if (attr1 != null && attr1 === attr2)
if (attr1 != null && attr1 === attr2 || //主副属性一致并不为空
(attr1 === 6 && attr2 === -1)) //主副属性都为“无”
{ //当两个颜色相同时,主副一样颜色的只需判断一次
cardsRange = cardsRange.filter(c=>c.attrs[0] === attr1 && c.attrs[1] === attr1);
}else if (fixMainColor || attr1 === 6 || attr2 === -1) //如果固定了顺序,或者主副属性选的是无
}else if (fixMainColor) //如果固定了顺序
{
if (attr1 != null)
{
cardsRange = cardsRange.filter(c=>c.attrs[0] == attr1);
}
if (attr2 != null)
{
cardsRange = cardsRange.filter(c=>c.attrs[1] == attr2);
}
const a1null = attr1 === null, a2null = attr2 === null;
cardsRange = cardsRange.filter(c=>
(a1null ? true : c.attrs[0] === attr1) &&
(a2null ? true : c.attrs[1] === attr2)
);
}else //不限定顺序时
{
if (attr1 != null)
{
cardsRange = cardsRange.filter(c=>c.attrs.includes(attr1));
}
if (attr2 != null)
{
cardsRange = cardsRange.filter(c=>c.attrs.includes(attr2));
}
const search_attrs = [attr1, attr2].filter(a => a !== null && a >= 0 && a<=5); //所有非空属性
const anone = attr1 === 6 || attr2 === -1; //是否有“无”属性
cardsRange = cardsRange.filter(c=>
search_attrs.every(a=>c.attrs.includes(a)) &&
(anone ? (c.attrs.includes(6) || c.attrs.includes(-1)) : true)
);
}
//类型
if (types.length>0)