diff --git a/script-skill-parser.js b/script-skill-parser.js index 30a08ea0..d4cffbe6 100644 --- a/script-skill-parser.js +++ b/script-skill-parser.js @@ -1050,16 +1050,16 @@ const parsers = { ].filter(Boolean); }, [118](...ids) { return randomSkills(ids.map(id => this.parser(id))); }, - [119](attrs, min, base, bonus, max) { return powerUp(null, null, p.scaleMatchLength(flags(attrs), min, max, [base, 100], [bonus, 0])); }, + [119](attrs, min, base, bonus, max) { return powerUp(null, null, p.scaleMatchLength(flags(attrs), min, max, [base || 100, 100], [bonus, 0])); }, - [121](attrs, types, hp, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ hp, atk, rcv })); }, - [122](percent, attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk, rcv }), c.hp(0, percent)); }, - [123](percent, attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk, rcv }), c.hp(percent, 100)); }, + [121](attrs, types, hp, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 })); }, + [122](percent, attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.hp(0, percent)); }, + [123](percent, attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.hp(percent, 100)); }, [124](attrs1, attrs2, attrs3, attrs4, attrs5, min, mul, bonus) { const attrs = [attrs1, attrs2, attrs3, attrs4, attrs5].filter(Boolean); return powerUp(null, null, p.scaleMatchAttrs(attrs.map(flags), min, bonus ? attrs.length : min, [mul, 100], [bonus, 0])); }, - [125](mon1, mon2, mon3, mon4, mon5, hp, atk, rcv) { return powerUp(null, null, p.mul({ hp, atk, rcv }), c.compo('card', [mon1, mon2, mon3, mon4, mon5].filter(Boolean))); }, + [125](mon1, mon2, mon3, mon4, mon5, hp, atk, rcv) { return powerUp(null, null, p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.compo('card', [mon1, mon2, mon3, mon4, mon5].filter(Boolean))); }, [126](attrs, turns, turns2, percent) { return activeTurns(turns === turns2 ? turns : [turns, turns2], orbDropIncrease(v.percent(percent), flags(attrs))); }, [127](cols1, attrs1, cols2, attrs2) { return fixedOrbs( @@ -1081,35 +1081,35 @@ const parsers = { }, [130](percent, attrs, types, atk, rcv, rAttrs, rPercent) { return [ - (atk || rcv) && powerUp(flags(attrs), flags(types), p.mul({ atk, rcv }), c.hp(0, percent)) || null, + (atk || rcv) && powerUp(flags(attrs), flags(types), p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.hp(0, percent)) || null, rPercent && reduceDamage(flags(rAttrs), v.percent(rPercent), c.hp(0, percent)) || null ]; }, [131](percent, attrs, types, atk, rcv, rAttrs, rPercent) { return [ - powerUp(flags(attrs), flags(types), p.mul({ atk, rcv }), c.hp(percent, 100)), + powerUp(flags(attrs), flags(types), p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.hp(percent, 100)), rPercent && reduceDamage(flags(rAttrs), v.percent(rPercent), c.hp(percent, 100)) || null ]; }, [132](turns, time, percent) { return activeTurns(turns, timeExtend(time ? v.constant(time / 10) : v.percent(percent))); }, - [133](attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk, rcv }), c.useSkill()); }, + [133](attrs, types, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ atk: atk || 100, rcv: rcv || 100 }), c.useSkill()); }, [136](attrs1, hp1, atk1, rcv1, attrs2, hp2, atk2, rcv2) { return [ - powerUp(flags(attrs1), null, p.mul({ hp: hp1, atk: atk1, rcv: rcv1 })), - powerUp(flags(attrs2), null, p.mul({ hp: hp2, atk: atk2, rcv: rcv2 })), + powerUp(flags(attrs1), null, p.mul({ hp: hp1 || 100, atk: atk1 || 100, rcv: rcv1 || 100 })), + powerUp(flags(attrs2), null, p.mul({ hp: hp2 || 100, atk: atk2 || 100, rcv: rcv2 || 100 })), ]; }, [137](types1, hp1, atk1, rcv1, types2, hp2, atk2, rcv2) { return [ - powerUp(null, flags(types1), p.mul({ hp: hp1, atk: atk1, rcv: rcv1 })), - powerUp(null, flags(types2), p.mul({ hp: hp2, atk: atk2, rcv: rcv2 })), + powerUp(null, flags(types1), p.mul({ hp: hp1 || 100, atk: atk1 || 100, rcv: rcv1 || 100 })), + powerUp(null, flags(types2), p.mul({ hp: hp2 || 100, atk: atk2 || 100, rcv: rcv2 || 100 })), ]; }, [138](...ids) { return ids.flatMap(id => this.parser(id)); }, [139](attrs, types, percent1, less1, mul1, percent2, less2, mul2) { return [ - powerUp(flags(attrs), flags(types), p.mul({ atk: mul1 }), less1 ? c.hp(0, percent1) : c.hp(percent1, 100)), - powerUp(flags(attrs), flags(types), p.mul({ atk: mul2 }), less1 ? + powerUp(flags(attrs), flags(types), p.mul({ atk: mul1 || 100 }), less1 ? c.hp(0, percent1) : c.hp(percent1, 100)), + powerUp(flags(attrs), flags(types), p.mul({ atk: mul2 || 100 }), less1 ? (less2 ? c.hp(percent1, percent2) : c.hp(percent2, 100)) : (less2 ? c.hp(0, percent2) : c.hp(percent2, percent1)) ), @@ -1136,7 +1136,7 @@ const parsers = { [152](attrs, count) { return setOrbState(flags(attrs), 'locked', {count: v.constant(count)}); }, [153](attr, _) { return changeAttr('opponent', attr); }, [154](from, to) { return changeOrbs(fromTo(flags(from), flags(to))); }, - [155](attrs, types, hp, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ hp, atk, rcv }), c.multiplayer()); }, + [155](attrs, types, hp, atk, rcv) { return powerUp(flags(attrs), flags(types), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.multiplayer()); }, [156](turns, awoken1, awoken2, awoken3, type, mul) { if (type == 1) { @@ -1230,7 +1230,7 @@ const parsers = { }, [180](turns, percent) { return activeTurns(turns, orbDropIncrease(v.percent(percent), [], 'enhanced')); }, - [182](attrs, len, mul, percent) { return powerUp(null, null, p.scaleMatchLength(flags(attrs), len, len, [mul, 100], [0, 0]), null, v.percent(percent)); }, + [182](attrs, len, mul, percent) { return powerUp(null, null, p.scaleMatchLength(flags(attrs), len, len, [mul || 100, 100], [0, 0]), null, v.percent(percent)); }, [183](attrs, types, percent1, atk1, reduce, percent2, atk2, rcv2) { return [ (percent1 > 0) && powerUp(flags(attrs), flags(types), p.mul({ atk: atk1 || 100 }), c.hp(percent1, 100), v.percent(reduce)) || null, @@ -1241,13 +1241,13 @@ const parsers = { [185](time, attrs, types, hp, atk, rcv) { return [ timeExtend(v.constant(time / 100)), - powerUp(flags(attrs), flags(types), p.mul({ hp, atk, rcv })), + powerUp(flags(attrs), flags(types), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 })), ]; }, [186](attrs, types, hp, atk, rcv) { return [ board7x6(), - (hp || atk ||rcv) && powerUp(flags(attrs), flags(types), p.mul({ hp, atk, rcv })) || null, + (hp || atk ||rcv) && powerUp(flags(attrs), flags(types), p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 })) || null, ].filter(Boolean); }, @@ -1272,7 +1272,7 @@ const parsers = { return powerUp(null, null, p.mul([atk || 100, rcv || 100]), c.LShape(flags(attrs)), v.percent(percent)); }, [194](attrs, min, mul, combo) { - return powerUp(null, null, p.scaleAttrs(flags(attrs), min, min, [mul, 100], [0, 0]), null, null, [addCombo(combo)]); + return powerUp(null, null, p.scaleAttrs(flags(attrs), min, min, [mul || 100, 100], [0, 0]), null, null, [addCombo(combo)]); }, [195](percent) { return selfHarm(percent ? v.xCHP(percent) : v.constantTo(1)); @@ -1299,7 +1299,7 @@ const parsers = { [202](id) { return henshin(id); }, - [203](evotype, hp, atk, rcv) { return powerUp(null, null, p.mul({ hp, atk, rcv }), c.compo('evolution', [evotype])); }, + [203](evotype, hp, atk, rcv) { return powerUp(null, null, p.mul({ hp: hp || 100, atk: atk || 100, rcv: rcv || 100 }), c.compo('evolution', [evotype])); }, [205](attrs, turns) { return activeTurns(turns, orbDropIncrease(null, flags(attrs == -1 ? 1023: attrs), 'locked')); }, [206](attrs1, attrs2, attrs3, attrs4, attrs5, min, combo) {