From eb2cc9751e3c7ad0d0d00fdcdbc8be04720582aa 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, 19 Feb 2024 17:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A8=E4=BD=93=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E4=BC=A4=E5=AE=B3=E4=B8=8A=E9=99=90=E7=9A=84=E6=96=B0?= =?UTF-8?q?=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script-json_data.js | 109 ++++++++++++++++++++--------------- script-skill-parser.js | 32 ++++++---- script-universal_function.js | 26 +++++++++ service-worker.js | 64 +++++++++++++------- 4 files changed, 149 insertions(+), 82 deletions(-) diff --git a/script-json_data.js b/script-json_data.js index f5992a8b..37ef445b 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -1290,19 +1290,56 @@ const specialSearchFunctions = (function() { if (!skill) return; const sk = skill.params; const fragment = document.createDocumentFragment(); - const ul = fragment.appendChild(document.createElement("ul")); - ul.className = "team-flags"; - for (let i = 0; i<6; i++) { - const li = ul.appendChild(document.createElement("li")); - li.className = "team-member-icon"; - } - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; - flags(sk[1]).forEach(n=>ul.classList.add(targetTypes[n])); + fragment.appendChild(createTeamFlags(sk[1])); let str = ''; str +=`${sk[2] / 100}倍×${sk[0]}T`; fragment.appendChild(document.createTextNode(str)); return fragment; } + function getIncreaseDamageCap(skill) + { + let cap = 0; + switch (skill.type) { + case 241:case 258: + cap = skill.params[1]; + break; + case 246: + cap = skill.params[2]; + break; + case 247: + cap = skill.params[3]; + break; + } + return cap; + } + function memberCap_Addition(card) + { + const searchTypeArray = [241, 246, 247, 258]; + const skill = getCardActiveSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + let cap = getIncreaseDamageCap(skill); + + const fragment = document.createDocumentFragment(); + switch (skill.type) { + case 258: { + fragment.appendChild(createTeamFlags(sk[2])); + } + case 241: { + fragment.append(`${(cap*1e8).bigNumberToString()}×${sk[0]}T`); + break; + } + case 246: { + fragment.append(`${(cap*1e8).bigNumberToString()}←${sk[1]}C in ${sk[0]}S`); + break; + } + case 247: { + fragment.append(`${(cap*1e8).bigNumberToString()}←${sk[2]} of `, createOrbsList(flags(sk[1])), ` in ${sk[0]}S`); + break; + } + } + return fragment; + } function dixedDamage_Addition(card) { const searchTypeArray = [55, 188, 56]; @@ -1808,23 +1845,7 @@ const specialSearchFunctions = (function() { }, {name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限 buff",cht:"增加傷害上限 buff"}, function:cards=>{ - function getIncreaseDamageCap(skill) - { - let cap = 0; - switch (skill.type) { - case 241: - cap = skill.params[1]; - break; - case 246: - cap = skill.params[2]; - break; - case 247: - cap = skill.params[3]; - break; - } - return cap; - } - const searchTypeArray = [241, 246, 247]; + const searchTypeArray = [241, 246, 247, 258]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); return skill; @@ -1834,29 +1855,21 @@ const specialSearchFunctions = (function() { return a_pC - b_pC; }); }, - addition:card=>{ - const searchTypeArray = [241, 246, 247]; - const skill = getCardActiveSkill(card, searchTypeArray); - if (!skill) return; - const sk = skill.params; - let cap; - switch (skill.type) { - case 241: - cap = sk[1]; - break; - case 246: - cap = sk[2]; - break; - case 247: - cap = sk[3]; - break; - } - if (skill.type == 241) { - return `${(cap*1e8).bigNumberToString()}×${sk[0]}T`; - } else { - return `${(cap*1e8).bigNumberToString()} in ${sk[0]}S`; - } - } + addition:memberCap_Addition + }, + {name:"Increase Damage Cap (Not Self)",otLangName:{chs:"增加伤害上限 buff(非自身)",cht:"增加傷害上限 buff(非自身)"}, + function:cards=>{ + const searchTypeArray = [258]; + return cards.filter(card=>{ + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }).sort((a,b)=>{ + const a_ss = getCardActiveSkill(a, searchTypeArray), b_ss = getCardActiveSkill(b, searchTypeArray); + let a_pC = getIncreaseDamageCap(a_ss), b_pC = getIncreaseDamageCap(b_ss); + return a_pC - b_pC; + }); + }, + addition:memberCap_Addition }, {name:"Member ATK rate change",otLangName:{chs:"队员攻击力 buff",cht:"隊員攻擊力 buff"}, function:cards=>{ diff --git a/script-skill-parser.js b/script-skill-parser.js index 5fb932b7..c77106ff 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -1723,7 +1723,15 @@ const skillObjectParsers = { boardChange([0,1,2,3,4,5]), autoPath(5), ]; - }, + }, + + [258](turns, cap, target) { //改变伤害上限主动技 + const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + const typeArr = flags(target).map(n => targetTypes[n]); + return activeTurns(turns, + increaseDamageCap(cap * 1e8, typeArr) + ); + }, [1000](type, pos, ...ids) { const posType = (type=>{ switch (type) { @@ -2525,15 +2533,10 @@ function renderSkill(skill, option = {}) targetDict.target = document.createDocumentFragment(); //增加队员伤害的技能的目标,删选出来,其他的目标则不显示 - let atkUpTarget = targets.filter(n=>["self","leader-self","leader-helper","sub-members"].includes(n)); + const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + let atkUpTarget = targets.filter(n=>targetTypes.includes(n)); if (atkUpTarget.length) { - const ul = targetDict.target.appendChild(document.createElement("ul")); - ul.className = "team-flags"; - for (let i = 0; i<6; i++) { - const li = ul.appendChild(document.createElement("li")); - li.className = "team-member-icon"; - } - atkUpTarget.forEach(n=>ul.classList.add(n)); + targetDict.target.appendChild(createTeamFlags(atkUpTarget)); } targetDict.target.appendChild(targets.map(target=> @@ -2670,11 +2673,16 @@ function renderSkill(skill, option = {}) const {cap, targets} = skill; let dict = { icon: createIcon(skill.kind), - targets: targets.map(target=> - tsp?.target[target.replaceAll("-","_")]?.()) - .nodeJoin(tsp.word.slight_pause()), + targets: document.createDocumentFragment(), cap: cap.bigNumberToString(), }; + if (targets[0] !== 'self' || targets.length > 1) { + dict.targets.append(createTeamFlags(targets)); + } + dict.targets.append(targets.map(target=> + tsp?.target[target.replaceAll("-","_")]?.()) + .nodeJoin(tsp.word.slight_pause())); + frg.ap(tsp.skill.increase_damage_cap(dict)); break; } diff --git a/script-universal_function.js b/script-universal_function.js index c0073c26..dff40679 100644 --- a/script-universal_function.js +++ b/script-universal_function.js @@ -1051,6 +1051,32 @@ function changeToIdInSkillDetail(event) { monstersID.onchange(); return false; //取消链接的默认操作 } +//产生队伍目标类型 +function createTeamFlags(target) +{ + const ul = document.createElement("ul"); + ul.className = "team-flags"; + for (let i = 0; i<6; i++) { + const li = ul.appendChild(document.createElement("li")); + li.className = "team-member-icon"; + } + const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + + let _target = []; + if (Number.isInteger(target)) { + _target = flags(target).map(n=>targetTypes[n]); + } + else if (Array.isArray(target)) { + if (target.every(item=>Number.isInteger(item))) { + _target = target.map(n=>targetTypes[n]); + } + else if (target.every(item=>typeof(item) === 'string')) { + _target = target; + } + } + _target.forEach(tar=>ul.classList.add(tar)); + return ul; +} function showSearchBySeriesId(sId, sType) { showSearch(searchBySeriesId(sId, sType)); diff --git a/service-worker.js b/service-worker.js index 4d3d08f2..f54d160b 100644 --- a/service-worker.js +++ b/service-worker.js @@ -275,7 +275,7 @@ const cachesMap = new Map([ ], [ "images/cards_ja/CARDS_069.PNG", - "5b62dcf7e09dac4f51718bd9cc1468a2" + "abad1663e4f8a421cae2e6ea168f5a56" ], [ "images/cards_ja/CARDS_070.PNG", @@ -411,11 +411,11 @@ const cachesMap = new Map([ ], [ "images/cards_ja/CARDS_103.PNG", - "4befb7e52ce63a502514543d5173168a" + "78ec444fe57c443147ce9904a558a78d" ], [ "images/cards_ja/CARDS_104.PNG", - "38082e827e3d98eac328da15c9be5b10" + "4992a52d35fa227dd70c158281b63dc3" ], [ "images/cards_ja/CARDS_105.PNG", @@ -427,11 +427,11 @@ const cachesMap = new Map([ ], [ "images/cards_ja/CARDS_107.PNG", - "79ede041dbe2abeb27bd0f0147307d9f" + "c0d37dfd64d4dd3c081a117d6600ad60" ], [ "images/cards_ja/CARDS_108.PNG", - "1d4d9f67d9095627545d03002fd17514" + "e1a00e4409dc4823141fdd360c0e4135" ], [ "images/cards_ja/CARDS_109.PNG", @@ -441,6 +441,10 @@ const cachesMap = new Map([ "images/cards_ja/CARDS_110.PNG", "366aa8a0db62deb07bf70b1b1c12711a" ], + [ + "images/cards_ja/CARDS_111.PNG", + "73f3ef2f1942e11148326bf2f6208b79" + ], [ "sound/voice/ja/padv001.wav", "5d5cfc2aea6aa9e69299e2fd8f5657d2" @@ -1785,6 +1789,10 @@ const cachesMap = new Map([ "sound/voice/ja/padv122.wav", "bd76867897b4217698a823279dbc6c5a" ], + [ + "sound/voice/ja/padv1224.wav", + "63342cdbcc799462cf5bf5769e9a7988" + ], [ "sound/voice/ja/padv1225.wav", "9446a7108742a7fee5e1d9bfbbd805ba" @@ -5365,10 +5373,22 @@ const cachesMap = new Map([ "sound/voice/ja/padv2038.wav", "89ff1728c49c61892239dc486e824a61" ], + [ + "sound/voice/ja/padv2039.wav", + "5ef91c5e493a9e6d285af739db5fcb80" + ], [ "sound/voice/ja/padv204.wav", "78791e12c2bccde3eb384c34c8ab3d9d" ], + [ + "sound/voice/ja/padv2040.wav", + "de665a231d8ea4db7e03fb1fb2e614c1" + ], + [ + "sound/voice/ja/padv2042.wav", + "375534373b256e43e6a400271a71820f" + ], [ "sound/voice/ja/padv205.wav", "5cf988087d9bfb12b5af10e7377f51ef" @@ -22803,7 +22823,7 @@ const cachesMap = new Map([ ], [ "multi.html", - "452c9192136656b9f875d371d904bbb4" + "95385a8e7e272fbb5dacb850667e1eb3" ], [ "script-custom_elements.js", @@ -22811,31 +22831,31 @@ const cachesMap = new Map([ ], [ "script-json_data.js", - "50731e4d514b657297dc20fb9863bb15" + "13a004bccb210a80f3b59d41e405245d" ], [ "script-skill-parser.js", - "c2731a12b9f65f174126f19538a8b5f1" + "4519231c3aa362a66e38fa583bc80c48" ], [ "script-universal_function.js", - "e28b45d852a45f5f3daafe1cf071775a" + "53b5e9b772192173f139fd58be42eaa8" ], [ "script.js", - "8253d01a692fda416e6fb97e7c75641b" + "51a45dedffded8db84da957b47a28c28" ], [ "solo.html", - "85c58af3eae9f600df3e36ff0680e65e" + "5dfa10024924d95cb1a32abd94a48418" ], [ "style-monsterimages.css", - "5d4d91a014c65d6a30dfc1fd71a0d305" + "c2a4832ca38958cd6ee64211c05e00cd" ], [ "style.css", - "060af75969aef562fc587f09231a01a3" + "10c3535a7ad7a4f3c01fa70c7c67d3b5" ], [ "temp.js", @@ -22843,11 +22863,11 @@ const cachesMap = new Map([ ], [ "triple.html", - "12d05bc4fd4f83d21c143e82112327ec" + "867cc5b572159ba36bc71b5d0449c9ec" ], [ "languages/en.css", - "769d4563a8db708bd1be2b8a7b2c5542" + "5c55ac4c8f478076425dc23c8e4b75c7" ], [ "languages/en.js", @@ -22855,7 +22875,7 @@ const cachesMap = new Map([ ], [ "languages/ja.css", - "d3145270883efac4462cdfd00bfc081a" + "6ac36a23d002754462c2d225c1b7cfab" ], [ "languages/ja.js", @@ -22863,7 +22883,7 @@ const cachesMap = new Map([ ], [ "languages/ko.css", - "259ec3d87e43f750cc4ea1d3e2bae3cd" + "0a845b5579580b336ed4e6b008026f2e" ], [ "languages/ko.js", @@ -22875,19 +22895,19 @@ const cachesMap = new Map([ ], [ "languages/zh-TW.css", - "e7d2bc02b6b648428dc74c11446af03b" + "717ab281b26486b192defaa3bc068b15" ], [ "languages/zh-TW.js", - "96b5fc34b0a23d46900bcc80dc71499b" + "a7eb3cd1b50dc07647e028fcae122180" ], [ "languages/zh.css", - "61d71ec1c0f20f29f44fd625329d49a5" + "7320d52c192a768bd1d221073aa4573b" ], [ "languages/zh.js", - "6e6c866f3c573360f51df51e987ab740" + "007c91430840864f852949f9030f9db4" ], [ "images/attrs.png", @@ -22903,7 +22923,7 @@ const cachesMap = new Map([ ], [ "images/awoken.png", - "c53b59b21984e6bd23ea310751f65101" + "33b3147b0144df5c483da3f976789057" ], [ "images/badge-bg.png",