增加全体提高伤害上限的新技能

This commit is contained in:
枫谷剑仙 2024-02-19 17:50:40 +08:00
parent ca38f01733
commit eb2cc9751e
4 changed files with 149 additions and 82 deletions

View File

@ -1290,19 +1290,56 @@ const specialSearchFunctions = (function() {
if (!skill) return; if (!skill) return;
const sk = skill.params; const sk = skill.params;
const fragment = document.createDocumentFragment(); const fragment = document.createDocumentFragment();
const ul = fragment.appendChild(document.createElement("ul")); fragment.appendChild(createTeamFlags(sk[1]));
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]));
let str = ''; let str = '';
str +=`${sk[2] / 100}倍×${sk[0]}T`; str +=`${sk[2] / 100}倍×${sk[0]}T`;
fragment.appendChild(document.createTextNode(str)); fragment.appendChild(document.createTextNode(str));
return fragment; 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) function dixedDamage_Addition(card)
{ {
const searchTypeArray = [55, 188, 56]; const searchTypeArray = [55, 188, 56];
@ -1808,23 +1845,7 @@ const specialSearchFunctions = (function() {
}, },
{name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限 buff",cht:"增加傷害上限 buff"}, {name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限 buff",cht:"增加傷害上限 buff"},
function:cards=>{ function:cards=>{
function getIncreaseDamageCap(skill) const searchTypeArray = [241, 246, 247, 258];
{
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];
return cards.filter(card=>{ return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray); const skill = getCardActiveSkill(card, searchTypeArray);
return skill; return skill;
@ -1834,29 +1855,21 @@ const specialSearchFunctions = (function() {
return a_pC - b_pC; return a_pC - b_pC;
}); });
}, },
addition:card=>{ addition:memberCap_Addition
const searchTypeArray = [241, 246, 247]; },
const skill = getCardActiveSkill(card, searchTypeArray); {name:"Increase Damage Cap (Not Self)",otLangName:{chs:"增加伤害上限 buff(非自身)",cht:"增加傷害上限 buff(非自身)"},
if (!skill) return; function:cards=>{
const sk = skill.params; const searchTypeArray = [258];
let cap; return cards.filter(card=>{
switch (skill.type) { const skill = getCardActiveSkill(card, searchTypeArray);
case 241: return skill;
cap = sk[1]; }).sort((a,b)=>{
break; const a_ss = getCardActiveSkill(a, searchTypeArray), b_ss = getCardActiveSkill(b, searchTypeArray);
case 246: let a_pC = getIncreaseDamageCap(a_ss), b_pC = getIncreaseDamageCap(b_ss);
cap = sk[2]; return a_pC - b_pC;
break; });
case 247: },
cap = sk[3]; addition:memberCap_Addition
break;
}
if (skill.type == 241) {
return `${(cap*1e8).bigNumberToString()}×${sk[0]}T`;
} else {
return `${(cap*1e8).bigNumberToString()} in ${sk[0]}S`;
}
}
}, },
{name:"Member ATK rate change",otLangName:{chs:"队员攻击力 buff",cht:"隊員攻擊力 buff"}, {name:"Member ATK rate change",otLangName:{chs:"队员攻击力 buff",cht:"隊員攻擊力 buff"},
function:cards=>{ function:cards=>{

View File

@ -1723,7 +1723,15 @@ const skillObjectParsers = {
boardChange([0,1,2,3,4,5]), boardChange([0,1,2,3,4,5]),
autoPath(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) { [1000](type, pos, ...ids) {
const posType = (type=>{ const posType = (type=>{
switch (type) { switch (type) {
@ -2525,15 +2533,10 @@ function renderSkill(skill, option = {})
targetDict.target = document.createDocumentFragment(); 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) { if (atkUpTarget.length) {
const ul = targetDict.target.appendChild(document.createElement("ul")); targetDict.target.appendChild(createTeamFlags(atkUpTarget));
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(targets.map(target=> targetDict.target.appendChild(targets.map(target=>
@ -2670,11 +2673,16 @@ function renderSkill(skill, option = {})
const {cap, targets} = skill; const {cap, targets} = skill;
let dict = { let dict = {
icon: createIcon(skill.kind), icon: createIcon(skill.kind),
targets: targets.map(target=> targets: document.createDocumentFragment(),
tsp?.target[target.replaceAll("-","_")]?.())
.nodeJoin(tsp.word.slight_pause()),
cap: cap.bigNumberToString(), 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)); frg.ap(tsp.skill.increase_damage_cap(dict));
break; break;
} }

View File

@ -1051,6 +1051,32 @@ function changeToIdInSkillDetail(event) {
monstersID.onchange(); monstersID.onchange();
return false; //取消链接的默认操作 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) { function showSearchBySeriesId(sId, sType) {
showSearch(searchBySeriesId(sId, sType)); showSearch(searchBySeriesId(sId, sType));

View File

@ -275,7 +275,7 @@ const cachesMap = new Map([
], ],
[ [
"images/cards_ja/CARDS_069.PNG", "images/cards_ja/CARDS_069.PNG",
"5b62dcf7e09dac4f51718bd9cc1468a2" "abad1663e4f8a421cae2e6ea168f5a56"
], ],
[ [
"images/cards_ja/CARDS_070.PNG", "images/cards_ja/CARDS_070.PNG",
@ -411,11 +411,11 @@ const cachesMap = new Map([
], ],
[ [
"images/cards_ja/CARDS_103.PNG", "images/cards_ja/CARDS_103.PNG",
"4befb7e52ce63a502514543d5173168a" "78ec444fe57c443147ce9904a558a78d"
], ],
[ [
"images/cards_ja/CARDS_104.PNG", "images/cards_ja/CARDS_104.PNG",
"38082e827e3d98eac328da15c9be5b10" "4992a52d35fa227dd70c158281b63dc3"
], ],
[ [
"images/cards_ja/CARDS_105.PNG", "images/cards_ja/CARDS_105.PNG",
@ -427,11 +427,11 @@ const cachesMap = new Map([
], ],
[ [
"images/cards_ja/CARDS_107.PNG", "images/cards_ja/CARDS_107.PNG",
"79ede041dbe2abeb27bd0f0147307d9f" "c0d37dfd64d4dd3c081a117d6600ad60"
], ],
[ [
"images/cards_ja/CARDS_108.PNG", "images/cards_ja/CARDS_108.PNG",
"1d4d9f67d9095627545d03002fd17514" "e1a00e4409dc4823141fdd360c0e4135"
], ],
[ [
"images/cards_ja/CARDS_109.PNG", "images/cards_ja/CARDS_109.PNG",
@ -441,6 +441,10 @@ const cachesMap = new Map([
"images/cards_ja/CARDS_110.PNG", "images/cards_ja/CARDS_110.PNG",
"366aa8a0db62deb07bf70b1b1c12711a" "366aa8a0db62deb07bf70b1b1c12711a"
], ],
[
"images/cards_ja/CARDS_111.PNG",
"73f3ef2f1942e11148326bf2f6208b79"
],
[ [
"sound/voice/ja/padv001.wav", "sound/voice/ja/padv001.wav",
"5d5cfc2aea6aa9e69299e2fd8f5657d2" "5d5cfc2aea6aa9e69299e2fd8f5657d2"
@ -1785,6 +1789,10 @@ const cachesMap = new Map([
"sound/voice/ja/padv122.wav", "sound/voice/ja/padv122.wav",
"bd76867897b4217698a823279dbc6c5a" "bd76867897b4217698a823279dbc6c5a"
], ],
[
"sound/voice/ja/padv1224.wav",
"63342cdbcc799462cf5bf5769e9a7988"
],
[ [
"sound/voice/ja/padv1225.wav", "sound/voice/ja/padv1225.wav",
"9446a7108742a7fee5e1d9bfbbd805ba" "9446a7108742a7fee5e1d9bfbbd805ba"
@ -5365,10 +5373,22 @@ const cachesMap = new Map([
"sound/voice/ja/padv2038.wav", "sound/voice/ja/padv2038.wav",
"89ff1728c49c61892239dc486e824a61" "89ff1728c49c61892239dc486e824a61"
], ],
[
"sound/voice/ja/padv2039.wav",
"5ef91c5e493a9e6d285af739db5fcb80"
],
[ [
"sound/voice/ja/padv204.wav", "sound/voice/ja/padv204.wav",
"78791e12c2bccde3eb384c34c8ab3d9d" "78791e12c2bccde3eb384c34c8ab3d9d"
], ],
[
"sound/voice/ja/padv2040.wav",
"de665a231d8ea4db7e03fb1fb2e614c1"
],
[
"sound/voice/ja/padv2042.wav",
"375534373b256e43e6a400271a71820f"
],
[ [
"sound/voice/ja/padv205.wav", "sound/voice/ja/padv205.wav",
"5cf988087d9bfb12b5af10e7377f51ef" "5cf988087d9bfb12b5af10e7377f51ef"
@ -22803,7 +22823,7 @@ const cachesMap = new Map([
], ],
[ [
"multi.html", "multi.html",
"452c9192136656b9f875d371d904bbb4" "95385a8e7e272fbb5dacb850667e1eb3"
], ],
[ [
"script-custom_elements.js", "script-custom_elements.js",
@ -22811,31 +22831,31 @@ const cachesMap = new Map([
], ],
[ [
"script-json_data.js", "script-json_data.js",
"50731e4d514b657297dc20fb9863bb15" "13a004bccb210a80f3b59d41e405245d"
], ],
[ [
"script-skill-parser.js", "script-skill-parser.js",
"c2731a12b9f65f174126f19538a8b5f1" "4519231c3aa362a66e38fa583bc80c48"
], ],
[ [
"script-universal_function.js", "script-universal_function.js",
"e28b45d852a45f5f3daafe1cf071775a" "53b5e9b772192173f139fd58be42eaa8"
], ],
[ [
"script.js", "script.js",
"8253d01a692fda416e6fb97e7c75641b" "51a45dedffded8db84da957b47a28c28"
], ],
[ [
"solo.html", "solo.html",
"85c58af3eae9f600df3e36ff0680e65e" "5dfa10024924d95cb1a32abd94a48418"
], ],
[ [
"style-monsterimages.css", "style-monsterimages.css",
"5d4d91a014c65d6a30dfc1fd71a0d305" "c2a4832ca38958cd6ee64211c05e00cd"
], ],
[ [
"style.css", "style.css",
"060af75969aef562fc587f09231a01a3" "10c3535a7ad7a4f3c01fa70c7c67d3b5"
], ],
[ [
"temp.js", "temp.js",
@ -22843,11 +22863,11 @@ const cachesMap = new Map([
], ],
[ [
"triple.html", "triple.html",
"12d05bc4fd4f83d21c143e82112327ec" "867cc5b572159ba36bc71b5d0449c9ec"
], ],
[ [
"languages/en.css", "languages/en.css",
"769d4563a8db708bd1be2b8a7b2c5542" "5c55ac4c8f478076425dc23c8e4b75c7"
], ],
[ [
"languages/en.js", "languages/en.js",
@ -22855,7 +22875,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/ja.css", "languages/ja.css",
"d3145270883efac4462cdfd00bfc081a" "6ac36a23d002754462c2d225c1b7cfab"
], ],
[ [
"languages/ja.js", "languages/ja.js",
@ -22863,7 +22883,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/ko.css", "languages/ko.css",
"259ec3d87e43f750cc4ea1d3e2bae3cd" "0a845b5579580b336ed4e6b008026f2e"
], ],
[ [
"languages/ko.js", "languages/ko.js",
@ -22875,19 +22895,19 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh-TW.css", "languages/zh-TW.css",
"e7d2bc02b6b648428dc74c11446af03b" "717ab281b26486b192defaa3bc068b15"
], ],
[ [
"languages/zh-TW.js", "languages/zh-TW.js",
"96b5fc34b0a23d46900bcc80dc71499b" "a7eb3cd1b50dc07647e028fcae122180"
], ],
[ [
"languages/zh.css", "languages/zh.css",
"61d71ec1c0f20f29f44fd625329d49a5" "7320d52c192a768bd1d221073aa4573b"
], ],
[ [
"languages/zh.js", "languages/zh.js",
"6e6c866f3c573360f51df51e987ab740" "007c91430840864f852949f9030f9db4"
], ],
[ [
"images/attrs.png", "images/attrs.png",
@ -22903,7 +22923,7 @@ const cachesMap = new Map([
], ],
[ [
"images/awoken.png", "images/awoken.png",
"c53b59b21984e6bd23ea310751f65101" "33b3147b0144df5c483da3f976789057"
], ],
[ [
"images/badge-bg.png", "images/badge-bg.png",