1、2021年8月27日数据;2、修复随机溜没有第二个参数的问题;3、新增230对自身生效的倍率
This commit is contained in:
parent
c526ae13cb
commit
c4919fe5a6
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 |
|
@ -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
|
||||
|
|
|
@ -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 = '';
|
||||
|
|
|
@ -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
|
@ -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'}时不会受到毒伤害`,
|
||||
|
|
|
@ -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){
|
||||
|
|
Loading…
Reference in New Issue