| @@ -393,29 +393,25 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,typeAndOr,rares,awoken | |||||
| { | { | ||||
| let cardsRange = cards.concat(); //这里需要复制一份原来的数组,不然若无筛选,后面的排序会改变初始Cards | 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); | 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 //不限定顺序时 | }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) | if (types.length>0) | ||||