增加反击
This commit is contained in:
parent
1b1e5989cd
commit
be13667474
|
@ -47,8 +47,7 @@
|
||||||
auto_heal: tp`${'icon'}消除宝珠的回合,回复${'belong_to'}${'value'}的${'stats'}`,
|
auto_heal: tp`${'icon'}消除宝珠的回合,回复${'belong_to'}${'value'}的${'stats'}`,
|
||||||
ctw: tp`${'icon'}${'value'}内时间停止,可以任意移动宝珠`,
|
ctw: tp`${'icon'}${'value'}内时间停止,可以任意移动宝珠`,
|
||||||
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
|
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
|
||||||
resolve: tp`${'icon'}如${'stats'}≧${'value'},受到单一次致命攻击时,${'probability'}将会以1点 HP 生还`,
|
resolve: tp`${'icon'}如${'stats'}≧${'value'},受到单一次致命攻击时,${'prob'}将会以1点 HP 生还`,
|
||||||
probability: tp`有${'value'}%几率`,
|
|
||||||
board_change: tp`全画面的宝珠变为${'attrs'}`,
|
board_change: tp`全画面的宝珠变为${'attrs'}`,
|
||||||
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns'}`,
|
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns'}`,
|
||||||
add_combo: tp`结算时连击数增加${'value'}c${'icon'}`,
|
add_combo: tp`结算时连击数增加${'value'}c${'icon'}`,
|
||||||
|
@ -57,6 +56,7 @@
|
||||||
drop_refresh: tp`全板刷新`,
|
drop_refresh: tp`全板刷新`,
|
||||||
drum: tp`宝珠移动和消除的声音变成太鼓达人的音效`,
|
drum: tp`宝珠移动和消除的声音变成太鼓达人的音效`,
|
||||||
board7x6: tp`【${'icon'}7×6版面】`,
|
board7x6: tp`【${'icon'}7×6版面】`,
|
||||||
|
counter_attack: tp`受到${'target'}攻击时,${'prob'}进行受到伤害${'value'}的${'attr'}属性${'icon'}反击`,
|
||||||
},
|
},
|
||||||
value: {
|
value: {
|
||||||
unknown: tp`[ 未知数值: ${'type'}]`, //type
|
unknown: tp`[ 未知数值: ${'type'}]`, //type
|
||||||
|
@ -68,6 +68,7 @@
|
||||||
mul_of_times: tp`${'stats'}×${'value'}倍`,
|
mul_of_times: tp`${'stats'}×${'value'}倍`,
|
||||||
hp_scale: tp`${'hp'}为100%时${'min'},${'hp'}为1时${'max'}`,
|
hp_scale: tp`${'hp'}为100%时${'min'},${'hp'}为1时${'max'}`,
|
||||||
random_atk: tp`${'atk'}×${'min'}${'max'}倍`,
|
random_atk: tp`${'atk'}×${'min'}${'max'}倍`,
|
||||||
|
prob: tp`有${'value'}几率`,
|
||||||
},
|
},
|
||||||
target: {
|
target: {
|
||||||
self: tp`发动者自身`,
|
self: tp`发动者自身`,
|
||||||
|
|
|
@ -270,7 +270,7 @@ const c = {
|
||||||
remainOrbs: function (count) { return { remainOrbs: { count: count } }; },
|
remainOrbs: function (count) { return { remainOrbs: { count: count } }; },
|
||||||
useSkill: function () { return { useSkill: true }; },
|
useSkill: function () { return { useSkill: true }; },
|
||||||
multiplayer: function () { return { multiplayer: true }; },
|
multiplayer: function () { return { multiplayer: true }; },
|
||||||
probability: function (percent) { return { probability: percent }; },
|
prob: function (percent) { return { prob: percent }; },
|
||||||
}
|
}
|
||||||
|
|
||||||
const p = {
|
const p = {
|
||||||
|
@ -373,8 +373,8 @@ function rateMultiply(value, rate) {
|
||||||
function orbDropIncrease(value, attrs) {
|
function orbDropIncrease(value, attrs) {
|
||||||
return { kind: SkillKinds.OrbDropIncrease, value: value, attrs: attrs };
|
return { kind: SkillKinds.OrbDropIncrease, value: value, attrs: attrs };
|
||||||
}
|
}
|
||||||
function resolve(min, condition) {
|
function resolve(min, prob) {
|
||||||
return { kind: SkillKinds.Resolve, min: min, max: 1, condition: condition };
|
return { kind: SkillKinds.Resolve, min: min, max: 1, prob: prob };
|
||||||
}
|
}
|
||||||
function unbind(normal, awakenings, matches) {
|
function unbind(normal, awakenings, matches) {
|
||||||
return { kind: SkillKinds.Unbind, normal: normal, awakenings: awakenings , matches: matches};
|
return { kind: SkillKinds.Unbind, normal: normal, awakenings: awakenings , matches: matches};
|
||||||
|
@ -429,7 +429,7 @@ const parsers = {
|
||||||
[11](attr, mul) { return powerUp([attr], null, p.mul({ atk: mul })); },
|
[11](attr, mul) { return powerUp([attr], null, p.mul({ atk: mul })); },
|
||||||
[12](mul) { return followAttack(v.xATK(mul)); },
|
[12](mul) { return followAttack(v.xATK(mul)); },
|
||||||
[13](mul) { return autoHeal(v.xRCV(mul)); },
|
[13](mul) { return autoHeal(v.xRCV(mul)); },
|
||||||
[14](min, percent) { return resolve(v.percent(min), c.probability(percent)); },
|
[14](min, prob) { return resolve(v.percent(min), v.percent(prob)); },
|
||||||
[15](time) { return timeExtend(v.constant(time / 100)); },
|
[15](time) { return timeExtend(v.constant(time / 100)); },
|
||||||
[16](percent) { return reduceDamage('all', v.percent(percent)); },
|
[16](percent) { return reduceDamage('all', v.percent(percent)); },
|
||||||
[17](attr, percent) { return reduceDamage([attr], v.percent(percent)); },
|
[17](attr, percent) { return reduceDamage([attr], v.percent(percent)); },
|
||||||
|
@ -972,12 +972,12 @@ function renderSkill(skill, option = {})
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SkillKinds.Resolve: { //根性
|
case SkillKinds.Resolve: { //根性
|
||||||
let prob = skill.condition.probability;
|
let prob = skill.prob;
|
||||||
let dict = {
|
let dict = {
|
||||||
icon: createIcon("resolve"),
|
icon: createIcon("resolve"),
|
||||||
stats: renderStat('hp'),
|
stats: renderStat('hp'),
|
||||||
value: renderValue(skill.min, { percent:true }),
|
value: renderValue(skill.min, { percent:true }),
|
||||||
probability: prob < 100 ? tsp.skill.probability({value: prob}) : "",
|
prob: prob.value < 1 ? tsp.value.prob({value: renderValue(prob, { percent:true })}) : null,
|
||||||
};
|
};
|
||||||
frg.ap(tsp.skill.resolve(dict));
|
frg.ap(tsp.skill.resolve(dict));
|
||||||
break;
|
break;
|
||||||
|
@ -1085,17 +1085,19 @@ function renderSkill(skill, option = {})
|
||||||
frg.ap(tsp.skill.vampire(dict));
|
frg.ap(tsp.skill.vampire(dict));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
case SkillKinds.CounterAttack: {
|
case SkillKinds.CounterAttack: {
|
||||||
const { attr, prob, value } = skill as Skill.CounterAttack;
|
let attr = skill.attr, prob = skill.prob, value = skill.value;
|
||||||
return (
|
dict = {
|
||||||
<span className="CardSkill-skill">
|
icon: createIcon("counter-attack"),
|
||||||
<Asset assetId="status-counter" className="CardSkill-icon" />
|
target: tsp.target.enemy(),
|
||||||
{renderValue(prob)} ⇒ {renderValue(value)} damage
|
prob: prob.value < 1 ? tsp.value.prob({value: renderValue(prob, { percent:true })}) : null,
|
||||||
{typeof attr === 'number' && renderAttrs(attr)}
|
value: renderValue(value),
|
||||||
</span>
|
attr: renderAttrs(attr),
|
||||||
);
|
};
|
||||||
|
frg.ap(tsp.skill.counter_attack(dict));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
case SkillKinds.ChangeOrbs: {
|
case SkillKinds.ChangeOrbs: {
|
||||||
const { changes } = skill as Skill.ChangeOrbs;
|
const { changes } = skill as Skill.ChangeOrbs;
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -3166,6 +3166,7 @@ table .orb-icon
|
||||||
{
|
{
|
||||||
border-color: #7F00FF;
|
border-color: #7F00FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-skill,
|
.icon-skill,
|
||||||
.icon-skill::after,
|
.icon-skill::after,
|
||||||
.icon-skill::before
|
.icon-skill::before
|
||||||
|
@ -3176,7 +3177,8 @@ table .orb-icon
|
||||||
background-image: url(images/icon-skills.fw.png);
|
background-image: url(images/icon-skills.fw.png);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
.icon-skill
|
.icon-skill,
|
||||||
|
.skill-datail-parsed icon.orb
|
||||||
{
|
{
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
transform: scale(0.75);
|
transform: scale(0.75);
|
||||||
|
@ -3370,4 +3372,8 @@ table .orb-icon
|
||||||
.icon-skill[data-icon-type="7x6-board"]
|
.icon-skill[data-icon-type="7x6-board"]
|
||||||
{
|
{
|
||||||
background-position-y:calc(-36px * 21);
|
background-position-y:calc(-36px * 21);
|
||||||
|
}
|
||||||
|
.icon-skill[data-icon-type="counter-attack"]
|
||||||
|
{
|
||||||
|
background-position-y:calc(-36px * 22);
|
||||||
}
|
}
|
Loading…
Reference in New Issue