改了保留2位小数的函数
This commit is contained in:
parent
951ae61848
commit
5cb9cd8913
|
@ -23,12 +23,15 @@
|
|||
force_reload_data: `Force refresh data`,
|
||||
skill_parse: {
|
||||
unknown_skill_type: ()=>`Unknown skill type.`,
|
||||
active_turns: (turns, element)=> [element,`, in ${turns} turns.`],
|
||||
random_skills: (element)=>[`Activates these random skills:`, element],
|
||||
active_turns: (turns, activeElement)=> [activeElement,`, for ${turns} turns.`],
|
||||
random_skills: (skillList)=>[`Activates these random skills:`, skillList],
|
||||
delay: ()=> `Delays enemies' next move`,
|
||||
mass_attack: ()=> `plus Mass Attack`,
|
||||
leader_change: ()=> `Switches places with Leader Monster; use again to switch back`,
|
||||
no_skyfall: ()=> `No Skyfall Combos`,
|
||||
no_skyfall: ()=> `No Skyfall Combos`,
|
||||
value: {
|
||||
unknown_value: (type)=>`[ unknown value: ${type}]`,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -2,12 +2,15 @@
|
|||
const localTranslating = {
|
||||
skill_parse: {
|
||||
unknown_skill_type: ()=>`未知的技能类型`,
|
||||
active_turns: (turns, element)=>[`${turns}回合内,`, element],
|
||||
random_skills: (element)=>[`随机执行以下技能:`, element],
|
||||
active_turns: (turns, activeElement)=>[`${turns}回合内,`, activeElement],
|
||||
random_skills: (skillList)=>[`随机执行以下技能:`, skillList],
|
||||
delay: ()=> `将敌人的攻击延迟`,
|
||||
mass_attack: ()=> `所有攻击变为全体攻击`,
|
||||
leader_change: ()=> `将自身换为队长,再次使用则换回来`,
|
||||
no_skyfall: ()=> `天降的宝珠不会消除`,
|
||||
value: {
|
||||
unknown_value: (type)=>`[ 未知数值: ${type}]`,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -655,7 +655,6 @@ function renderSkill(skill)
|
|||
}
|
||||
else
|
||||
{
|
||||
console.log("看看这是啥",arg);
|
||||
return fragment.appendChild(arg);
|
||||
}
|
||||
}
|
||||
|
@ -707,6 +706,18 @@ function renderSkill(skill)
|
|||
appendToFragment(tsp.no_skyfall());
|
||||
break;
|
||||
}
|
||||
case SkillKinds.Heal: {
|
||||
appendToFragment(renderValue(skill.value));
|
||||
break;
|
||||
}
|
||||
case SkillKinds.DefenseBreak: {
|
||||
appendToFragment(renderValue(skill.value));
|
||||
break;
|
||||
}
|
||||
case SkillKinds.Poison: {
|
||||
appendToFragment(renderValue(skill.value));
|
||||
break;
|
||||
}
|
||||
/*
|
||||
case SkillKinds.Heal: {
|
||||
const { value } = skill as Skill.WithValue;
|
||||
|
@ -1095,4 +1106,89 @@ function renderSkill(skill)
|
|||
}
|
||||
}
|
||||
return fragment;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
function renderValue(_value, unit) {
|
||||
function appendToFragment(arg){
|
||||
if (Array.isArray(arg))
|
||||
{
|
||||
arg.forEach(element=>appendToFragment(element));
|
||||
}
|
||||
else if (typeof arg == "string")
|
||||
{
|
||||
return fragment.appendChild(document.createTextNode(arg));
|
||||
}
|
||||
else
|
||||
{
|
||||
return fragment.appendChild(arg);
|
||||
}
|
||||
}
|
||||
const fragment = document.createDocumentFragment();
|
||||
if (typeof localTranslating == "undefined") return fragment;
|
||||
const tspv = localTranslating.skill_parse.value;
|
||||
switch (_value.kind) {
|
||||
/*
|
||||
case SkillValueKind.xRCV: {
|
||||
_value.value
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value)} × {renderStat('rcv')}</span>;
|
||||
}
|
||||
case SkillValueKind.Percent: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value * 100)}%</span>;
|
||||
}
|
||||
case SkillValueKind.Constant: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value)}{unit ? ` ${unit}` : ''}</span>;
|
||||
}
|
||||
case SkillValueKind.xMaxHP: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value * 100)}% of {renderStat('maxhp')}</span>;
|
||||
}
|
||||
case SkillValueKind.xHP: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value * 100)}% of {renderStat('hp')}</span>;
|
||||
}
|
||||
case SkillValueKind.xATK: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value)} × {renderStat('atk')}</span>;
|
||||
}
|
||||
case SkillValueKind.xRCV: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value)} × {renderStat('rcv')}</span>;
|
||||
}
|
||||
case SkillValueKind.xTeamRCV: {
|
||||
const { value } = _value as SkillValue.Simple;
|
||||
return <span>{formatNumber(value)} × {renderStat('teamrcv')}</span>;
|
||||
}
|
||||
case SkillValueKind.xTeamATK: {
|
||||
const { value, attrs } = _value as SkillValue.WithAttributes;
|
||||
return <span>{formatNumber(value)} × {renderAttrs(attrs)} {renderStat('teamatk')}</span>;
|
||||
}
|
||||
case SkillValueKind.HPScale: {
|
||||
const { min, max } = _value as SkillValue.Scale;
|
||||
return <span>({formatNumber(min)} ⇔ {formatNumber(max)} ∝ {renderStat('hp')}) × {renderStat('atk')}</span>;
|
||||
}
|
||||
case SkillValueKind.RandomATK: {
|
||||
const { min, max } = _value as SkillValue.Scale;
|
||||
if (min === max) {
|
||||
return <span>{formatNumber(min)} × {renderStat('atk')}</span>;
|
||||
} else {
|
||||
return <span>(random × {formatNumber(min)} ⇔ {formatNumber(max)}) × {renderStat('atk')}</span>;
|
||||
}
|
||||
}
|
||||
case SkillValueKind.xAwakenings: {
|
||||
const { value, awakenings } = _value as SkillValue.WithAwakenings;
|
||||
return <span>{formatNumber(value * 100)}% × each of {awakenings.map(id =>
|
||||
<Asset assetId={`awakening-${id}`} className="CardSkill-icon" key={id} />
|
||||
)}</span>;
|
||||
}
|
||||
*/
|
||||
default: {
|
||||
console.log(_value.kind, _value);
|
||||
appendToFragment(tspv.unknown_value(_value.kind));
|
||||
}
|
||||
}
|
||||
return fragment;
|
||||
}
|
|
@ -58,6 +58,11 @@ Number.prototype.prefixInteger = function(length, useGrouping = false)
|
|||
minimumIntegerDigits: length
|
||||
});
|
||||
}
|
||||
//最多保留N位小数,不留0
|
||||
Number.prototype.keepCounts = function(n = 2)
|
||||
{
|
||||
return Number(this.toFixed(n)).toString();
|
||||
}
|
||||
//大数字缩短长度,默认返回本地定义字符串
|
||||
Number.prototype.bigNumberToString = function()
|
||||
{
|
||||
|
|
|
@ -3008,7 +3008,7 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
|
|||
|
||||
setTextContentAndAttribute(tHpDom_general, tHP);
|
||||
setTextContentAndAttribute(tHpDom_noAwoken, tHPNoAwoken);
|
||||
setTextContentAndAttribute(tHpDom_reduce, (totalReduce * 100).toFixed(2));
|
||||
setTextContentAndAttribute(tHpDom_reduce, (totalReduce * 100).keepCounts());
|
||||
tHpDom_reduce.setAttribute("data-max-equal-general", tReduceHP);
|
||||
tHpDom_reduce.setAttribute("data-max-equal-awoken-bind", tReduceHPNoAwoken);
|
||||
}
|
||||
|
@ -3026,8 +3026,8 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
|
|||
} else
|
||||
{
|
||||
tMoveDom.classList.remove("fixed-move-time");
|
||||
setTextContentAndAttribute(tMoveDom_general, Math.round((moveTime.duration.default + moveTime.duration.leader + moveTime.duration.badge + moveTime.duration.awoken) * 100) / 100);
|
||||
setTextContentAndAttribute(tMoveDom_noAwoken, Math.round((moveTime.duration.default + moveTime.duration.leader + moveTime.duration.badge) * 100) / 100);
|
||||
setTextContentAndAttribute(tMoveDom_general, (moveTime.duration.default + moveTime.duration.leader + moveTime.duration.badge + moveTime.duration.awoken).keepCounts());
|
||||
setTextContentAndAttribute(tMoveDom_noAwoken, (moveTime.duration.default + moveTime.duration.leader + moveTime.duration.badge).keepCounts());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3074,7 +3074,7 @@ function refreshFormationTotalHP(totalDom, teams) {
|
|||
|
||||
setTextContentAndAttribute(tHpDom_general, tHP);
|
||||
setTextContentAndAttribute(tHpDom_noAwoken, tHPNoAwoken);
|
||||
setTextContentAndAttribute(tHpDom_reduce, (totalReduce * 100).toFixed(2));
|
||||
setTextContentAndAttribute(tHpDom_reduce, (totalReduce * 100).keepCounts());
|
||||
tHpDom_reduce.setAttribute("data-max-equal-general", tReduceHP);
|
||||
tHpDom_reduce.setAttribute("data-max-equal-awoken-bind", tReduceHPNoAwoken);
|
||||
}
|
||||
|
|
|
@ -601,7 +601,7 @@ ul{
|
|||
.tIf-total-hp .reduce::after{
|
||||
content: "%";
|
||||
}
|
||||
.tIf-total-hp .reduce:not([data-value="0.00"])::after{
|
||||
.tIf-total-hp .reduce:not([data-value="0"])::after{
|
||||
content: "%⇔" attr(data-max-equal-general) "/" attr(data-max-equal-awoken-bind);
|
||||
}
|
||||
|
||||
|
@ -2753,7 +2753,7 @@ table .orb-icon
|
|||
display: inline-block;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background-image: url(images/icon-skills.png);
|
||||
background-image: url(images/icon-skills.fw.png);
|
||||
background-repeat: no-repeat;
|
||||
vertical-align: bottom;
|
||||
transform: scale(0.75);
|
||||
|
|
Loading…
Reference in New Issue