diff --git a/images/awoken.png b/images/awoken.png index c01ba3fc..85d1bf26 100644 Binary files a/images/awoken.png and b/images/awoken.png differ diff --git a/images/project file/awoken.fw.png b/images/project file/awoken.fw.png index 81351859..ae5dfb29 100644 Binary files a/images/project file/awoken.fw.png and b/images/project file/awoken.fw.png differ diff --git a/languages/zh-TW.js b/languages/zh-TW.js index 67ca004d..df6ae3c5 100644 --- a/languages/zh-TW.js +++ b/languages/zh-TW.js @@ -162,6 +162,9 @@ stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 時`, //地下城層數 stage_greater_or_equal: tp`${'stage'} ≥ ${'min'} 時`, + orbs_less_or_equal: tp`盤面上 ${'orbs'} ≤ ${'max'} 時`, //盤面上珠子數 + orbs_greater_or_equal: tp`盤面上 ${'orbs'} ≥ ${'min'} 時`, + L_shape: tp`以L字形式消除5個${'orbs'}時`, heal: tp`以${'orbs'}回復${'heal'}${'stats'}時`, }, diff --git a/languages/zh.js b/languages/zh.js index 3827b3a7..a1089a1b 100644 --- a/languages/zh.js +++ b/languages/zh.js @@ -162,6 +162,9 @@ stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 时`, //地下城层数 stage_greater_or_equal: tp`${'stage'} ≥ ${'min'} 时`, + orbs_less_or_equal: tp`盘面上 ${'orbs'} ≤ ${'max'} 时`, //盘面上珠子数 + orbs_greater_or_equal: tp`盘面上 ${'orbs'} ≥ ${'min'} 时`, + L_shape: tp`以L字形式消除5个${'orbs'}时`, heal: tp`以${'orbs'}回复${'heal'}${'stats'}时`, }, diff --git a/script-json_data.js b/script-json_data.js index 348991e0..88e952a1 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -177,6 +177,9 @@ let localTranslating = { stage_less_or_equal: tp`When ${'stage'} ≤ ${'max'}, `, stage_greater_or_equal: tp`When ${'stage'} ≥ ${'min'}, `, + orbs_less_or_equal: tp`When ${'orbs'} ≤ ${'max'} on board, `, + orbs_greater_or_equal: tp`When ${'orbs'} ≥ ${'min'} on board, `, + L_shape: tp`When matching an L shape of 5 ${'orbs'} `, heal: tp`When healing at least ${'heal'} ${'stats'} with ${'orbs'} `, }, @@ -3389,6 +3392,22 @@ const specialSearchFunctions = (function() { return `延迟${sk[0]}T`; } }, + {name:"Enable require number of Orbs",otLangName:{chs:"技能使用珠子数量要求",cht:"技能使用珠子数量要求"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [255]; + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }), + addition:card=>{ + const searchTypeArray = [255]; + const skill = getCardActiveSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + const fragment = document.createDocumentFragment(); + fragment.append(createOrbsList(flags(sk[0])), sk[2] ? `≤${sk[2]}` : `≥${sk[1]}`); + return fragment; + } + }, ]}, {group:true,name:"======Leader Skills=====",otLangName:{chs:"======队长技======",cht:"======隊長技======"}, functions: [ diff --git a/script-skill-parser.js b/script-skill-parser.js index dba7af68..a27e43a5 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -881,6 +881,9 @@ const c = { stage: function (min, max) { return { stage: { min: min ?? 0, max: max ?? 0 } }; }, + remainAttrOrbs: function (attrs, min, max) { + return { remainAttrOrbs: { attrs, min, max} }; + }, } const p = { @@ -1682,6 +1685,7 @@ const skillObjectParsers = { boardJammingStates('roulette', count ? 'random' : 'shape', options) ); }, + [255](attr, min, max) { return skillProviso(c.remainAttrOrbs(flags(attr), min ?? 0, max ?? 0)); }, [1000](type, pos, ...ids) { const posType = (type=>{ switch (type) { @@ -2959,6 +2963,16 @@ function renderCondition(cond) { frg.ap(tsp.cond.stage_greater_or_equal(dict)); else if (cond.stage.max > 0) frg.ap(tsp.cond.stage_less_or_equal(dict)); + } else if (cond.remainAttrOrbs) { + let dict = { + orbs: renderOrbs(cond.remainAttrOrbs.attrs, {affix: true}), + min: renderValue(v.constant(cond.remainAttrOrbs.min)), + max: renderValue(v.constant(cond.remainAttrOrbs.max)), + }; + if (cond.remainAttrOrbs.min > 0) + frg.ap(tsp.cond.orbs_greater_or_equal(dict)); + else if (cond.remainAttrOrbs.max > 0) + frg.ap(tsp.cond.orbs_less_or_equal(dict)); } else { frg.ap(tsp.cond.unknown()); } diff --git a/service-worker.js b/service-worker.js index 5805ed4a..7ae154c3 100644 --- a/service-worker.js +++ b/service-worker.js @@ -13807,11 +13807,11 @@ const cachesMap = new Map([ ], [ "script-json_data.js", - "a6a97e40a4cc2e28d8230ca98d4026cc" + "05dee3b1d091d22aeae374aee859a6c9" ], [ "script-skill-parser.js", - "962642b309288e0553652754d9113c5e" + "c6960913c3aa3c91f277f62be24b31fb" ], [ "script-universal_function.js", @@ -13883,7 +13883,7 @@ const cachesMap = new Map([ ], [ "languages/zh-TW.js", - "69db4a69505ea899a49a6a28900d8556" + "57c71cc1d49f3f24cabc3d1b9ff588b0" ], [ "languages/zh.css", @@ -13891,7 +13891,7 @@ const cachesMap = new Map([ ], [ "languages/zh.js", - "06ff4367086bccc642f6a13d6410e0bf" + "1ee1997c68c00995d178dc9c0a8ec96b" ], [ "images/attrs.png", @@ -13907,7 +13907,7 @@ const cachesMap = new Map([ ], [ "images/awoken.png", - "80c96a6f12905ba490c90f5ddd54ba17" + "8802d090bb0be32fbe08bc48bc5b6c8d" ], [ "images/badge-bg.png",