From 1ca3ba76b7f05a22533cb320767992d7eeba6a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Mon, 23 Mar 2020 01:13:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B0=E5=AF=8C=E7=AD=9B=E9=80=89=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- languages/zh-CN.js | 128 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 102 insertions(+), 26 deletions(-) diff --git a/languages/zh-CN.js b/languages/zh-CN.js index 89932eef..5ad0947c 100644 --- a/languages/zh-CN.js +++ b/languages/zh-CN.js @@ -2,8 +2,9 @@ //查找原先完整技能 function findFullSkill(subSkill){ - const parentSkill = Skills.find(ss=>(ss.type === 116 || ss.type === 118 || ss.type === 138) && ss.params.includes(subSkill.id)); - return parentSkill || subSkill; + const parentSkill = Skills.find(ss=>(ss.type === 116 || ss.type === 118 || ss.type === 138) && ss.params.includes(subSkill.id)) || subSkill; + const aCard = Cards.find(card=>card.activeSkillId == parentSkill.id || card.leaderSkillId == parentSkill.id); + return {skill:parentSkill,card:aCard}; } //document.querySelector(".edit-box .row-mon-id .m-id").type = "number"; //Skills.filter(s=>{const sk = s.params; return s.type == 156;}).map(findFullSkill) @@ -409,15 +410,15 @@ function parseSkillDescription(skill) str = `${sk[0]}回合内${typeN(sk[1])}类型的攻击力×${sk[2]/100}倍`; break; case 90: - strArr = sk.slice(1,sk.length-1); - str = `${sk[0]}回合内${strArr.map(attrN).join("、")}属性的攻击力×${sk[sk.length-1]/100}倍`; + strArr = sk.slice(1,-1); + str = `${sk[0]}回合内${strArr.filter(sk=>sk<5).map(attrN).join("、")}属性的攻击力${strArr.includes(5)?'、回复力':''}×${sk[sk.length-1]/100}倍`; break; case 91: - str = `${sk.slice(0,sk.length-1).map(attrN).join("、")}属性宝珠强化`; + str = `${sk.slice(0,-1).map(attrN).join("、")}属性宝珠强化`; if (sk[sk.length-1] != 6) str += `未知 参数${sk.length-1} ${sk[sk.length-1]}`; break; case 92: - strArr = sk.slice(1,sk.length-1); + strArr = sk.slice(1,-1); str = `${sk[0]}回合内${strArr.map(typeN).join("、")}类型的攻击力×${sk[sk.length-1]/100}倍`; break; case 93: @@ -1615,14 +1616,37 @@ function parseBigNumber(number) return subskills.some(subskill=>subskill.type == searchType && (subskill.params[0] & 960) > 0); } })}, - {name:"所有顶回复",function:cards=>cards.filter(card=>{ - const searchType = 50; + {name:"所有顶回复力",function:cards=>cards.filter(card=>{ + const searchTypeArray = [50,90]; const skill = Skills[card.activeSkillId]; - if (skill.type == searchType && skill.params[1] === 5) + if (searchTypeArray.includes(skill.type) && skill.params.slice(1,-1).includes(5)) return true; else if (skill.type == 116 || skill.type == 118){ const subskills = skill.params.map(id=>Skills[id]); - return subskills.some(subskill=>subskill.type == searchType && subskill.params[1] === 5); + return subskills.some(subskill=> + searchTypeArray.includes(subskill.type) && subskill.params.slice(1,-1).includes(5) + ); + } + })}, + {name:"所有顶攻击力",function:cards=>cards.filter(card=>{ + const searchTypeArray = [ + 88,91, //类型的 + 50,90, //属性的,要排除回复力 + 156,168, //宝石姬 + ]; + const skill = Skills[card.activeSkillId]; + if ((skill.type==88 || skill.type==91) || //类型的 + (skill.type==50 || skill.type==90) && skill.params.slice(1,-1).some(sk=>sk!=5) || //属性的,要排除回复力 + skill.type==156 && skill.params[4] == 2 || skill.type==168 //宝石姬的 + ) + return true; + else if (skill.type == 116 || skill.type == 118){ + const subskills = skill.params.map(id=>Skills[id]); + return subskills.some(subskill=> + (subskill.type==88 || subskill.type==91) || //类型的 + (subskill.type==50 || subskill.type==90) && subskill.params.slice(1,-1).some(sk=>sk!=5) || //属性的,要排除回复力 + subskill.type==156 && subskill.params[4] == 2 || subskill.type==168 //宝石姬的 + ); } })}, {name:"所有顶手指",function:cards=>cards.filter(card=>{ @@ -1771,28 +1795,49 @@ function parseBigNumber(number) b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0]; return a_pC - b_pC; })}, - {name:"所有减伤(按减伤比率排序)",function:cards=>cards.filter(card=>{ - const searchType = 3; + {name:"所有减伤(含宝石姬类,按减伤比率排序)",function:cards=>cards.filter(card=>{ + const searchTypeArray = [3,156]; const skill = Skills[card.activeSkillId]; - if (skill.type == searchType) + if (skill.type == 3 || + skill.type == 156 && skill.params[4]==3 + ) return true; else if (skill.type == 116 || skill.type == 118){ const subskills = skill.params.map(id=>Skills[id]); - return subskills.some(subskill=>subskill.type == searchType); + return subskills.some(subskill=> + subskill.type == 3 || + subskill.type == 156 && subskill.params[4]==3 + ); } }).sort((a,b)=>{ - const searchType = 3; + const searchTypeArray = [3,156]; const a_s = Skills[a.activeSkillId], b_s = Skills[b.activeSkillId]; - let a_pC = 0,b_pC = 0; - a_pC = (a_s.type == searchType) ? - a_s.params[1] : - a_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[1]; - b_pC = (b_s.type == searchType) ? - b_s.params[1] : - b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[1]; - return a_pC - b_pC; + + //找到真正生效的子技能 + const a_ss = searchTypeArray.includes(a_s.type) ? + a_s : + a_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)); + const b_ss = searchTypeArray.includes(b_s.type) ? + b_s : + b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)); + let sortNum = b_ss.type - a_ss.type; //先分开宝石姬与非宝石姬 + if (!sortNum) + { + let a_pC = 0,b_pC = 0; + if (a_ss.type == 3) + { + a_pC = a_ss.params[1]; + b_pC = b_ss.params[1]; + }else + { + a_pC = a_ss.params[5]; + b_pC = b_ss.params[5]; + } + sortNum = a_pC - b_pC; + } + return sortNum; })}, - {name:"所有无敌-减伤100%(按无敌回合数排序)",function:cards=>cards.filter(card=>{ + {name:"所有无敌-减伤100%(不含宝石姬,按无敌回合数排序)",function:cards=>cards.filter(card=>{ const searchType = 3; const skill = Skills[card.activeSkillId]; if (skill.type == searchType && skill.params[1]>=100) @@ -1844,6 +1889,37 @@ function parseBigNumber(number) return subskills.some(subskill=>subskill.type == searchType); } })}, + {name:"所有受伤反击",function:cards=>cards.filter(card=>{ + const searchType = 60; + 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=>Skills[id]); + return subskills.some(subskill=>subskill.type == searchType); + } + })}, + {name:"所有变为全体攻击(按回合数排序)",function:cards=>cards.filter(card=>{ + const searchType = 51; + 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=>Skills[id]); + return subskills.some(subskill=>subskill.type == searchType); + } + }).sort((a,b)=>{ + const searchType = 5; + const a_s = Skills[a.activeSkillId], b_s = Skills[b.activeSkillId]; + let a_pC = 0,b_pC = 0; + a_pC = (a_s.type == searchType) ? + a_s.params[0] : + a_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0]; + b_pC = (b_s.type == searchType) ? + b_s.params[0] : + b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0]; + return a_pC - b_pC; + })}, {name:"====队长技====",function:cards=>cards}, {name:"所有普通追打(按追打比率排序)",function:cards=>cards.filter(card=>{ const searchType = 12; @@ -1869,11 +1945,11 @@ function parseBigNumber(number) {name:"所有固伤追击",function:cards=>cards.filter(card=>{ const searchTypeArray = [199,200,201]; const skill = Skills[card.leaderSkillId]; - if (searchTypeArray.some(t=>skill.type == t)) + if (searchTypeArray.includes(skill.type)) return true; else if (skill.type == 138){ const subskills = skill.params.map(id=>Skills[id]); - return subskills.some(subskill=>searchTypeArray.some(t=>subskill.type == t)); + return subskills.some(subskill=>searchTypeArray.includes(subskill.type)); } })}, {name:"所有队长+C(按+C数排序)",function:cards=>cards.filter(card=>{