diff --git a/doc/link-helper.js b/doc/link-helper.js index 852085c0..3514e65c 100644 --- a/doc/link-helper.js +++ b/doc/link-helper.js @@ -19,7 +19,7 @@ } GM_xmlhttpRequest({ method: "POST", - url: `https://api2.paddb.net/getTeam`, //版本文件 + url: `https://api2.paddb.net/getTeam`, data: '{"id":"63b287659b239a72f6cc79b1"}', headers: { "Content-Type": "application/json", diff --git a/languages/zh-TW.js b/languages/zh-TW.js index c0bc5a78..27d8ff49 100644 --- a/languages/zh-TW.js +++ b/languages/zh-TW.js @@ -102,7 +102,7 @@ rate_multiply_coin: tp`${'icon'}金幣掉落率`, rate_multiply_exp: tp`${'icon'}等級經驗倍率`, reduce_damage: tp`${'condition'}受到的${'attrs'}傷害${'chance'}${'icon'}減少${'value'}`, - power_up: tp`${'condition'}${'targets'}${'target'}${'value'}${'reduceDamage'}${'addCombo'}${'followAttack'}`, + power_up: tp`${'condition'}${'targets'}${'target'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`, power_up_targets: tp`${'attrs_types'}的 `, henshin: tp`變身為${'cards'}`, random_henshin: tp`隨機變身為${'cards'}`, @@ -129,8 +129,7 @@ scale_match_length_bonus: tp`,每多1個${'bonus'},最大${'max'}個時${'stats_max'}`, scale_remain_orbs: tp`剩餘寶珠 ≤ ${'max'} 時${'stats'}${'bonus'}`, scale_remain_orbs_bonus: tp`,每少1個${'bonus'},最少${'min'}個時${'stats_max'}`, - scale_cross: tp`每以十字形式消除5個${'orbs'}1次時${'stats'}`, - scale_cross_single: tp`以十字形式消除5個${'orbs'}時${'stats'}`, + scale_cross: tp`以十字形式消除5個${'orbs'}時${'each_time'}${'stats'}`, scale_state_kind_count: tp`以隊伍中[${'awakenings'}${'attrs'}${'types'}]的數量提升,每個${'stats'}`, }, cond: { @@ -144,7 +143,7 @@ remain_orbs: tp`剩餘寶珠 ≤ ${'value'} 時`, exact_combo: tp`剛好${'value'}連擊時`, exact_length: tp`剛好${'value'}`, - exact_match_length: tp`相連消除${'length'}${'orbs'}時,${'times'}`, + exact_match_length: tp`相連消除${'length'}${'orbs'}時,`, exact_match_enhanced: tp`並且其中包含至少一個強化寶珠`, compo_type_card: tp`隊伍中同時存在 ${'ids'} 時`, diff --git a/languages/zh.js b/languages/zh.js index 410af5ff..eafaf699 100644 --- a/languages/zh.js +++ b/languages/zh.js @@ -103,7 +103,7 @@ rate_multiply_coin: tp`${'icon'}金币掉落率`, rate_multiply_exp: tp`${'icon'}等级经验倍率`, reduce_damage: tp`${'condition'}受到的${'attrs'}伤害${'chance'}${'icon'}减少${'value'}`, - power_up: tp`${'condition'}${'targets'}${'target'}${'value'}${'reduceDamage'}${'addCombo'}${'followAttack'}`, + power_up: tp`${'condition'}${'targets'}${'target'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`, power_up_targets: tp`${'attrs_types'}的 `, henshin: tp`变身为${'cards'}`, random_henshin: tp`随机变身为${'cards'}`, @@ -130,8 +130,7 @@ scale_match_length_bonus: tp`,每多1个${'bonus'},最大${'max'}个时${'stats_max'}`, scale_remain_orbs: tp`剩余宝珠 ≤ ${'max'} 时${'stats'}${'bonus'}`, scale_remain_orbs_bonus: tp`,每少1个${'bonus'},最少${'min'}个时${'stats_max'}`, - scale_cross: tp`每以十字形式消除5个${'orbs'}1次时${'stats'}`, - scale_cross_single: tp`以十字形式消除5个${'orbs'}时${'stats'}`, + scale_cross: tp`以十字形式消除5个${'orbs'}时${'each_time'}${'stats'}`, scale_state_kind_count: tp`以队伍中[${'awakenings'}${'attrs'}${'types'}]的数量提升,每个${'stats'}`, }, cond: { @@ -145,7 +144,7 @@ remain_orbs: tp`剩余宝珠 ≤ ${'value'} 时`, exact_combo: tp`刚好${'value'}连击时`, exact_length: tp`刚好${'value'}`, - exact_match_length: tp`相连消除${'length'}${'orbs'}时,${'times'}`, + exact_match_length: tp`相连消除${'length'}${'orbs'}时,`, exact_match_enhanced: tp`并且其中包含至少一个强化宝珠`, compo_type_card: tp`队伍中同时存在 ${'ids'} 时`, diff --git a/script-json_data.js b/script-json_data.js index 238308bc..5ce549d9 100644 --- a/script-json_data.js +++ b/script-json_data.js @@ -119,7 +119,7 @@ let localTranslating = { rate_multiply_coin: tp`${'icon'}Coins`, rate_multiply_exp: tp`${'icon'}Rank EXP`, reduce_damage: tp`${'condition'}${'chance'}${'icon'}Reduces ${'attrs'} damage taken by ${'value'}`, - power_up: tp`${'condition'}${'targets'}${'value'}${'reduceDamage'}${'addCombo'}${'followAttack'}`, + power_up: tp`${'condition'}${'targets'}${'each_time'}${'value'}${'reduceDamage'}${'additional'}`, power_up_targets: tp`[${'attrs_types'}]'s `, //attrs, types, attrs_types henshin: tp`Transforms into ${'cards'}`, random_henshin: tp`Random transforms into ${'cards'}`, @@ -146,9 +146,8 @@ let localTranslating = { scale_match_length_bonus: tp`, ${'bonus'} per orbs additional,up to ${'stats_max'} for ${'max'} orbs`, scale_remain_orbs: tp`When ≤ ${'max'} orbs remain on the board ${'stats'}${'bonus'}`, scale_remain_orbs_bonus: tp`, ${'bonus'} for each fewer orb, up to ${'stats_max'} for ${'min'} orbs`, - scale_cross: tp`When matching each cross of 5 ${'orbs'} ${'stats'}`, - scale_cross_single: tp`When matching a cross of 5 ${'orbs'} ${'stats'}`, - scale_state_kind_count: tp`${'stats'} for each [${'awakenings'}${'attrs'}${'types'}] in team`, + scale_cross: tp`When matching cross of 5 ${'orbs'} ${'each_time'}${'stats'}`, + scale_state_kind: tp`${'stats'} for each [${'awakenings'}${'attrs'}${'types'}] in team`, }, cond: { unknown: tp`[ Unknown condition ]`, @@ -161,7 +160,7 @@ let localTranslating = { remain_orbs: tp`When ≤ ${'value'} Orbs on the board `, exact_combo: tp`When exactly ${'value'} combos `, exact_length: tp`exactly of ${'value'} `, - exact_match_length: tp`When matching ${'length'}${'value'}${'orbs'}, ${'times'} `, + exact_match_length: tp`When matching ${'length'}${'value'}${'orbs'}, `, exact_match_enhanced: tp` orbs including enhanced`, compo_type_card: tp`When ${'ids'} are all on team, `, @@ -248,7 +247,7 @@ let localTranslating = { affix_type: tp`${'cotent'} types`, affix_awakening: tp`${'cotent'} awoken`, affix_exclude: tp`, exclude ${'cotent'}`, - each_time: tp`each time`, + each_time: tp`each time `, different: tp`different`, same: tp`the same`, }, @@ -1405,7 +1404,7 @@ const specialSearchFunctions = (function() { ul.className = "board"; orbs.forEach(orbType => { const li = ul.appendChild(document.createElement("li")); - li.className = `orb-icon`; + li.className = `orb`; li.setAttribute("data-orb-icon", orbType); }); return ul; @@ -2552,7 +2551,7 @@ const specialSearchFunctions = (function() { return cards.filter(card=>{ const skill = getCardActiveSkill(card, searchTypeArray); return skill; - }).sort((a,b)=>sortByParams(a,b,searchTypeArray)); + }).sort((a,b)=>sortByParams(a,b,searchTypeArray,1)); }, addition:card=>{ const searchTypeArray = [244]; @@ -2561,7 +2560,7 @@ const specialSearchFunctions = (function() { const sk = skill.params; let width, height; - switch (type) { + switch (sk[1]) { case 1: { width = 7; height = 6; @@ -3183,6 +3182,22 @@ const specialSearchFunctions = (function() { return `层 ${strArr.join(" ")}`; } }, + {name:"Delay active after skill use",otLangName:{chs:"技能使用后延迟生效",cht:"技能使用后延迟生效"}, + function:cards=>{ + const searchTypeArray = [248]; + return cards.filter(card=>{ + const skill = getCardActiveSkill(card, searchTypeArray); + return skill; + }).sort((a,b)=>sortByParams(a,b,searchTypeArray)) + }, + addition:card=>{ + const searchTypeArray = [248]; + const skill = getCardActiveSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + return `延迟${sk[0]}T`; + } + }, ]}, {group:true,name:"======Leader Skills=====",otLangName:{chs:"======队长技======",cht:"======隊長技======"}, functions: [ @@ -3203,20 +3218,57 @@ const specialSearchFunctions = (function() { {name:"L Shape Matching",otLangName:{chs:"L消除",cht:"L消除"}, function:cards=>cards.filter(card=>card.leaderSkillTypes.matchMode.LShape) }, + {name:"5 Orbs including enhanced Matching",otLangName:{chs:"5珠含强化消除",cht:"5珠含強化消除"}, + function:cards=>cards.filter(card=>{ + const searchTypeArray = [150]; + const skill = getCardLeaderSkill(card, searchTypeArray); + return skill; + }) + }, {name:"Cross(十) of Heal Orbs",otLangName:{chs:"十字心",cht:"十字心"}, function:cards=>cards.filter(card=>{ - const searchTypeArray = [151,209]; - const skill = getCardLeaderSkill(card, searchTypeArray); - return skill; + const searchTypeArray = [151,209]; + const skill = getCardLeaderSkill(card, searchTypeArray); + return skill; }) }, - {name:"Cross(十) of Color Orbs",otLangName:{chs:"N个十字",cht:"N個十字"}, + {name:"Stacked Magnifications of Cross(十)",otLangName:{chs:"十字叠加倍率",cht:"十字疊加倍率"}, function:cards=>cards.filter(card=>{ - const searchTypeArray = [157]; - const skill = getCardLeaderSkill(card, searchTypeArray); - return skill; + const searchTypeArray = [157]; + const skill = getCardLeaderSkill(card, searchTypeArray); + return skill; }) }, + {name:"Stacked Magnifications of Matching",otLangName:{chs:"指定长度消除叠加倍率",cht:"指定長度消除疊加倍率"}, + function:cards=>{ + const searchTypeArray = [235]; + return cards.filter(card=>{ + const skill = getCardLeaderSkill(card, searchTypeArray); + if (!skill) return false; + const sk = skill.params; + if (!sk[3] || sk[3] === 100) return false; + return skill; + }).sort((a,b)=>sortByParams(a,b,searchTypeArray,2)); + }, + addition:card=>{ + const searchTypeArray = [235]; + const skill = getCardLeaderSkill(card, searchTypeArray); + if (!skill) return; + const sk = skill.params; + if (!sk[3] || sk[3] === 100) return; + const fragment = document.createDocumentFragment(); + const sup = document.createElement("sup"); + sup.textContent = "N"; + const orbs = createOrbsList(flags(sk[0])); + fragment.append(`ATK×${sk[3]/100}`,sup,"/",orbs); + if (sk[1]) { + fragment.append(`×≥${sk[1]}`); + } else { + fragment.append(`×${sk[2]}`); + } + return fragment; + } + }, {name:"Less remain on the board",otLangName:{chs:"剩珠倍率",cht:"剩珠倍率"}, function:cards=>cards.filter(card=>{ const searchTypeArray = [177]; diff --git a/script-skill-parser.js b/script-skill-parser.js index 34751190..185216b0 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -428,7 +428,7 @@ const SkillPowerUpKind = { ScaleMatchAttrs: 'scale-match-attrs', ScaleCross: 'scale-cross', ScaleRemainOrbs: 'scale-remain-orbs', - ScaleStateKindCount: 'scale-state-kind-count', + ScaleStateKind: 'scale-state-kind', }; const SkillKinds = { @@ -545,7 +545,7 @@ function skillParser(skillId) fixedDamages.forEach(skill=>skills.splice(skills.indexOf(skill),1)); //去掉所有后面的 } let skillPowerUp = skills.filter(skill=>skill.kind == SkillKinds.PowerUp); - if (skillPowerUp.length>1) + if (skillPowerUp.length > 1 || (skillPowerUp[0] && skillPowerUp[0]?.value?.kind === SkillPowerUpKind.ScaleCross)) { //合并技能效果 function combinePowerUp(target, source) { @@ -589,7 +589,7 @@ function skillParser(skillId) skill.value.crosses.splice(1); } } - //每个十字技能,先把所有属性合并 + //每个十字技能,先把所有属性合并到自身 scaleCross.forEach(mergeScaleCrossAttr); //筛选出所有倍率一样的子技能 scaleCross = scaleCross.filter((skill,idx,arr)=>{ @@ -926,10 +926,7 @@ const p = { return { kind: SkillPowerUpKind.ScaleCombos ,...this.scale(min, max, baseMul, bonusMul) }; }, scaleMatchLength: function (attrs, min, max, baseMul, bonusMul, matchAll = false) { - /*if (min <= 3 && min === max) - return this.scaleAttrs(attrs, matchAll ? attrs.length : 1, matchAll ? attrs.length : 1, baseMul, bonusMul); - else*/ - return { kind: SkillPowerUpKind.ScaleMatchLength, attrs: attrs, matchAll: matchAll ,...this.scale(min, max, baseMul, bonusMul) }; + return { kind: SkillPowerUpKind.ScaleMatchLength, attrs, matchAll,...this.scale(min, max, baseMul, bonusMul) }; }, scaleMatchAttrs: function (matches, min, max, baseMul, bonusMul) { const flatMatches = matches.flat(); //当匹配的全是不同颜色时,切换成匹配颜色的技能 @@ -944,8 +941,11 @@ const p = { scaleRemainOrbs: function (max, baseMul, bonusMul) { return { kind: SkillPowerUpKind.ScaleRemainOrbs ,...this.scale(bonusMul ? 0 : max, max, baseMul, bonusMul) }; }, - scaleStateKindCount: function (awakenings, attrs, types, value) { - return { kind: SkillPowerUpKind.ScaleStateKindCount, awakenings: awakenings, attrs: attrs, types: types, value: value }; + scaleStateKind: function (awakenings, attrs, types, value) { + return { kind: SkillPowerUpKind.ScaleStateKind, awakenings: awakenings, attrs: attrs, types: types, value: value }; + }, + scaleMatchLengthTimes: function (attrs, min, exact, bonusMul) { + return { kind: SkillPowerUpKind.ScaleMatchLengthTimes, attrs, min, exact, bonusMul }; }, } @@ -985,16 +985,15 @@ function generateOrbs(orbs, exclude, count, time) { function fixedOrbs(...generates) { return { kind: SkillKinds.FixedOrbs, generates: generates }; } -function powerUp(attrs, types, value, condition = null, reduceDamageValue = null, additional = []) { +function powerUp(attrs, types, value, condition = null, reduceDamage = null, additional = [], eachTime = false) { if (value.kind === SkillPowerUpKind.Multiplier) { let hp = value.hp, atk = value.atk, rcv = value.rcv; if (hp === 1 && atk === 1 && rcv === 1 && !reduceDamage) return null; } - if (attrs?.targets != undefined) { - return { kind: SkillKinds.PowerUp, targets: attrs.targets, attrs: null, types: null, condition: condition, value: value, reduceDamage: reduceDamageValue, additional: additional}; - } - return { kind: SkillKinds.PowerUp, attrs: attrs, types: types, condition: condition, value: value, reduceDamage: reduceDamageValue, additional: additional}; + let targets = attrs?.targets; + if (targets) {attrs = null; types = null;} + return { kind: SkillKinds.PowerUp, targets, attrs, types, condition, value, reduceDamage, additional, eachTime}; } function counterAttack(attr, prob, value) { return { kind: SkillKinds.CounterAttack, attr: attr, prob: prob, value: value }; @@ -1328,7 +1327,7 @@ const skillObjectParsers = { }else { return activeTurns(turns, type === 2 ? - powerUp(null, null, p.scaleStateKindCount([awoken1, awoken2, awoken3].filter(Boolean), null, null, p.mul({atk: mul - 100, hp:0, rcv:0}))) : + powerUp(null, null, p.scaleStateKind([awoken1, awoken2, awoken3].filter(Boolean), null, null, p.mul({atk: mul - 100, hp:0, rcv:0}))) : reduceDamage('all', v.percentAwakenings([awoken1, awoken2, awoken3].filter(Boolean), v.percent(mul))) ); } @@ -1370,7 +1369,7 @@ const skillObjectParsers = { [167](attrs, min, baseAtk, baseRcv, bonusAtk, bonusRcv, max) { return powerUp(null, null, p.scaleMatchLength(flags(attrs), min, max, [baseAtk, baseRcv], [bonusAtk, bonusRcv])); }, [168](turns, awoken1, awoken2, awoken3, awoken4, awoken5, awoken6, mul) { return activeTurns(turns, - powerUp(null, null, p.scaleStateKindCount([awoken1, awoken2, awoken3, awoken4, awoken5, awoken6].filter(Boolean), null, null, p.mul({atk: mul, hp:0, rcv:0}))) + powerUp(null, null, p.scaleStateKind([awoken1, awoken2, awoken3, awoken4, awoken5, awoken6].filter(Boolean), null, null, p.mul({atk: mul, hp:0, rcv:0}))) ); }, [169](min, base, percent, bonus, max) { return powerUp(null, null, p.scaleCombos(min, max ?? min, [base || 100, 100], [bonus, 0]), null, v.percent(percent)); }, @@ -1574,11 +1573,11 @@ const skillObjectParsers = { [227]() { return leaderChange(1); }, [228](turns, attrs, types, atk, rcv) { return activeTurns(turns, - powerUp(null, null, p.scaleStateKindCount(null, flags(attrs), flags(types), p.mul({atk: atk, rcv: rcv ?? 0, hp:0}))) + powerUp(null, null, p.scaleStateKind(null, flags(attrs), flags(types), p.mul({atk: atk, rcv: rcv ?? 0, hp:0}))) ); }, [229](attrs, types, hp, atk, rcv) { - return powerUp(null, null, p.scaleStateKindCount(null, flags(attrs), flags(types), p.mul({hp: hp || 0, atk: atk || 0, rcv: rcv || 0}))); + return powerUp(null, null, p.scaleStateKind(null, flags(attrs), flags(types), p.mul({hp: hp || 0, atk: atk || 0, rcv: rcv || 0}))); }, [230](turns, target, mul) { const targetTypes = ["self","leader-self","leader-helper","sub-members"]; @@ -1586,13 +1585,26 @@ const skillObjectParsers = { return activeTurns(turns, powerUp({targets: typeArr}, null, p.mul({ atk: mul }))); }, [231](turns, awoken1, awoken2, awoken3, awoken4, awoken5, atk, rcv) { - return activeTurns(turns, powerUp(null, null, p.scaleStateKindCount([awoken1, awoken2, awoken3, awoken4, awoken5].filter(Boolean), null, null, p.mul({atk: atk, hp:0, rcv: rcv})))); + return activeTurns(turns, powerUp(null, null, p.scaleStateKind([awoken1, awoken2, awoken3, awoken4, awoken5].filter(Boolean), null, null, p.mul({atk: atk, hp:0, rcv: rcv})))); }, [232](...ids) { return evolvedSkills(false, ids.map(id => this.parser(id))); }, [233](...ids) { return evolvedSkills(true, ids.map(id => this.parser(id))); }, [234](min, max) { return skillProviso(c.stage(min ?? 0, max ?? 0)); }, - [235](attr, _, len, atk, percent, combo, damage) { - return powerUp(null, null, p.mul({ atk: atk || 100}), c.exact('match-length', len, flags(attr), true), v.percent(percent), [combo ? addCombo(combo) : null, damage ? followAttackFixed(damage) : null].filter(Boolean)); + [235](attrs, lenMin, lenExact, atk, reducePercent, combo, damage) { + const len = lenMin || lenExact; //宝珠长度 + const ee = Boolean(lenExact); //是否为刚好等于 + //第二个参数为多少以上就算,第三个参数为多少以上才算 + //return powerUp(null, null, p.mul({ atk: atk || 100}), c.exact('match-length', lenExact, flags(attr)), v.percent(percent), [combo ? addCombo(combo) : null, damage ? followAttackFixed(damage) : null].filter(Boolean), true); + //let powerup, condition; + let powerup = Boolean(lenMin) + ? p.scaleMatchLength(flags(attrs), lenMin, lenMin, [atk, 100], [0, 0]) + : p.mul({ atk: atk || 100}); + let condition = Boolean(lenExact) + ? c.exact('match-length', lenExact, flags(attrs)) + : null; + let additional = [combo ? addCombo(combo) : null, damage ? followAttackFixed(damage) : null].filter(Boolean); + const eachTime = true; + return powerUp(null, null, powerup, condition, v.percent(reducePercent), additional, eachTime); }, [236](...ids) { //随机变身 return henshin(ids.distinct(), true); @@ -2418,10 +2430,11 @@ function renderSkill(skill, option = {}) break; } case SkillKinds.PowerUp: { - let attrs = skill.attrs, types = skill.types, targets = skill.targets, condition = skill.condition, value = skill.value, reduceDamage = skill.reduceDamage, additional = skill.additional; + let { attrs, types, targets, condition, value, reduceDamage, additional, eachTime } = skill; let dict = { icon: createIcon(skill.kind), }; + let comma = tsp.word.comma; if (condition) dict.condition = renderCondition(condition); let targetDict = {}, attrs_types = []; @@ -2449,7 +2462,6 @@ function renderSkill(skill, option = {}) if (attrs_types.length) dict.targets = tsp.skill.power_up_targets(targetDict); - let subDocument = []; if (value){ /*if (attrs?.includes(5) && value.kind == SkillPowerUpKind.Multiplier) { //如果属性有5,则是回复力 @@ -2463,22 +2475,23 @@ function renderSkill(skill, option = {}) //不显示 value }else { - subDocument.push(renderPowerUp(value)); + dict.value = renderPowerUp(value); } } if (reduceDamage && reduceDamage.value > 0) { - subDocument.push(tsp.skill.reduce_damage({ + let reduceDamageNode = tsp.skill.reduce_damage({ value: renderValue(reduceDamage, {percent: true}), icon: createIcon("reduce-damage"), - })); + }); + dict.reduceDamage = [comma(), reduceDamageNode].nodeJoin(); } if (additional?.length) { - for (const subSkill of additional.filter(Boolean)) - { - subDocument.push(renderSkill(subSkill, option)); - } + let additionalNode = additional.filter(Boolean).map(subSkill=>renderSkill(subSkill, option)); + dict.additional = [comma(), additionalNode.nodeJoin(comma())].nodeJoin(); + } + if (eachTime) { + dict.each_time = tsp.word.each_time(); } - dict.value = subDocument.filter(Boolean).nodeJoin(tsp.word.comma()); frg.ap(tsp.skill.power_up(dict)); break; } @@ -2817,7 +2830,7 @@ function renderCondition(cond) { }; frg.ap(tsp.power.scale_attributes(dict)); } else if (cond.exact) { - const { type, attrs , value, multiple } = cond.exact; + const { type, attrs , value} = cond.exact; if (type === 'combo') { let dict = { value }; frg.ap(tsp.cond.exact_combo(dict)); @@ -2828,9 +2841,6 @@ function renderCondition(cond) { 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)); } @@ -3076,8 +3086,9 @@ function renderPowerUp(powerUp) { let dict = { orbs: renderOrbs(cross.attr, {affix: true, any: true}), stats: renderStats(1, cross.atk, cross.rcv), + each_time: cross.single ? null : tsp.word.each_time(), } - return cross.single ? tsp.power.scale_cross_single(dict) : tsp.power.scale_cross(dict); + return tsp.power.scale_cross(dict); }); frg.ap(subDocument.nodeJoin(tsp.word.comma())); //} @@ -3103,7 +3114,7 @@ function renderPowerUp(powerUp) { break; } - case SkillPowerUpKind.ScaleStateKindCount: { + case SkillPowerUpKind.ScaleStateKind: { let awakenings = powerUp.awakenings, attrs = powerUp.attrs, types = powerUp.types, value = powerUp.value; let dict = { stats: renderStats(value.hp, value.atk, value.rcv, {mul: false, percent: true}), @@ -3111,7 +3122,7 @@ function renderPowerUp(powerUp) { attrs: attrs?.length && renderAttrs(attrs, {affix: true}) || null, types: types?.length && renderTypes(types, {affix: true}) || null, } - frg.ap(tsp.power.scale_state_kind_count(dict)); + frg.ap(tsp.power.scale_state_kind(dict)); break; } default: diff --git a/style.css b/style.css index daa97649..9b663a43 100644 --- a/style.css +++ b/style.css @@ -1522,6 +1522,11 @@ icon.inflicts::after transform: scale(0.75); margin: calc(-32px * (1 - 0.75) / 2); } +.custom-addition .board .orb { + filter: unset; + transform: scale(0.5); + margin: calc(-36px * (1 - 0.5) / 2); +} .cd-preview .cd-max, .cd-preview .cd-min,