| @@ -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'}横行`, | |||
| @@ -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'}橫行`, | |||
| @@ -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: //多色触发 | |||
| @@ -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()); | |||
| } | |||
| @@ -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: //多色触发 | |||
| @@ -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", | |||