| @@ -162,6 +162,9 @@ | |||||
| stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 時`, //地下城層數 | stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 時`, //地下城層數 | ||||
| stage_greater_or_equal: tp`${'stage'} ≥ ${'min'} 時`, | 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'}時`, | L_shape: tp`以L字形式消除5個${'orbs'}時`, | ||||
| heal: tp`以${'orbs'}回復${'heal'}${'stats'}時`, | heal: tp`以${'orbs'}回復${'heal'}${'stats'}時`, | ||||
| }, | }, | ||||
| @@ -162,6 +162,9 @@ | |||||
| stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 时`, //地下城层数 | stage_less_or_equal: tp`${'stage'} ≤ ${'max'} 时`, //地下城层数 | ||||
| stage_greater_or_equal: tp`${'stage'} ≥ ${'min'} 时`, | 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'}时`, | L_shape: tp`以L字形式消除5个${'orbs'}时`, | ||||
| heal: tp`以${'orbs'}回复${'heal'}${'stats'}时`, | heal: tp`以${'orbs'}回复${'heal'}${'stats'}时`, | ||||
| }, | }, | ||||
| @@ -177,6 +177,9 @@ let localTranslating = { | |||||
| stage_less_or_equal: tp`When ${'stage'} ≤ ${'max'}, `, | stage_less_or_equal: tp`When ${'stage'} ≤ ${'max'}, `, | ||||
| stage_greater_or_equal: tp`When ${'stage'} ≥ ${'min'}, `, | 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'} `, | L_shape: tp`When matching an L shape of 5 ${'orbs'} `, | ||||
| heal: tp`When healing at least ${'heal'} ${'stats'} with ${'orbs'} `, | heal: tp`When healing at least ${'heal'} ${'stats'} with ${'orbs'} `, | ||||
| }, | }, | ||||
| @@ -3389,6 +3392,22 @@ const specialSearchFunctions = (function() { | |||||
| return `延迟${sk[0]}T`; | 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: [ | {group:true,name:"======Leader Skills=====",otLangName:{chs:"======队长技======",cht:"======隊長技======"}, functions: [ | ||||
| @@ -881,6 +881,9 @@ const c = { | |||||
| stage: function (min, max) { | stage: function (min, max) { | ||||
| return { stage: { min: min ?? 0, max: max ?? 0 } }; | return { stage: { min: min ?? 0, max: max ?? 0 } }; | ||||
| }, | }, | ||||
| remainAttrOrbs: function (attrs, min, max) { | |||||
| return { remainAttrOrbs: { attrs, min, max} }; | |||||
| }, | |||||
| } | } | ||||
| const p = { | const p = { | ||||
| @@ -1682,6 +1685,7 @@ const skillObjectParsers = { | |||||
| boardJammingStates('roulette', count ? 'random' : 'shape', options) | boardJammingStates('roulette', count ? 'random' : 'shape', options) | ||||
| ); | ); | ||||
| }, | }, | ||||
| [255](attr, min, max) { return skillProviso(c.remainAttrOrbs(flags(attr), min ?? 0, max ?? 0)); }, | |||||
| [1000](type, pos, ...ids) { | [1000](type, pos, ...ids) { | ||||
| const posType = (type=>{ | const posType = (type=>{ | ||||
| switch (type) { | switch (type) { | ||||
| @@ -2959,6 +2963,16 @@ function renderCondition(cond) { | |||||
| frg.ap(tsp.cond.stage_greater_or_equal(dict)); | frg.ap(tsp.cond.stage_greater_or_equal(dict)); | ||||
| else if (cond.stage.max > 0) | else if (cond.stage.max > 0) | ||||
| frg.ap(tsp.cond.stage_less_or_equal(dict)); | 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 { | } else { | ||||
| frg.ap(tsp.cond.unknown()); | frg.ap(tsp.cond.unknown()); | ||||
| } | } | ||||
| @@ -13807,11 +13807,11 @@ const cachesMap = new Map([ | |||||
| ], | ], | ||||
| [ | [ | ||||
| "script-json_data.js", | "script-json_data.js", | ||||
| "a6a97e40a4cc2e28d8230ca98d4026cc" | |||||
| "05dee3b1d091d22aeae374aee859a6c9" | |||||
| ], | ], | ||||
| [ | [ | ||||
| "script-skill-parser.js", | "script-skill-parser.js", | ||||
| "962642b309288e0553652754d9113c5e" | |||||
| "c6960913c3aa3c91f277f62be24b31fb" | |||||
| ], | ], | ||||
| [ | [ | ||||
| "script-universal_function.js", | "script-universal_function.js", | ||||
| @@ -13883,7 +13883,7 @@ const cachesMap = new Map([ | |||||
| ], | ], | ||||
| [ | [ | ||||
| "languages/zh-TW.js", | "languages/zh-TW.js", | ||||
| "69db4a69505ea899a49a6a28900d8556" | |||||
| "57c71cc1d49f3f24cabc3d1b9ff588b0" | |||||
| ], | ], | ||||
| [ | [ | ||||
| "languages/zh.css", | "languages/zh.css", | ||||
| @@ -13891,7 +13891,7 @@ const cachesMap = new Map([ | |||||
| ], | ], | ||||
| [ | [ | ||||
| "languages/zh.js", | "languages/zh.js", | ||||
| "06ff4367086bccc642f6a13d6410e0bf" | |||||
| "1ee1997c68c00995d178dc9c0a8ec96b" | |||||
| ], | ], | ||||
| [ | [ | ||||
| "images/attrs.png", | "images/attrs.png", | ||||
| @@ -13907,7 +13907,7 @@ const cachesMap = new Map([ | |||||
| ], | ], | ||||
| [ | [ | ||||
| "images/awoken.png", | "images/awoken.png", | ||||
| "80c96a6f12905ba490c90f5ddd54ba17" | |||||
| "8802d090bb0be32fbe08bc48bc5b6c8d" | |||||
| ], | ], | ||||
| [ | [ | ||||
| "images/badge-bg.png", | "images/badge-bg.png", | ||||