diff --git a/languages/zh-CN.js b/languages/zh-CN.js index a0a86d96..983695d5 100644 --- a/languages/zh-CN.js +++ b/languages/zh-CN.js @@ -1556,7 +1556,7 @@ function parseSkillDescription(skill) const specialSearchFunctions = [ {name:"不做筛选",function:cards=>cards}, {name:"======队长技======",function:cards=>cards}, - {name:"队长技固伤追击(按伤害排序)",function:cards=>{ + {name:"队长技固伤追击(按伤害排序,内测附加显示)",function:cards=>{ const searchTypeArray = [199,200,201]; function getSkillFixedDamage(skill) { @@ -1589,8 +1589,27 @@ function parseSkillDescription(skill) getSkillFixedDamage(b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type))); return a_pC - b_pC; }); + },addition:card=>{ + const searchTypeArray = [199,200,201]; + function getSkillFixedDamage(skill) + { + switch (skill.type) + { + case 199: case 200: + return skill.params[2]; + case 201: + return skill.params[5]; + default: + return 0; + } + } + const skill = Skills[card.leaderSkillId]; + const value = searchTypeArray.includes(skill.type) ? + getSkillFixedDamage(skill) : + getSkillFixedDamage(skill.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type))); + return document.createTextNode(value.bigNumberToString() + "固伤"); }}, - {name:"队长技+C(按+C数排序)",function:cards=>{ + {name:"队长技+C(按+C数排序,内测附加显示)",function:cards=>{ const searchTypeArray = [192,194,206,209,210]; function getSkillAddCombo(skill) { @@ -1627,6 +1646,29 @@ function parseSkillDescription(skill) getSkillAddCombo(b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type))); return a_pC - b_pC; }); + },addition:card=>{ + const searchTypeArray = [192,194,206,209,210]; + function getSkillAddCombo(skill) + { + switch (skill.type) + { + case 192: case 194: + return skill.params[3]; + case 206: + return skill.params[6]; + case 209: + return skill.params[0]; + case 210: + return skill.params[2]; + default: + return 0; + } + } + const skill = Skills[card.leaderSkillId]; + const value = searchTypeArray.includes(skill.type) ? + getSkillAddCombo(skill) : + getSkillAddCombo(skill.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type))); + return document.createTextNode(value.bigNumberToString() + "C"); }}, {name:"7×6 版面",function:cards=>cards.filter(card=>{ const searchTypeArray = [162,186]; @@ -1648,7 +1690,7 @@ function parseSkillDescription(skill) return subskills.some(subskill=>searchTypeArray.some(t=>subskill.type == t)); } })}, - {name:"队长技加/减秒(按秒数排序)",function:cards=>cards.filter(card=>{ + {name:"队长技加/减秒(按秒数排序,内测附加显示)",function:cards=>cards.filter(card=>{ const searchTypeArray = [15,185]; const skill = Skills[card.leaderSkillId]; if (searchTypeArray.some(t=>skill.type == t)) @@ -1668,8 +1710,15 @@ function parseSkillDescription(skill) b_s.params[0] : b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.some(t=>subskill.type == t)).params[0]; return a_pC - b_pC; - })}, - {name:"固定操作时间(按时间排序)",function:cards=>cards.filter(card=>{ + }),addition:card=>{ + const searchTypeArray = [15,185]; + const skill = Skills[card.leaderSkillId]; + const value = searchTypeArray.includes(skill.type) ? + skill.params[0] : + skill.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)).params[0]; + return document.createTextNode((value > 0 ? "+" : "") + (value/100) + "秒"); + }}, + {name:"固定操作时间(按时间排序,内测附加显示)",function:cards=>cards.filter(card=>{ const searchType = 178; const skill = Skills[card.leaderSkillId]; if (skill.type == searchType) @@ -1689,7 +1738,14 @@ function parseSkillDescription(skill) b_s.params[0] : b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0]; return a_pC - b_pC; - })}, + }),addition:card=>{ + const searchType = 178; + const skill = Skills[card.leaderSkillId]; + const value = skill.type == searchType ? + skill.params[0] : + skill.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0]; + return document.createTextNode("固定" + value + "秒"); + }}, {name:"消除宝珠时计算防御的追打(按追打比率排序)",function:cards=>cards.filter(card=>{ const searchType = 12; const skill = Skills[card.leaderSkillId]; @@ -3703,11 +3759,15 @@ function parseSkillDescription(skill) //将搜索按钮强制改成特殊搜索 const searchStart = controlDiv.querySelector(".search-start"); searchStart.onclick = function(){ - let result = Cards; - specialSearchArray.forEach(ss=> - result = specialSearchFunctions[parseInt(ss.value,10)].function(result) - ); - searchBox.startSearch(result); + const result = specialSearchArray.reduce((pre,ss)=> + { + const funcObj = specialSearchFunctions[parseInt(ss.value,10)]; + if (!funcObj) return pre; + pre.result = funcObj.function(pre.result); //结果进一步筛选 + if (funcObj.addition) pre.addition.push(funcObj.addition); //如果有附加显示,则添加到列表 + return pre; + }, {result: Cards, addition: []}); + searchBox.startSearch(result.result, result.addition); }; controlDiv.insertBefore(fragment,controlDiv.firstElementChild); const searchClear = controlDiv.querySelector(".search-clear"); diff --git a/script.js b/script.js index 604e76eb..e6dc0036 100644 --- a/script.js +++ b/script.js @@ -1567,6 +1567,7 @@ function initialize() { (customAdditionalFunction instanceof Array ? customAdditionalFunction : null) }; searchMonList.originalHeads = searchArr.map(card => createCardHead(card.id, additionalOption)); + searchMonList.customAddition = additionalOption.customAddition; //对头像列表进行排序 const headsArray = sortHeadsArray(searchMonList.originalHeads); headsArray.forEach(head => fragment.appendChild(head)); @@ -1586,7 +1587,7 @@ function initialize() { if (Array.isArray(searchMonList.originalHeads)) { const oldArr = searchMonList.originalHeads.map(head=>head.card); - showSearch(oldArr); + showSearch(oldArr, searchMonList.customAddition); } } s_add_show_awoken.onchange = reShowSearch; @@ -1594,7 +1595,7 @@ function initialize() { s_add_show_abilities.onchange = reShowSearch; s_add_show_abilities_with_awoken.onchange = reShowSearch; - const startSearch = function(cards) { + const startSearch = function(cards, customAdditionalFunction) { const attr1Filter = s_attr1s.filter(returnCheckedInput).map(returnInputValue); const attr2Filter = s_attr2s.filter(returnCheckedInput).map(returnInputValue); let attr1, attr2; @@ -1637,7 +1638,7 @@ function initialize() { s_includeSuperAwoken.checked ); //console.log("搜索结果", searchResult); - showSearch(searchResult); + showSearch(searchResult, customAdditionalFunction); }; searchBox.startSearch = startSearch; searchStart.onclick = function() { diff --git a/style.css b/style.css index ba190dfe..396424b0 100644 --- a/style.css +++ b/style.css @@ -997,6 +997,11 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after { color: #dfd; } +.custom-addition +{ + font-size: 14px; + max-width: 75px; +} /*.setting-box .row-mon-id .open-search::before{