From dc01d105cb549fbbd8d1b5686158274edf4017f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Thu, 20 Mar 2025 20:12:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/icon-skills.png | Bin 74770 -> 75707 bytes images/project file/icon-skills.fw.png | Bin 214736 -> 215991 bytes languages/zh-hans.js | 5 +- languages/zh-hant.js | 6 +- script-json_data.js | 249 +++++++++++++++---------- script-skill-parser.js | 54 ++++-- script-universal_function.js | 4 +- script.js | 68 +++---- service-worker.js | 16 +- style.css | 20 +- 10 files changed, 268 insertions(+), 154 deletions(-) diff --git a/images/icon-skills.png b/images/icon-skills.png index a8d3e7e9cbb80a97268050464af45cdbf36fd4d8..7f4006700642e0278dc13a2cb22b03d3f83042c1 100644 GIT binary patch delta 4137 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 delta 3192 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

j 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 MQ8|$cA%m~~3zVbi#Q*>R delta 28820 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 c2^RvRyxP}Iho=OV diff --git a/languages/zh-hans.js b/languages/zh-hans.js index 8a8635b7..3ab7970c 100644 --- a/languages/zh-hans.js +++ b/languages/zh-hans.js @@ -78,6 +78,7 @@ const _localTranslating = { unbind_awakenings: tp`${'icon'}觉醒无效`, unbind_matches: tp`${'icon'}无法消除宝珠`, bind_skill: tp`${'icon'}自身无法使用技能`, + bind_card: tp`卡片自身${'icon'}变为封锁状态`, defense_break: tp`${'icon'}敌方的防御力减少${'value'}`, poison: tp`${'icon'}使${'target'}中毒,每回合损失${'belong_to'} ${'value'} 的 ${'stats'}`, time_extend: tp`${'icon'}宝珠移动时间 ${'value'}`, @@ -136,7 +137,7 @@ const _localTranslating = { obstruct_opponent_before_me: tp`排名比自身高的对手`, obstruct_opponent_designated_position: tp`第${'positions'}排位的对手`, slot_power_up: tp`${'targets'}的${'icon'}${'value'}`, - increase_damage_cap: tp`${'targets'}的${'icon'}伤害上限变为${'cap'}`, + increase_damage_cap: tp`${'targets'}${'icon'}伤害上限变为${'cap'}`, board_jamming_state: tp`在${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'comment'}`, board_size_change: tp`板面大小改变为${'icon'}${'size'}`, remove_assist: tp`${'icon'}移除自身的辅助宠物(直到地下城结束)`, @@ -221,6 +222,8 @@ const _localTranslating = { sub_members: tp`队员`, leader_self: tp`左边队长`, leader_helper: tp`右边队长`, + left_neighbor: tp`左邻角色`, + right_neighbor: tp`右邻角色`, collab_id: tp`合作ID为${'id'}的角色`, gacha_id: tp`抽蛋ID为${'id'}的角色`, enemy: tp`敌人`, diff --git a/languages/zh-hant.js b/languages/zh-hant.js index b232982c..f6e2d7db 100644 --- a/languages/zh-hant.js +++ b/languages/zh-hant.js @@ -77,7 +77,7 @@ const _localTranslating = { unbind_normal: tp`${'icon'}封鎖`, unbind_awakenings: tp`${'icon'}覺醒無效`, unbind_matches: tp`${'icon'}無法消除寶珠`, - bind_skill: tp`${'icon'}自身無法使用技能`, + bind_skill: tp`卡片自身${'icon'}變為封鎖狀態`, defense_break: tp`${'icon'}敵方的防禦力減少${'value'}`, poison: tp`${'icon'}使${'target'}中毒,每回合損失${'belong_to'} ${'value'} 的 ${'stats'}`, time_extend: tp`${'icon'}寶珠移動時間 ${'value'}`, @@ -136,7 +136,7 @@ const _localTranslating = { obstruct_opponent_before_me: tp`排名比自身高的對手`, obstruct_opponent_designated_position: tp`第${'positions'}排位的對手`, slot_power_up: tp`${'targets'}的${'icon'}${'value'}`, - increase_damage_cap: tp`${'targets'}的${'icon'}傷害上限變為${'cap'}`, + increase_damage_cap: tp`${'targets'}${'icon'}傷害上限變為${'cap'}`, board_jamming_state: tp`在${'position'}生成${'icon'}${'state'}${'size'}${'count'}${'comment'}`, board_size_change: tp`板面大小改變為${'icon'}${'size'}`, remove_assist: tp`${'icon'}移除自身的輔助寵物(直到地下城結束)`, @@ -221,6 +221,8 @@ const _localTranslating = { sub_members: tp`隊員`, leader_self: tp`左邊隊長`, leader_helper: tp`右邊隊長`, + left_neighbor: tp`左鄰角色`, + right_neighbor: tp`右鄰角色`, collab_id: tp`合作ID為${'id'}的角色`, gacha_id: tp`抽蛋ID為${'id'}的角色`, enemy: tp`敵人`, diff --git a/script-json_data.js b/script-json_data.js index edc32740..432d9cda 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -93,6 +93,7 @@ let localTranslating = { unbind_awakenings: tp`${'icon'}Awoken bind`, unbind_matches: tp`${'icon'}Unmatchable orb`, bind_skill: tp`${'icon'}Unable to use skills`, + bind_card: tp`${'icon'}Bind the card itself`, defense_break: tp`${'icon'}Reduce enemy defense by ${'value'}`, poison: tp`${'icon'}Poisons ${'target'}, reduce ${'stats'} with ${'belong_to'} ${'value'} per turns`, time_extend: tp`${'icon'}Orb move time ${'value'}`, @@ -150,7 +151,7 @@ let localTranslating = { obstruct_opponent_after_me: tp`The opponent ranked lower than me`, obstruct_opponent_before_me: tp`The opponent ranked higher than me`, obstruct_opponent_designated_position: tp`No.${'positions'} ranked opponents`, - slot_power_up: tp`The slot of ${'targets'} ${'icon'}${'value'}`, + slot_power_up: tp`The slot of [${'targets'}]'s ${'icon'}${'value'}`, increase_damage_cap: tp`The ${'icon'}damage cap of ${'targets'} is change to ${'cap'}`, board_jamming_state: tp`Creates ${'count'} ${'icon'}${'state'} ${'size'} at ${'position'}${'comment'}`, board_size_change: tp`Board size changed to ${'icon'}${'size'}`, @@ -236,6 +237,8 @@ let localTranslating = { sub_members: tp`sub-members`, leader_self: tp`left leader`, leader_helper: tp`right leader`, + left_neighbor: tp`left neighbor`, + right_neighbor: tp`left neighbor`, collab_id: tp`Cards with Collaboration ID of ${'id'} `, gacha_id: tp`Cards with Egg Machine ID of ${'id'} `, enemy: tp`Enemy`, @@ -1222,22 +1225,21 @@ const specialSearchFunctions = (function() { } function memberATK_Addition(card) { - const searchTypeArray = [230]; - const skill = getCardActiveSkill(card, searchTypeArray); - if (!skill) return; - const sk = skill.params; - const fragment = document.createDocumentFragment(); - fragment.appendChild(createTeamFlags(sk[1])); - let str = ''; - str +=`${sk[2] / 100}倍×${sk[0]}T`; - fragment.appendChild(document.createTextNode(str)); - return fragment; + const searchTypeArray = [230, 269]; + const skills = getCardActiveSkills(card, searchTypeArray); + return skills.map(skill=>{ + const sk = skill.params; + const fragment = document.createDocumentFragment(); + fragment.appendChild(createTeamFlags(sk[1], skill.type == 269 ? 2 : 1)); + fragment.append(`${sk[2] / 100}倍×${sk[0]}T`); + return fragment; + }).nodeJoin(document.createElement("br")); } function getIncreaseDamageCap(skill) { let cap = 0; switch (skill.type) { - case 241:case 258:case 263: + case 241:case 258:case 263:case 266: cap = skill.params[1]; break; case 246: @@ -1251,56 +1253,58 @@ const specialSearchFunctions = (function() { } function memberCap_Addition(card) { - const searchTypeArray = [241, 246, 247, 258, 263]; - 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])); - break; - } - case 241: - case 246: - case 247: { - fragment.appendChild(createTeamFlags(1)); - break; - } - case 263: { - const attrs = Bin.unflags(sk[2]); - if (attrs?.length) - { - fragment.appendChild(createOrbsList(attrs)); + const searchTypeArray = [241, 246, 247, 258, 263, 266]; + const skills = getCardActiveSkills(card, searchTypeArray); + return skills.map(skill=>{ + const sk = skill.params; + let cap = getIncreaseDamageCap(skill); + const fragment = document.createDocumentFragment(); + switch (skill.type) { + case 258: + case 266: { + fragment.appendChild(createTeamFlags(sk[2], skill.type == 266 ? 2 : 1)); + break; } - const types = Bin.unflags(sk[3]); - if (types?.length) - { - fragment.appendChild(createTypesList(types)); + case 241: + case 246: + case 247: { + fragment.appendChild(createTeamFlags(1)); + break; + } + case 263: { + const attrs = Bin.unflags(sk[2]); + if (attrs?.length) + { + fragment.appendChild(createOrbsList(attrs)); + } + const types = Bin.unflags(sk[3]); + if (types?.length) + { + fragment.appendChild(createTypesList(types)); + } + break; } - break; } - } - //fragment.append(createSkillIcon(SkillKinds.IncreaseDamageCapacity, cap > 21 ? "cap-incr" : "cap-decr")); - switch (skill.type) { - case 258: - case 241: - case 263: { - fragment.append(`${(cap*1e8).bigNumberToString()}×${sk[0]}T`); - break; + //fragment.append(createSkillIcon(SkillKinds.IncreaseDamageCapacity, cap > 21 ? "cap-incr" : "cap-decr")); + switch (skill.type) { + case 258: + case 241: + case 263: + case 266: { + 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(Bin.unflags(sk[1])), ` in ${sk[0]}S`); + 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(Bin.unflags(sk[1])), ` in ${sk[0]}S`); - break; - } - } - return fragment; + return fragment; + }).nodeJoin(document.createElement("br")); } function dixedDamage_Addition(card) { @@ -1848,7 +1852,7 @@ const specialSearchFunctions = (function() { {group:true,name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限",cht:"增加傷害上限"}, functions: [ {name:"Increase Damage Cap - Any",otLangName:{chs:"增加伤害上限 - 任意",cht:"增加傷害上限 - 任意"}, function:cards=>{ - const searchTypeArray = [241, 246, 247, 258, 263]; + const searchTypeArray = [241, 246, 247, 258, 263, 266]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); return skill; @@ -1862,11 +1866,20 @@ const specialSearchFunctions = (function() { }, {name:"Increase Damage Cap - Self",otLangName:{chs:"增加伤害上限 - 自身",cht:"增加傷害上限 - 自身"}, function:cards=>{ - const searchTypeArray = [241, 246, 247, 258]; + const searchTypeArray = [241, 246, 247, 258, 266]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); - if (skill?.type === 258) return Boolean(skill.params[2] & 0b1); - else return skill; + switch (skill?.type) { + case 258: { + return Boolean(skill.params[2] & 0b1); + } + case 266: { + return Boolean(skill.params[2] & 0b100); + } + default: { + 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); @@ -1880,7 +1893,7 @@ const specialSearchFunctions = (function() { const searchTypeArray = [258]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); - return skill && Boolean(skill.params[2] & (0b10 | 0b100)); + return skill && Boolean(skill.params[2] & 0b110); }).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); @@ -1903,6 +1916,20 @@ const specialSearchFunctions = (function() { }, addition:memberCap_Addition }, + {name:"Increase Damage Cap - Neighbor",otLangName:{chs:"增加伤害上限 - 相邻",cht:"增加傷害上限 - 相鄰"}, + function:cards=>{ + const searchTypeArray = [266]; + return cards.filter(card=>{ + const skill = getCardActiveSkill(card, searchTypeArray); + return skill && Boolean(skill.params[2] & 0b11); + }).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:"Increase Damage Cap - Attr./Types",otLangName:{chs:"增加伤害上限 - 属性/类型",cht:"增加傷害上限 - 屬性/類型"}, function:cards=>{ const searchTypeArray = [263]; @@ -1918,10 +1945,10 @@ const specialSearchFunctions = (function() { addition:memberCap_Addition }, ]}, - {group:true,name:"Member ATK rate change",otLangName:{chs:"队员攻击力",cht:"隊員攻擊力"}, functions: [ - {name:"Member ATK rate change - Any",otLangName:{chs:"队员攻击力 - 任意",cht:"隊員攻擊力 - 任意"}, + {group:true,name:"Card slot ATK rate change",otLangName:{chs:"卡片位置攻击力",cht:"卡片位置攻擊力"}, functions: [ + {name:"Card slot ATK rate change - Any",otLangName:{chs:"卡片位置攻击力 - 任意",cht:"卡片位置攻擊力 - 任意"}, function:cards=>{ - const searchTypeArray = [230]; + const searchTypeArray = [230, 269]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); return skill; @@ -1929,27 +1956,37 @@ const specialSearchFunctions = (function() { }, addition:memberATK_Addition }, - {name:"Member ATK rate change - Self",otLangName:{chs:"队员攻击力 - 自身",cht:"隊員攻擊力 - 自身"}, + {name:"Card slot ATK rate change - Self",otLangName:{chs:"卡片位置攻击力 - 自身",cht:"卡片位置攻擊力 - 自身"}, function:cards=>{ - const searchTypeArray = [230]; + const searchTypeArray = [230, 269]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); - return skill && Boolean(skill.params[1] & 0b1); + switch (skill?.type) { + case 230: { + return Boolean(skill.params[1] & 0b1); + } + case 269: { + return Boolean(skill.params[1] & 0b100); + } + default: { + return skill; + } + } }).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2)); }, addition:memberATK_Addition }, - {name:"Member ATK rate change - Leader",otLangName:{chs:"队员攻击力 - 队长",cht:"隊員攻擊力 - 隊長"}, + {name:"Card slot ATK rate change - Leader",otLangName:{chs:"卡片位置攻击力 - 队长",cht:"卡片位置攻擊力 - 隊長"}, function:cards=>{ const searchTypeArray = [230]; return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); - return skill && Boolean(skill.params[1] & (0b10 | 0b100)); + return skill && Boolean(skill.params[1] & 0b110); }).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2)); }, addition:memberATK_Addition }, - {name:"Member ATK rate change - Sub",otLangName:{chs:"队员攻击力 - 队员",cht:"隊員攻擊力 - 隊員"}, + {name:"Card slot ATK rate change - Sub",otLangName:{chs:"卡片位置攻击力 - 队员",cht:"卡片位置攻擊力 - 隊員"}, function:cards=>{ const searchTypeArray = [230]; return cards.filter(card=>{ @@ -1959,8 +1996,18 @@ const specialSearchFunctions = (function() { }, addition:memberATK_Addition }, + {name:"Card slot ATK rate change - Neighbor",otLangName:{chs:"卡片位置攻击力 - 相邻",cht:"卡片位置攻擊力 - 相鄰"}, + function:cards=>{ + const searchTypeArray = [269]; + return cards.filter(card=>{ + const skill = getCardActiveSkill(card, searchTypeArray); + return skill && Boolean(skill.params[1] & 0b11); + }).sort((a,b)=>sortByParams(a, b, searchTypeArray, 2)); + }, + addition:memberATK_Addition + }, ]}, - {name:"Change self's Attr",otLangName:{chs:"转换自身属性",cht:"轉換自身屬性"}, + {name:"Change card self's Attr",otLangName:{chs:"转换自身属性",cht:"轉換自身屬性"}, function:cards=>{ const searchTypeArray = [142]; return cards.filter(card=>{ @@ -1982,27 +2029,6 @@ const specialSearchFunctions = (function() { return fragment; } }, - {name:"Bind self active skill",otLangName:{chs:"自封技能 debuff",cht:"自封技能 debuff"}, - function:cards=>cards.filter(card=>{ - const searchTypeArray = [214]; - const skill = getCardActiveSkill(card, searchTypeArray); - return skill; - }), - addition:card=>{ - const searchTypeArray = [214]; - const skill = getCardActiveSkill(card, searchTypeArray); - if (!skill) return; - const sk = skill.params; - return document.createTextNode(`自封技${sk[0]}T`); - } - }, - {name:"Remove assist",otLangName:{chs:"移除武器",cht:"移除武器"}, - function:cards=>cards.filter(card=>{ - const searchTypeArray = [250]; - const skill = getCardActiveSkill(card, searchTypeArray); - return skill; - }) - }, {name:"↓Reduce skills charge",otLangName:{chs:"【坐】增加CD",cht:"【坐】增加CD"}, function:cards=>{ const searchTypeArray = [218]; @@ -2022,6 +2048,41 @@ const specialSearchFunctions = (function() { return fragment; } }, + {name:"Bind team active skill",otLangName:{chs:"自封队伍技能 debuff",cht:"自封队伍技能 debuff"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [214]; + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }), + addition:card=>{ + const searchTypeArray = [214]; + const skill = getCardActiveSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + return document.createTextNode(`自封技${sk[0]}T`); + } + }, + {name:"Bind card self",otLangName:{chs:"角色自身被绑定",cht:"角色自身被綁定"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [267]; + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }), + addition:card=>{ + const searchTypeArray = [267]; + const skill = getCardActiveSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + return document.createTextNode(`自绑定${sk[0]}T`); + } + }, + {name:"Remove card self's assist",otLangName:{chs:"移除卡片武器",cht:"移除卡片武器"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [250]; + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }) + }, ]}, {group:true,name:"Player's HP change",otLangName:{chs:"玩家HP操纵类",cht:"玩家HP操縱類"}, functions: [ {name:"Heal after turn",otLangName:{chs:"回合结束回血 buff",cht:"回合結束回血 buff"}, diff --git a/script-skill-parser.js b/script-skill-parser.js index c54ef71a..6fd1b3f1 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -386,6 +386,11 @@ class Board } } +const SkillTarget = { + type1: ["self","leader-self","leader-helper","sub-members"], + type2: ["right-neighbor","left-neighbor","self"], +}; + const SkillValue = { isLess: function (value) { if (value.kind === SkillValueKind.Percent) return value.value < 1; @@ -449,6 +454,7 @@ const SkillKinds = { BoardChange: "board-change", Unbind: "unbind", BindSkill: "bind-skill", + BindCard: "bind-card", RandomSkills: "random-skills", EvolvedSkills: "evolved-skills", SkillProviso: "skill-proviso", @@ -1008,6 +1014,7 @@ function unbind(normal, awakenings, matches) { return { kind: SkillKinds.Unbind, normal: normal, awakenings: awakenings , matches: matches}; } function bindSkill() { return { kind: SkillKinds.BindSkill}; } +function bindCard() { return { kind: SkillKinds.BindCard}; } function boardChange(attrs) { return { kind: SkillKinds.BoardChange, attrs: attrs }; } @@ -1592,8 +1599,9 @@ const skillObjectParsers = { [229](attrs, types, hp, atk, rcv) { return powerUp(null, null, p.scaleStateKind(null, Bin.unflags(attrs), Bin.unflags(types), p.mul({hp: hp || 0, atk: atk || 0, rcv: rcv || 0}))); }, + //按位置增伤主动技1 [230](turns, target, mul) { - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + const targetTypes = SkillTarget.type1; const typeArr = Bin.unflags(target).map(n => targetTypes[n]); return activeTurns(turns, slotPowerUp(p.mul({ atk: mul }), typeArr) @@ -1641,7 +1649,7 @@ const skillObjectParsers = { ); }, [241](turns, cap) { //改变伤害上限主动技 - // const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + // const targetTypes = SkillTarget.type1; // const typeArr = Bin.unflags(target).map(n => targetTypes[n]); return activeTurns(turns, increaseDamageCapacity(cap * 1e8, ["self"]) @@ -1726,9 +1734,9 @@ const skillObjectParsers = { autoPath(5), ]; }, - + //按位置改变伤害上限主动技1 [258](turns, cap, target) { //改变伤害上限主动技 - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + const targetTypes = SkillTarget.type1; const typeArr = Bin.unflags(target).map(n => targetTypes[n]); return activeTurns(turns, increaseDamageCapacity(cap * 1e8, typeArr) @@ -1745,9 +1753,26 @@ const skillObjectParsers = { }, [264](mul) { return rateMultiply(v.percent(mul), 'plus_point'); }, [265](mul) { return rateMultiply(v.percent(mul), 'part_break'); }, - + //按位置改变伤害上限主动技2 + [266](turns, cap, target) { + const targetTypes = SkillTarget.type2; + const typeArr = Bin.unflags(target).map(n => targetTypes[n]); + return activeTurns(turns, + increaseDamageCapacity(cap * 1e8, typeArr) + ); + }, + //卡片自绑定 + [267](turns) {return activeTurns(turns, bindCard()); }, //限制技能使用次数 [268](turns) { return timesLimit(turns); }, + //按位置增伤主动技2 + [269](turns, target, mul) { + const targetTypes = SkillTarget.type2; + const typeArr = Bin.unflags(target).map(n => targetTypes[n]); + return activeTurns(turns, + slotPowerUp(p.mul({ atk: mul }), typeArr) + ); + }, //一回合内使用几次技能才有倍率的队长技。 [270](times, atk, rcv) { { return powerUp(Bin.unflags(31), null, p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.useSkill(times)); } }, @@ -2255,6 +2280,13 @@ function renderSkill(skill, option = {}) frg.ap(tsp.skill.bind_skill(dict)); break; } + case SkillKinds.BindCard: { + let dict = { + icon: createIcon(skill.kind) + }; + frg.ap(tsp.skill.bind_card(dict)); + break; + } case SkillKinds.BoardChange: { //洗版 const attrs = skill.attrs; let dict = { @@ -2569,7 +2601,7 @@ function renderSkill(skill, option = {}) targetDict.target = document.createDocumentFragment(); //增加队员伤害的技能的目标,删选出来,其他的目标则不显示 - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + const targetTypes = SkillTarget.type1.concat(SkillTarget.type2); let atkUpTarget = targets.filter(n=>targetTypes.includes(n)); if (atkUpTarget.length) { targetDict.target.appendChild(createTeamFlags(atkUpTarget)); @@ -2745,11 +2777,11 @@ function renderSkill(skill, option = {}) targetDict.target = document.createDocumentFragment(); //增加队员伤害的技能的目标,删选出来,其他的目标则不显示 - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; - let atkUpTarget = targets.filter(n=>targetTypes.includes(n)); - if (atkUpTarget.length) { - targetDict.target.appendChild(createTeamFlags(atkUpTarget)); - } + // const targetTypes = SkillTarget.type1; + // let atkUpTarget = targets.filter(n=>targetTypes.includes(n)); + // if (atkUpTarget.length) { + targetDict.target.appendChild(createTeamFlags(targets)); + // } targetDict.target.appendChild(targets.map(target=> tsp?.target[target.replaceAll("-","_")]?.()) diff --git a/script-universal_function.js b/script-universal_function.js index 7d93ef58..f6d968e5 100644 --- a/script-universal_function.js +++ b/script-universal_function.js @@ -1189,7 +1189,7 @@ function cardN(id) { } //产生队伍目标类型 -function createTeamFlags(target) +function createTeamFlags(target, type) { const ul = document.createElement("ul"); ul.className = "team-flags"; @@ -1197,7 +1197,7 @@ function createTeamFlags(target) const li = ul.appendChild(document.createElement("li")); li.className = "team-member-icon"; } - const targetTypes = ["self","leader-self","leader-helper","sub-members"]; + const targetTypes = type == 2 ? SkillTarget.type2 : SkillTarget.type1; let _target = []; if (Number.isInteger(target)) { diff --git a/script.js b/script.js index 15d7abcd..2cb8ffd3 100644 --- a/script.js +++ b/script.js @@ -565,15 +565,15 @@ class LeaderSkillType_MatchingStyle { this.#flags = arg; } } - get multipleAttr(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 0)} - get rowMatch(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 1)} - get combo(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 2)} - get sameColor(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 3)} - get LShape(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 4)} - get crossMatch(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 5)} - get heartCrossMatch(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 6)} - get remainOrbs(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 7)} - get enhanced5Orbs(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 8)} + get multipleAttr(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 0)} + get rowMatch(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 1)} + get combo(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 2)} + get sameColor(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 3)} + get LShape(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 4)} + get crossMatch(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 5)} + get heartCrossMatch(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 6)} + get remainOrbs(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 7)} + get enhanced5Orbs(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 8)} } class LeaderSkillType_Restriction_Bind { #card = null; @@ -585,16 +585,16 @@ class LeaderSkillType_Restriction_Bind { this.#flags = arg; } } - get attrEnhance(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 9)} - get typeEnhance(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 10)} - get board7x6(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 11)} - get noSkyfall(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 12)} - get HpRange(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 13)} - get useSkill(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 14)} - get moveTimeDecrease_Fixed(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 15)} - get minMatchLen(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 16)} - get specialTeam(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 17)} - get effectWhenRecover(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 18)} + get attrEnhance(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 9)} + get typeEnhance(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 10)} + get board7x6(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 11)} + get noSkyfall(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 12)} + get HpRange(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 13)} + get useSkill(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 14)} + get moveTimeDecrease_Fixed(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 15)} + get minMatchLen(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 16)} + get specialTeam(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 17)} + get effectWhenRecover(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 18)} } class LeaderSkillType_ExtraEffects { #card = null; @@ -606,21 +606,21 @@ class LeaderSkillType_ExtraEffects { this.#flags = arg; } } - get addCombo(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 21)} - get fixedFollowAttack(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 22)} - get scaleFollowAttack(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 23)} - get reduce49down(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 24)} - get reduce50(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 25)} - get reduce51up(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 26)} - get moveTimeIncrease(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 20)} - get rateMultiplyExp_Coin(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 27)} - get rateMultiplyDrop(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 28)} - get voidPoison(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 29)} - get counterAttack(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 30)} - get autoHeal(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 31)} - get unbindAwokenBind(){return Boolean(this.#card?.searchFlags?.[0] ?? this.#flags[0] & 1 << 19)} - get resolve(){return Boolean(this.#card?.searchFlags?.[1] ?? this.#flags[1] & 1 << 0)} - get predictionFalling(){return Boolean(this.#card?.searchFlags?.[1] ?? this.#flags[1] & 1 << 1)} + get addCombo(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 21)} + get fixedFollowAttack(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 22)} + get scaleFollowAttack(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 23)} + get reduce49down(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 24)} + get reduce50(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 25)} + get reduce51up(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 26)} + get moveTimeIncrease(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 20)} + get rateMultiplyExp_Coin(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 27)} + get rateMultiplyDrop(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 28)} + get voidPoison(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 29)} + get counterAttack(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 30)} + get autoHeal(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 31)} + get unbindAwokenBind(){return Boolean((this.#card?.searchFlags?.[0] ?? this.#flags[0]) & 1 << 19)} + get resolve(){return Boolean((this.#card?.searchFlags?.[1] ?? this.#flags[1]) & 1 << 0)} + get predictionFalling(){return Boolean((this.#card?.searchFlags?.[1] ?? this.#flags[1]) & 1 << 1)} } class Team extends Array { badge = 0; diff --git a/service-worker.js b/service-worker.js index 943992ca..aeafa0e8 100644 --- a/service-worker.js +++ b/service-worker.js @@ -44207,19 +44207,19 @@ const cachesMap = new Map([ ], [ "script-json_data.js", - "8538e25e7f6f4e8e08b14282db6ea654" + "37e68450ecb7140ba93515f30fca6dc1" ], [ "script-skill-parser.js", - "78597abdac6c0bfccc19919c5312ece1" + "228086552199fc6bb7eea0fe64f5feea" ], [ "script-universal_function.js", - "b86853117fb96211b6b1da2996cdb81e" + "0bdc4d583774cd51cf302f7709cc3fb7" ], [ "script.js", - "2e05c86aea3bb9b54e22dd07b9723c4b" + "270447ead17c33194fb0525cab9744f7" ], [ "solo.html", @@ -44235,7 +44235,7 @@ const cachesMap = new Map([ ], [ "style.css", - "1b21675a9c3b07e2913c03d42b7fa65e" + "f634fa900250a1e745b551a9302e8856" ], [ "temp.js", @@ -44279,7 +44279,7 @@ const cachesMap = new Map([ ], [ "languages/zh-hans.js", - "7b62458760e344526b07c586302333aa" + "92cc36747ac4440bdc45a1eba6ab4be7" ], [ "languages/zh-hant.css", @@ -44287,7 +44287,7 @@ const cachesMap = new Map([ ], [ "languages/zh-hant.js", - "846cbeec8fc7202ae889f93cdcb089cf" + "04f96537a27ece89005f42da68735431" ], [ "images/attrs.png", @@ -44439,7 +44439,7 @@ const cachesMap = new Map([ ], [ "images/icon-skills.png", - "f3fa5e8803e7b9f0adbb9b89e45a5b17" + "df43e89a902a603d16cc6cc4f77d25d2" ], [ "images/icon-switch-leader.png", diff --git a/style.css b/style.css index ec5a10df..997116ea 100644 --- a/style.css +++ b/style.css @@ -3837,9 +3837,13 @@ table .orb-icon .team-flags.sub-members .team-member-icon:not(:first-of-type):not(:last-of-type) { background-color: lightgreen; } -.team-flags.self .team-member-icon:nth-of-type(4) { +.team-flags.self .team-member-icon:nth-of-type(4) { background-color: lightblue !important; } +.team-flags.right-neighbor .team-member-icon:nth-of-type(5), +.team-flags.left-neighbor .team-member-icon:nth-of-type(3) { + background-color: violet !important; +} /*.open-evolutionary-tree::before { @@ -4725,7 +4729,8 @@ body.external-link-support #external-support{ .icon-skill[data-icon-type="ctw"]::after, .icon-skill[data-icon-type="add-combo"]::after, .icon-skill[data-icon-type="fixed-time"]::after, -.icon-skill[data-icon-type="increase-damage-cap"]::after +.icon-skill[data-icon-type="increase-damage-cap"]::after, +.icon-skill[data-icon-type="bind-card"]::after { content: ""; position: absolute; @@ -5011,6 +5016,17 @@ body.external-link-support #external-support{ { background-position-x: -36px; } + +.icon-skill[data-icon-type="bind-card"] +{ + background-position-y: calc(-36px * 39); +} +.icon-skill[data-icon-type="bind-card"]::after +{ + transform: scale(0.75); + background-position-y: calc(-36px * 47); +} + .icon-skill[data-icon-type="orb-thorn"] { background-position-y:calc(-36px * 37);