177号技能剩余倍率不对

This commit is contained in:
枫谷剑仙 2021-09-17 21:30:44 +08:00
parent 58fe3220dd
commit abb8c30a4e
3 changed files with 31 additions and 4 deletions

View File

@ -105,6 +105,8 @@
scale_match_attrs_bonus: tp`, ${'bonus'} per matches additionalup to ${'stats_max'} for ${'max'} matches`,
scale_match_length: tp`When matching ${'min'} of ${'orbs'} ${'in_once'}${'stats'}${'bonus'}`,
scale_match_length_bonus: tp`, ${'bonus'} per orbs additionalup 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`,
@ -117,8 +119,7 @@
hp_belong_to_range: tp`When ${'hp'} ∈ [${'min'},${'max'}] `,
use_skill: tp`When skills used `,
multi_player: tp`When in Multiplayer Mode `,
remain_orbs: tp`When ≤ ${'value'} Orbs on
the board `,
remain_orbs: tp`When ≤ ${'value'} Orbs on the board `,
exact_combo: tp`When exactly ${'value'} combos `,
exact_match_length: tp`When matching exactly ${'value'}${'orbs'} `,
exact_match_enhanced: tp` orbs including enhanced`,

View File

@ -118,6 +118,8 @@ let localTranslating = {
scale_match_attrs_bonus: tp`每多1串${'bonus'},最大${'max'}串时${'stats_max'}`,
scale_match_length: tp`${'in_once'}相连消除${'min'}${'orbs'}${'stats'}${'bonus'}`,
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_state_kind_count: tp`以队伍中[${'awakenings'}${'attrs'}${'types'}]的数量提升,每个${'stats'}`,

View File

@ -318,6 +318,7 @@ const SkillPowerUpKind = {
ScaleMatchLength: 'scale-match-len',
ScaleMatchAttrs: 'scale-match-attrs',
ScaleCross: 'scale-cross',
ScaleRemainOrbs: 'scale-remain-orbs',
ScaleStateKindCount: 'scale-state-kind-count',
};
@ -793,6 +794,9 @@ const p = {
scaleCross: function (crosses) {
return { kind: SkillPowerUpKind.ScaleCross, crosses: crosses.map(cross => ({ ...cross, atk: ((cross.atk ?? 100) / 100), rcv: ((cross.rcv ?? 100) / 100)})) };
},
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 };
},
@ -1217,11 +1221,11 @@ const parsers = {
{ orbs: [attrs ?? 0], type: 'shape', positions: [row1, row2, row3, row4, row5].map(row=>flags(row)) }
);
},
[177](attrs, types, hp, atk, rcv, remains, mul) {
[177](attrs, types, hp, atk, rcv, remains, baseAtk, bonusAtk) {
return [
noSkyfall(),
(hp || atk || rcv) && powerUp(flags(attrs), flags(types), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 })) || null,
mul && powerUp(null, null, p.mul({ atk: mul }), c.remainOrbs(remains)) || null
baseAtk && powerUp(null, null, p.scaleRemainOrbs(remains, [baseAtk ?? 100, 100], [bonusAtk ?? 0, 0])) || null
].filter(Boolean);
},
[178](time, attrs, types, hp, atk, rcv, attrs2, percent) {
@ -2552,6 +2556,26 @@ function renderPowerUp(powerUp) {
//}
break;
}
case SkillPowerUpKind.ScaleRemainOrbs: {
let min = powerUp.min, max = powerUp.max, baseAtk = powerUp.baseAtk, baseRcv = powerUp.baseRcv, bonusAtk = powerUp.bonusAtk, bonusRcv = powerUp.bonusRcv;
let dict = {
max: max,
stats: renderStats(1, baseAtk, baseRcv),
}
if (max !== min)
{
let _dict = {
min: min,
bonus: renderStats(0, bonusAtk, bonusRcv, {mul: false}),
stats_max: renderStats(1, baseAtk + bonusAtk * (max-min), baseRcv + bonusRcv * (max-min)),
}
dict.bonus = frg.ap(tsp.power.scale_remain_orbs_bonus(_dict));
}
frg.ap(tsp.power.scale_remain_orbs(dict));
break;
}
case SkillPowerUpKind.ScaleStateKindCount: {
let awakenings = powerUp.awakenings, attrs = powerUp.attrs, types = powerUp.types, value = powerUp.value;
let dict = {