diff --git a/languages/zh.js b/languages/zh.js index dc6500ef..c17a8c9b 100644 --- a/languages/zh.js +++ b/languages/zh.js @@ -127,9 +127,9 @@ multi_player: tp`协力时`, remain_orbs: tp`剩余宝珠 ≤ ${'value'} 时`, exact_combo: tp`刚好${'value'}连击时`, - exact_match_length: tp`相连消除刚好${'value'}${'orbs'}时`, + exact_length: tp`刚好${'value'}`, + exact_match_length: tp`相连消除${'length'}${'orbs'}时,${'times'}`, exact_match_enhanced: tp`并且其中包含至少一个强化宝珠`, - exact_match_length_multiple: tp`每相连消除刚好${'value'}${'orbs'}1次时`, compo_type_card: tp`队伍中同时存在 ${'ids'} 时`, compo_type_series: tp`队员组成全为 ${'ids'} 合作时`, @@ -214,6 +214,7 @@ affix_type: tp`${'cotent'}类型`, //词缀-类型 affix_awakening: tp`${'cotent'}觉醒`, //词缀-觉醒 affix_exclude: tp`${'cotent'}以外`, //词缀-属性 + each_time: tp`每一次`, }, attrs: { [0]: tp`${'icon'}火`, diff --git a/script-json_data.js b/script-json_data.js index b6744a2f..b564d7f9 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -143,9 +143,9 @@ let localTranslating = { multi_player: tp`When in Multiplayer Mode `, remain_orbs: tp`When ≤ ${'value'} Orbs on the board `, exact_combo: tp`When exactly ${'value'} combos `, - exact_match_length: tp`When matching exactly of ${'value'}${'orbs'} `, + exact_length: tp`exactly of ${'value'} `, + exact_match_length: tp`When matching ${'length'}${'value'}${'orbs'}, ${'times'} `, exact_match_enhanced: tp` orbs including enhanced`, - exact_match_length_multiple: tp`When matching each exactly of ${'value'}${'orbs'} `, compo_type_card: tp`When ${'ids'} are all on team, `, compo_type_series: tp`When all subs from ${'ids'} collab (Needs at least 1 sub), `, @@ -230,6 +230,7 @@ let localTranslating = { affix_type: tp`${'cotent'} types`, affix_awakening: tp`${'cotent'} awoken`, affix_exclude: tp`, exclude ${'cotent'}`, + each_time: tp`each time`, }, attrs: { [0]: tp`${'icon'}Fire`, diff --git a/script-skill-parser.js b/script-skill-parser.js index a1fd4b8c..01e0a480 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -2727,18 +2727,22 @@ function renderCondition(cond) { }; frg.ap(tsp.cond.remain_orbs(dict)); } else if (cond.exact) { - if (cond.exact.type === 'combo') { - let dict = {value: cond.exact.value}; + const { type, attrs , value, multiple } = cond.exact; + if (type === 'combo') { + let dict = { value }; frg.ap(tsp.cond.exact_combo(dict)); - } else if (cond.exact.type === 'match-length') { + } else if (type === 'match-length') { let dict = { - value: renderValue(v.constant(cond.exact.value), {unit: tsp.unit.orbs}), - orbs: cond.exact.attrs === 'enhanced' ? tsp.cond.exact_match_enhanced() : renderOrbs(cond.exact.attrs, {affix: true}) + orbs: attrs === 'enhanced' ? tsp.cond.exact_match_enhanced() : renderOrbs(attrs, {affix: true}) }; - - frg.ap(cond.exact.multiple ? - tsp.cond.exact_match_length_multiple(dict) : - tsp.cond.exact_match_length(dict)); + if (value) { + dict.length = tsp.cond.exact_length({value:renderValue(v.constant(value), {unit: tsp.unit.orbs})}); + } + if (multiple) { + dict.times = tsp.word.each_time(); + } + + frg.ap(tsp.cond.exact_match_length(dict)); } } else if (cond.compo) { let dict = {};