1、2021年8月27日数据;2、修复随机溜没有第二个参数的问题;3、新增230对自身生效的倍率

This commit is contained in:
枫谷剑仙 2021-08-27 21:15:41 +08:00
parent c526ae13cb
commit c4919fe5a6
11 changed files with 35 additions and 15 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 KiB

After

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 659 KiB

View File

@ -54,7 +54,8 @@
gravity: tp`${'icon'}Reduce ${'target'} ${'value'}`,
resolve: tp`${'icon'}Survive a single hit when ${'stats'}${'min'}`,
board_change: tp`Change all orbs to ${'orbs'}`,
skill_boost: tp`Team's skills charge ${'icon'}${'turns'}`,
skill_boost: tp`Team's skills charge ${'icon'}${'turns_min'}${'turns_max'}`,
skill_boost_range: tp`~${'turns'}`,
add_combo: tp`Adds ${'value'} combos${'icon'}`,
fixed_time: tp`[${'icon'}Fixed orb move time: ${'value'}]`,
min_match_length: tp`unable to erase ${'unmatchable'} Orbs or less`, //matchable, unmatchable

View File

@ -1459,6 +1459,10 @@ function parseSkillDescription(skill) {
case 229:
str = `队伍中每存在1个${getAttrTypeString(flags(sk[0]), flags(sk[1]))}时,${getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]}, false)}`;
break;
case 230:{
str = `${sk[0]}回合内,${sk[1] == 1 ? "发动者自身" : "未知对象"}的攻击力变为${sk[2]/100}`;
break;
}
case 1000:{ //8人限定的技能
//str = skill.description + '\n';
str = '';

View File

@ -1 +1 @@
[{"code":"ja","ckey":{"card":"e2bd0d4a6e1f1b77095ef0b8e62546a0","skill":"bc2d6574f52d7d407b0f7c30608bfdae"},"updateTime":1629984739736},{"code":"en","ckey":{"card":"c3f9ef948a26119e5fe87e3a2314e363","skill":"4b38109031da0ea61213915c55a2e155"},"updateTime":1629984586896},{"code":"ko","ckey":{"card":"9ab8ebecf6ef5c64948477e9ecf5b847","skill":"8ded5c53a4168192e1c138ecffc24e51"},"updateTime":1629984586896}]
[{"code":"ja","ckey":{"card":"61c0fd68655de82b239e42e850bf35c3","skill":"bdf0f020edd26c012fff08600bb181dc"},"updateTime":1630068292454},{"code":"en","ckey":{"card":"c3f9ef948a26119e5fe87e3a2314e363","skill":"4b38109031da0ea61213915c55a2e155"},"updateTime":1629984586896},{"code":"ko","ckey":{"card":"9ab8ebecf6ef5c64948477e9ecf5b847","skill":"8ded5c53a4168192e1c138ecffc24e51"},"updateTime":1629984586896}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -68,7 +68,8 @@ let localTranslating = {
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
resolve: tp`${'icon'}${'stats'}${'min'}受到单一次致命攻击时将会以1点 HP 生还`,
board_change: tp`全画面的宝珠变为${'orbs'}`,
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns'}`,
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns_min'}${'turns_max'}`,
skill_boost_range: tp`~${'turns'}`,
add_combo: tp`结算时连击数增加${'value'}${'icon'}`,
fixed_time: tp`${'icon'}操作时间固定${'value'}`,
min_match_length: tp`【限定≥${'matchable'}珠才能消除】`,
@ -97,7 +98,7 @@ let localTranslating = {
rate_multiply_coin: tp`${'icon'}金币掉落率`,
rate_multiply_exp: tp`${'icon'}等级经验倍率`,
reduce_damage: tp`${'condition'}受到的${'attrs'}伤害${'icon'}减少${'value'}`,
power_up: tp`${'condition'}${'targets'}${'value'}${'reduceDamage'}${'addCombo'}${'followAttack'}`,
power_up: tp`${'condition'}${'targets'}${'target'}${'value'}${'reduceDamage'}${'addCombo'}${'followAttack'}`,
power_up_targets: tp`${'attrs_types'}`,
henshin: tp`变身为${'card'}`,
void_poison: tp`消除${'poison'}时不会受到毒伤害`,

View File

@ -839,6 +839,9 @@ function powerUp(attrs, types, value, condition = null, reduceDamageValue = null
if (hp === 1 && atk === 1 && rcv === 1 && !reduceDamage)
return null;
}
if (attrs?.target != undefined) {
return { kind: SkillKinds.PowerUp, target: attrs.target, 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};
}
function counterAttack(attr, prob, value) {
@ -875,7 +878,7 @@ function gravity(value) {
function voidEnemyBuff(buffs) {
return { kind: SkillKinds.VoidEnemyBuff, buffs: buffs };
}
function skillBoost(value) { return { kind: SkillKinds.SkillBoost, value: value }; }
function skillBoost(value1, value2) { return { kind: SkillKinds.SkillBoost, min: value1, max: value2 ?? value1 }; }
function minMatch(value) { return { kind: SkillKinds.MinMatchLength, value: value }; }
function fixedTime(value) { return { kind: SkillKinds.FixedTime, value: v.constant(value) }; }
function addCombo(value) { return { kind: SkillKinds.AddCombo, value: value }; }
@ -1130,7 +1133,7 @@ const parsers = {
[144](teamAttrs, mul, single, dmgAttr) { return damageEnemy(single ? 'single' : 'all', dmgAttr, v.xTeamATK(flags(teamAttrs), mul)); },
[145](mul) { return heal(v.xTeamRCV(mul)); },
[146](turns) { return skillBoost(v.constant(turns)); },
[146](turns1, turns2) { return skillBoost(v.constant(turns1), turns2 ? v.constant(turns2) : undefined); },
[148](percent) { return rateMultiply(v.percent(percent), 'exp'); },
[149](mul) { return powerUp(null, null, p.mul({ rcv: mul }), c.exact('match-length', 4, [Attributes.Heart])); },
@ -1376,6 +1379,7 @@ const parsers = {
[229](attrs, types, hp, atk, rcv) {
return powerUp(null, null, p.scaleStateKindCount(null, flags(attrs), flags(types), p.mul({hp: hp, atk: atk, rcv: rcv})));
},
[230](turns, target, mul) { return activeTurns(turns, powerUp({target: target}, null, p.mul({ atk: mul }))); },
[1000](type, pos, ...ids) {
let posType = (type=>{
switch (type) {
@ -1778,11 +1782,16 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.SkillBoost: { //溜
const value = skill.value;
const min = skill.min, max = skill.max;
let dict = {
icon: createIcon(skill.kind, SkillValue.isLess(skill.value) ? "boost-decr" : "boost-incr"),
turns: renderValue(value, { unit:tsp.unit.turns, plusSign:true }),
icon: createIcon(skill.kind, SkillValue.isLess(min) ? "boost-decr" : "boost-incr"),
turns_min: renderValue(min, { unit:tsp.unit.turns, plusSign:true }),
};
if (max.value !== min.value) {
dict.turns_max = tsp.skill.skill_boost_range(
{turns: renderValue(max, { unit:tsp.unit.turns, plusSign:true })}
);
}
frg.ap(tsp.skill.skill_boost(dict));
break;
}
@ -2030,7 +2039,7 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.PowerUp: {
let attrs = skill.attrs, types = skill.types, condition = skill.condition, value = skill.value, reduceDamage = skill.reduceDamage, additional = skill.additional;
let attrs = skill.attrs, types = skill.types, target = skill.target, condition = skill.condition, value = skill.value, reduceDamage = skill.reduceDamage, additional = skill.additional;
dict = {
icon: createIcon(skill.kind),
};
@ -2047,12 +2056,17 @@ function renderSkill(skill, option = {})
targetDict.types = renderTypes(types || [], {affix: true});
attrs_types.push(targetDict.types);
}
if (target == 1)
{
targetDict.target = tsp.target.self();
attrs_types.push(targetDict.target);
}
if (attrs_types.length)
{
targetDict.attrs_types = attrs_types.nodeJoin(tsp.word.slight_pause());
}
if (targetDict.attrs || targetDict.types) dict.targets = tsp.skill.power_up_targets(targetDict);
if (attrs_types.length) dict.targets = tsp.skill.power_up_targets(targetDict);
let subDocument = [];
if (value){