增加很多新的技能搜素

This commit is contained in:
枫谷剑仙 2020-02-24 04:21:48 +08:00
parent e9723843c6
commit 2201b12f97
2 changed files with 155 additions and 15 deletions

View File

@ -210,7 +210,7 @@ function parseSkillDescription(skill)
str = `如当前 HP 在 HP 上限的${sk[0]}%以上的话,受到单一次致命攻击时,${sk[1]<100?`${sk[1]}的几率`:"将"}会以1点 HP 生还`;
break;
case 15:
str = `操作时间延长${sk[0]>0?`延长`:`减少`}${Math.abs(sk[0]/100)}`;
str = `操作时间${sk[0]>0?`延长`:`减少`}${Math.abs(sk[0]/100)}`;
break;
case 16:
str = `受到的所有伤害减少${sk[0]}%`;
@ -676,7 +676,6 @@ function parseSkillDescription(skill)
break;
case 152:
str = `${getOrbsAttrString(sk[0])}宝珠锁定`;
//if (sk[1]!=42 && sk[1]!=99) str += `,还有未知 参数[1]${sk[1]}`;
if (sk[1] < 42) str += `${sk[1]}`;
break;
case 153:
@ -1159,8 +1158,11 @@ function parseSkillDescription(skill)
str = `变身为${cardN(sk[0])}`;
break;
case 203:
str = `队员组成全是像素进化时,`;
if (sk[0]) str += getAttrTypeString(flags(sk[0]));
str = `队员组成全是`;
if (sk[0] === 0) str += "像素进化";
else if (sk[0] === 2)str += "转生或超转生";
else str += "未知新类型";
str += `时,`;
str += "宠物的" + getFixedHpAtkRcvString({hp:sk[1],atk:sk[2],rcv:sk[3]});
break;
case 205:
@ -1297,6 +1299,16 @@ function parseBigNumber(number)
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有上锁",function:()=>Cards.filter(card=>{
const searchType = 152;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有变身",function:()=>Cards.filter(card=>{
const searchType = 202;
const skill = Skills[card.activeSkillId];
@ -1377,6 +1389,16 @@ function parseBigNumber(number)
}).sort((a,b)=>{//优先按技能排列,其次按进化树排列
return (a.activeSkillId - b.activeSkillId) || (a.evoRootId - b.evoRootId);
})},
{name:"所有99回合掉落",function:()=>Cards.filter(card=>{
const searchType = 126;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1] >= 99) // 960 = 二进制 1111000000
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1] >= 99});
}
})},
{name:"所有顶毒",function:()=>Cards.filter(card=>{
const searchType = 126;
const skill = Skills[card.activeSkillId];
@ -1387,14 +1409,124 @@ function parseBigNumber(number)
return subskills.some(subskill=>{return subskill.type == searchType && (subskill.params[0] & 960) > 0});
}
})},
{name:"所有99回合掉落",function:()=>Cards.filter(card=>{
const searchType = 126;
{name:"所有顶回复",function:()=>Cards.filter(card=>{
const searchType = 50;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1] >= 99) // 960 = 二进制 1111000000
if (skill.type == searchType && skill.params[1] === 5)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1] >= 99});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1] === 5;});
}
})},
{name:"所有顶手指",function:()=>Cards.filter(card=>{
const searchType = 132;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有主动无天降",function:()=>Cards.filter(card=>{
const searchType = 184;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有溜",function:()=>Cards.filter(card=>{
const searchType = 146;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有威吓",function:()=>Cards.filter(card=>{
const searchType = 18;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有破防",function:()=>Cards.filter(card=>{
const searchType = 19;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有破防100%",function:()=>Cards.filter(card=>{
const searchType = 19;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1]>=100)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1]>=100});
}
})},
{name:"所有中毒",function:()=>Cards.filter(card=>{
const searchType = 4;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有减伤",function:()=>Cards.filter(card=>{
const searchType = 3;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有无敌减伤100%",function:()=>Cards.filter(card=>{
const searchType = 3;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1]>=100)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1]>=100});
}
})},
{name:"所有时间暂停",function:()=>Cards.filter(card=>{
const searchType = 5;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有刷版",function:()=>Cards.filter(card=>{
const searchType = 10;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"====队长技====",function:()=>false},
@ -1519,7 +1651,7 @@ function parseBigNumber(number)
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"指定队伍队员都是像素",function:()=>Cards.filter(card=>{
{name:"指定队伍队员类型",function:()=>Cards.filter(card=>{
const searchType = 203;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
@ -1563,15 +1695,15 @@ function parseBigNumber(number)
{name:"全部像素进化",function:()=>Cards.filter(card=>{
return card.evoMaterials.indexOf(3826)>=0;
})},
{name:"全部8格潜觉转生、超转生",function:()=>Cards.filter(card=>{
return card.is8Latent;
})},
{name:"全部110级三维成长100%",function:()=>Cards.filter(card=>{
return card.limitBreakIncr>=100;
})},
{name:"全部珠子皮肤",function:()=>Cards.filter(card=>{
return card.blockSkinId>0;
})},
{name:"全部8格浅觉",function:()=>Cards.filter(card=>{
return card.is8Latent;
})},
];
@ -1584,7 +1716,7 @@ function parseBigNumber(number)
specialSearch.options.add(new Option(sfunc.name,idx));
});
specialSearch.onchange = function(){
showSearch(specialSearchFunctions[parseInt(this.value,10)].function());
searchBox.startSearch(specialSearchFunctions[parseInt(this.value,10)].function());
}
controlDiv.appendChild(fragment);
})();

View File

@ -797,7 +797,7 @@ function initialize()
}
searchMonList.classList.remove("display-none");
};
searchStart.onclick = function(){
const startSearch = function(cards){
const attr1Filter = s_attr1s.filter(returnCheckedInput).map(returnInputValue);
const attr2Filter = s_attr2s.filter(returnCheckedInput).map(returnInputValue);
let attr1,attr2;
@ -826,7 +826,7 @@ function initialize()
const awokensFilter = s_awokensCounts.filter(btn=>parseInt(btn.innerHTML,10)>0).map(btn=>{
return {id:parseInt(btn.value,10),num:parseInt(btn.innerHTML,10)};
});
const searchResult = searchCards(Cards,
const searchResult = searchCards(cards,
attr1,attr2,
s_fixMainColor.checked,
typesFilter,
@ -849,6 +849,10 @@ function initialize()
);
showSearch(searchResult);
};
searchBox.startSearch = startSearch;
searchStart.onclick = function(){
startSearch(Cards);
};
searchClose.onclick = function(){
searchBox.classList.add("display-none");
};
@ -864,6 +868,10 @@ function initialize()
s_awokensItems.forEach(t=>{
t.classList.add("zero");
});
s_awokensEquivalent.checked = false;
s_canAssist.checked = false;
s_includeSuperAwoken.checked = false;
s_sawokens.forEach(t=>{
t.checked = false;
});