重新修订不限定属性顺序时的搜索

This commit is contained in:
枫谷剑仙 2024-05-31 02:34:59 +08:00
parent b60dc1076a
commit d568702e34
3 changed files with 10 additions and 8 deletions

View File

@ -959,7 +959,7 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
if (notWeapon) cardsRange = cardsRange.filter(card=>!card.awakenings.includes(49) && //不是武器
!card.stackable); //不可堆叠
//属性
const anyAttrsFlag = 0b1111101;
const anyAttrsFlag = 0b1011111;
const isAnyAttrs = sAttrs.map(attr=>attr === 0 || (attr & anyAttrsFlag) == anyAttrsFlag);
if (isAnyAttrs.some(any=>!any)) { //当任一属性不为任意颜色时才需要筛选属性,否则跳过属性筛选
//如果固定顺序就直接使用当前颜色顺序;否则不考虑顺序时,去除任意色
@ -979,8 +979,9 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
});
}
else {//不限定顺序时
const attrFlags = sAttrs.filter(attr=>attr > 0 && (attr & anyAttrsFlag) !== anyAttrsFlag);
const notAnyAttrsCount = isAnyAttrs.filter(b=>!b).length;
//const attrFlags = sAttrs.filter(attr=>attr > 0 && (attr & anyAttrsFlag) !== anyAttrsFlag);
const attrFlags = sAttrs.map(attr=>attr || anyAttrsFlag);
//const notAnyAttrsCount = isAnyAttrs.filter(b=>!b).length;
cardsRange = cardsRange.filter(({attrs:cAttrs_, id}) => {
const cAttrs = cAttrs_.concat();
if (cAttrs[1] == undefined) cAttrs[1] = 6;
@ -997,11 +998,12 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
// const columValue = matrix3x3.reduce((p,v)=>p | v[i],0);
// columValues.push(columValue);
// }
if (!rowValues.every(Boolean)) return false; //如果有哪个选择器没有匹配上,直接跳过
const crossValue = cAttrs.map((cAttr, idx, arr)=> {
return arr.filter(item=>item===cAttr).length <= rowValues.filter(item=>item & 1 << cAttr).length;
});
const match = rowValues.every(Boolean) && crossValue.every(Boolean);
const match = crossValue.every(Boolean);
// if (match) {
// console.debug("id: %d, matrix3x3: %o, rowValues: %o, columValues: %o, crossValue: %o", id, matrix3x3, rowValues, columValues, crossValue);
// }

View File

@ -6167,7 +6167,7 @@ function editMember(teamNum, isAssist, indexInTeam) {
//超觉醒
//const monEditCurrentSAwokenRow = monEditOuterAwokensRow.querySelector(".current-super-awoken");
const mSAwokenIcon = monEditOuterAwokensRow.querySelector("#current-super-awoken-icon");
mSAwokenIcon.setAttribute("data-awoken-icon", mon.sawoken);
mSAwokenIcon.setAttribute("data-awoken-icon", mon.sawoken ?? 0);
const monEditLv = settingBox.querySelector(".row-mon-level .m-level");
monEditLv.value = mon.level || 1;
@ -6330,7 +6330,6 @@ function editBoxChangeMonId(id) {
//超觉醒
const mSAwokenIcon = monEditOuterAwokensRow.querySelector("#current-super-awoken-icon");
mSAwokenIcon.classList.toggle("sync-awakening", Boolean(card.syncAwakening));
const monEditSAwokensRow = monEditOuterAwokensRow.querySelector(".row-mon-super-awoken");
const monEditSAwokensUl = monEditSAwokensRow.querySelector(".awoken-ul");
@ -6378,6 +6377,7 @@ function editBoxChangeMonId(id) {
btn.onclick = setSAwoken;
monEditSAwokensUl.append(btn);
});
mSAwokenIcon.classList.toggle("sync-awakening", Boolean(card.syncAwakening));
const monEditLvMax = settingBox.querySelector(".m-level-btn-max");
//monEditLvMax.textContent = monEditLvMax.value = card.maxLevel;

View File

@ -27603,11 +27603,11 @@ const cachesMap = new Map([
],
[
"script-universal_function.js",
"368b8e11f5445f28cb3ffaa422a93cda"
"6a6e0f1227206a263e2dde6995889bcb"
],
[
"script.js",
"9693e440ea12bd7b170a4453055c5467"
"e51ac34e750f596abdb654eb315fe345"
],
[
"solo.html",