diff --git a/languages/zh-hans.js b/languages/zh-hans.js index 6eb37f9f..0776f707 100644 --- a/languages/zh-hans.js +++ b/languages/zh-hans.js @@ -190,6 +190,7 @@ const _localTranslating = { L_shape: tp`以L字形式消除5个${'orbs'}时`, heal: tp`以${'orbs'}回复${'heal'}${'stats'}时`, + awakening_activated: tp`${'awakenings'}同时发动时`, }, position: { top: tp`上方第${'pos'}横行`, diff --git a/languages/zh-hant.js b/languages/zh-hant.js index c7f8304d..2c45ea01 100644 --- a/languages/zh-hant.js +++ b/languages/zh-hant.js @@ -189,6 +189,7 @@ const _localTranslating = { L_shape: tp`以L字形式消除5個${'orbs'}時`, heal: tp`以${'orbs'}回復${'heal'}${'stats'}時`, + awakening_activated: tp`${'awakenings'}同時發動時`, }, position: { top: tp`上方第${'pos'}橫行`, diff --git a/script-json_data.js b/script-json_data.js index 303b8950..9601671d 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -205,6 +205,7 @@ let localTranslating = { L_shape: tp`When matching an L shape of 5 ${'orbs'} `, heal: tp`When healing at least ${'heal'} ${'stats'} with ${'orbs'} `, + awakening_activated: tp`When ${'awakenings'} activated at the same time `, }, position: { top: tp`${'pos'} of top rows`, @@ -283,7 +284,7 @@ let localTranslating = { affix_attr: tp`${'cotent'} attr.`, affix_orb: tp`${'cotent'} orbs`, affix_type: tp`${'cotent'} types`, - affix_awakening: tp`${'cotent'} awoken`, + affix_awakening: tp`${'cotent'} awakenings`, affix_exclude: tp`, exclude ${'cotent'}`, each_time: tp`each time `, different: tp`different`, @@ -763,6 +764,7 @@ const specialSearchFunctions = (function() { case 151: //十字心触发 case 169: //C触发 case 198: //回血触发 + case 271: //激活觉醒触发 scale = sk[2]/100; break; case 170: //多色触发 diff --git a/script-skill-parser.js b/script-skill-parser.js index 7785f207..cf378377 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -876,14 +876,15 @@ const c = { useSkill: function (times = 1) { return { useSkill: times }; }, multiplayer: function () { return { multiplayer: true }; }, prob: function (percent) { return { prob: percent }; }, - LShape: function (attrs) { return { LShape: { attrs: attrs } }; }, - heal: function (min) { return { heal: { min: min } }; }, - stage: function (min, max) { - return { stage: { min: min ?? 0, max: max ?? 0 } }; + LShape: function (attrs) { return { LShape: { attrs } }; }, + heal: function (min) { return { heal: { min } }; }, + stage: function (min=0, max=0) { + return { stage: { min, max } }; }, remainAttrOrbs: function (attrs, min, max) { return { remainAttrOrbs: { attrs, min, max} }; }, + awakeningActivated: function (awakenings) { return { awakeningActivated: { awakenings } }; }, } const p = { @@ -1776,6 +1777,28 @@ const skillObjectParsers = { }, //一回合内使用几次技能才有倍率的队长技。 [270](times, atk, rcv) { { return powerUp(Bin.unflags(31), null, p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.useSkill(times)); } }, + //同时发动觉醒时强化 + [271](awakenings, atk, reducePercent, combo, damage, rcv) { + const awakeningsType = [ + 27, //U-猜的 + 48, //九宫-猜的 + 60, //L字 + 78, //十字-猜的 + 126, //T字 + 22, //横排-猜的 + 23, + 24, + 25, + 26, + 79, //三色 + 80, //四色 + 81, //五色-猜的 + 82, //饼干-猜的 + ]; + const awakeningsArr = Bin.unflags(awakenings).map(n => awakeningsType[n]); + let additional = [combo ? addCombo(combo) : null, damage ? followAttackFixed(damage) : null].filter(Boolean); + return powerUp(null, null, p.mul({ atk: atk, rcv: rcv}), c.awakeningActivated(awakeningsArr), v.percent(reducePercent), additional); + }, //固定起手位置 [273](turns) {return activeTurns(turns, fixedStartingPosition()); }, @@ -3247,6 +3270,11 @@ function renderCondition(cond) { 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 if (cond.awakeningActivated) { + let dict = { + awakenings: renderAwakenings(cond.awakeningActivated.awakenings, {affix: true}), + }; + frg.ap(tsp.cond.awakening_activated(dict)); } else { frg.ap(tsp.cond.unknown()); } diff --git a/script-universal_function.js b/script-universal_function.js index 5d187354..abd6e48b 100644 --- a/script-universal_function.js +++ b/script-universal_function.js @@ -1632,12 +1632,13 @@ function henshinBase(cardid, firstId) } //计算卡片队长技+C function getSkillAddCombo(card) { - const searchTypeArray = [192, 194, 206, 209, 210, 219, 220, 235]; + const searchTypeArray = [192, 194, 206, 209, 210, 219, 220, 235, 271]; const skills = getCardLeaderSkills(card, searchTypeArray); return skills.map(skill=>{ switch (skill.type) { case 192: case 194: + case 271: return skill.params[3] ?? 0; case 206: return skill.params[6] ?? 0; @@ -1657,7 +1658,7 @@ function getSkillAddCombo(card) { } //计算卡片队长技追打 function getSkillFixedDamage(card) { - const searchTypeArray = [199, 200, 201, 223, 235]; + const searchTypeArray = [199, 200, 201, 223, 235, 271]; const skills = getCardLeaderSkills(card, searchTypeArray); return skills.map(skill=>{ switch (skill.type) { @@ -1670,6 +1671,8 @@ function getSkillFixedDamage(card) { return skill.params[1] ?? 0; case 235: return skill.params[6] ?? 0; + case 271: + return skill.params[4] ?? 0; default: return 0; } @@ -1975,7 +1978,7 @@ function getAttrShieldAwokenReduceScales(team) { } //获取盾减伤比例组 function getReduceScales(leaderid) { - const searchTypeArray = [16, 17, 36, 38, 43, 129, 163, 130, 131, 178, 151, 169, 198, 170, 182, 193, 171, 183, 235]; + const searchTypeArray = [16, 17, 36, 38, 43, 129, 163, 130, 131, 178, 151, 169, 198, 170, 182, 193, 171, 183, 235, 271]; const lss = getCardLeaderSkills(Cards[leaderid], searchTypeArray); function leaderReduceScale(ls) { @@ -2056,6 +2059,7 @@ function getReduceScales(leaderid) { case 151: //十字心触发 case 169: //C触发 case 198: //回血触发 + case 271: //激活觉醒触发 reduce.scale = (sk[2] || 0) / 100; break; case 170: //多色触发 diff --git a/service-worker.js b/service-worker.js index bcbec787..7c84fdd9 100644 --- a/service-worker.js +++ b/service-worker.js @@ -47623,15 +47623,15 @@ const cachesMap = new Map([ ], [ "script-json_data.js", - "59077aadbc452b15c8780a90868c3604" + "884c04445baf17f77fc701314e4d17de" ], [ "script-skill-parser.js", - "228086552199fc6bb7eea0fe64f5feea" + "6028d746baee2c5266706c9cc405f984" ], [ "script-universal_function.js", - "74aa71916cf95d943fab1ce6476ddabb" + "d415679261b7c182cd1ecae2adb003a3" ], [ "script.js", @@ -47651,7 +47651,7 @@ const cachesMap = new Map([ ], [ "style.css", - "773b820fdbe75de69dbca40cd36f2fe6" + "a6033f196d006d83c07fa431eb78d057" ], [ "temp.js", @@ -47695,7 +47695,7 @@ const cachesMap = new Map([ ], [ "languages/zh-hans.js", - "92cc36747ac4440bdc45a1eba6ab4be7" + "b383afb22425f7874a3a1c109551d478" ], [ "languages/zh-hant.css", @@ -47703,7 +47703,7 @@ const cachesMap = new Map([ ], [ "languages/zh-hant.js", - "04f96537a27ece89005f42da68735431" + "9ecee6c2178fe3676700b33caf92c640" ], [ "images/attrs.png", @@ -47855,7 +47855,7 @@ const cachesMap = new Map([ ], [ "images/icon-skills.png", - "df43e89a902a603d16cc6cc4f77d25d2" + "555ebb1eec7b8890b0af77c9f4353c4d" ], [ "images/icon-switch-leader.png",