实现显示技能原文和技能合并

This commit is contained in:
枫谷剑仙 2021-08-14 03:46:58 +08:00
parent 850f3650e0
commit 42c1a09551
19 changed files with 484 additions and 402 deletions

View File

@ -149,6 +149,12 @@
{
content: "Leader Skill";
}
label[for="show-skill-original"]::after{
content: "Skill Original";
}
label[for="merge-skill"]::after{
content: "Merge Skill";
}
.edit-box .button-box .button-null::after{
content: "Leave a blank";

View File

@ -1,4 +1,4 @@
localTranslating = {
const _localTranslating = {
webpage_title: `P&D ${teamsCount}P Formation Maker`,
addition_display: "Additional display",
title_blank: "Input Formation Title",
@ -22,7 +22,7 @@
sort_abilityIndex_awoken: "Maximum Weighted Ability Index (+Awakening)",
},
force_reload_data: `Force refresh data`,
skill_parse: {
/*skill_parse: {
skill: {
unknown: ()=>`Unknown skill type.`,
active_turns: (turns, activeElement)=> [activeElement,`, for ${turns} turns.`],
@ -62,7 +62,7 @@
unit: {
seconds : `sec`,
},
},
},*/
}
deepMerge(localTranslating, _localTranslating);
localisation(localTranslating);

View File

@ -147,6 +147,12 @@
{
content: "リーダースキル";
}
label[for="show-skill-original"]::after{
content: "スキルの原文";
}
label[for="merge-skill"]::after{
content: "スキルのマージ";
}
.edit-box .button-box .button-null::after{
content: "空白のままに";

View File

@ -1,4 +1,4 @@
localTranslating = {
const _localTranslating = {
webpage_title: `パズル&ドラゴンズ${teamsCount}人のチーム図作成ツール`,
addition_display: "追加の表示",
title_blank: "入力タイトル",
@ -24,6 +24,8 @@
},
force_reload_data: "データの強制更新",
}
deepMerge(localTranslating, _localTranslating);
localisation(localTranslating);
//大数字缩短长度
Number.prototype.bigNumberToString = function()

View File

@ -144,6 +144,12 @@
{
content: "리더스킬";
}
label[for="show-skill-original"]::after{
content: "기술 원본";
}
label[for="merge-skill"]::after{
content: "기술 병합";
}
.edit-box .button-box .button-null::after{
content: "비워 둡니다";

View File

@ -1,4 +1,4 @@
localTranslating = {
const _localTranslating = {
webpage_title: `퍼즐앤드래곤 ${teamsCount} 명의 팀 다이어그램 작성 도구`,
addition_display: "추가 표시입니다",
title_blank: "입력 제목",
@ -24,5 +24,5 @@
},
force_reload_data: "데이터 강제 새로 고침",
}
deepMerge(localTranslating, _localTranslating);
localisation(localTranslating);

View File

@ -1,233 +1,5 @@
localTranslating = {
webpage_title: `智龙迷城${teamsCount}人队伍图制作工具`,
addition_display: "附加显示",
title_blank: "输入队伍标题",
detail_blank: "输入说明",
sort_name:{
sort_none: "无",
sort_id: "怪物ID",
sort_attrs: "属性",
sort_evoRootId: "进化树",
sort_evoRoot_Attrs : "进化根怪物的属性",
sort_rarity: "稀有度",
sort_cost: "消耗",
sort_mp: "MP",
sort_skillLv1: "技能最大冷却时间",
sort_skillLvMax: "技能最小冷却时间",
sort_hpMax110: "最大 HP",
sort_atkMax110: "最大攻击",
sort_rcvMax110: "最大回复",
sort_hpMax110_awoken: "最大 HP+觉醒)",
sort_atkMax110_awoken: "最大攻击(+觉醒)",
sort_rcvMax110_awoken: "最大回复(+觉醒)",
sort_abilityIndex_awoken: "最大加权能力指数(+觉醒)",
},
force_reload_data: "强制刷新数据",
skill_parse: {
skill: {
unknown: tp`未知的技能类型:${'type'}`, //type
active_turns: tp`${'actionSkill'},效果 ${'turns'} 回合`, //turns, actionSkill
random_skills: tp`随机发动以下技能:${'skills'}`, //skills
damage_enemy: tp`${'target'}造成${'damage'}${'attr'}伤害`, //target, damage, attr
vampire: tp`${'target'}造成${'damage'}${'attr'}伤害,并${'icon'}回复伤害值${'heal'}的HP`, //target, damage, attr
delay: tp`${'icon'}延迟敌人的攻击`, //icon
mass_attack: tp`所有攻击变为${'icon'}全体攻击`,
leader_change: tp`${'icon'}${'target'}换为队长,再次使用则换回来`,
no_skyfall: tp`${'icon'}天降的宝珠不会消除`,
self_harm: tp`${'icon'}${'stats'}减少${'value'}`,
heal: tp`${'icon'}回复 ${'value'}${'stats'}`,
unbind_normal: tp`${'icon'}封锁状态减少${'turns'}`,
unbind_awakenings: tp`${'icon'}觉醒无效状态减少${'turns'}回合`,
unbind_matches: tp`${'icon'}无法消除宝珠状态减少${'turns'}回合`,
bind_skill: tp`${'icon'}自身无法使用技能`,
defense_break: tp`${'icon'}敌方的防御力减少${'value'}回合`,
poison: tp`${'icon'}使${'target'}全体中毒,每回合损失${'belong_to'} ${'value'}${'stats'}`,
time_extend: tp`${'icon'}宝珠移动时间 ${'value'}`,
follow_attack: tp`${'icon'}消除宝珠的回合,以${'belong_to'}${'value'}的伤害追打${'target'}(计算防御力)`,
follow_attack_fixed: tp`追加${'damage'}${'attr'}伤害`,
auto_heal_buff: tp`行动结束后${'icon'}回复${'value'}${'stats'}`,
auto_heal: tp`${'icon'}消除宝珠的回合,回复${'belong_to'}${'value'}${'stats'}`,
ctw: tp`${'icon'}${'value'}内时间停止,可以任意移动宝珠`,
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
resolve: tp`${'icon'}${'stats'}${'value'},受到单一次致命攻击时,${'prob'}将会以1点 HP 生还`,
board_change: tp`全画面的宝珠变为${'orbs'}`,
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns'}`,
add_combo: tp`结算时连击数增加${'value'}${'icon'}`,
fixed_time: tp`${'icon'}操作时间固定${'value'}`,
min_match_length: tp`【限定≥${'value'}珠才能消除】`,
drop_refresh: tp`全板刷新`,
drum: tp`宝珠移动和消除的声音变成太鼓达人的音效`,
auto_path: tp`显示3连击的转珠路径只适用于普通地下城`,
board7x6: tp`${'icon'}7×6版面】`,
counter_attack: tp`受到${'target'}攻击时,${'prob'}进行受到伤害${'value'}${'attr'}${'icon'}反击`,
change_orbs: tp`${'from'}${'to'}`,
generate_orbs: tp`${'exclude'}生成${'orbs'}${'value'}`,
fixed_orbs: tp`${'position'}产生${'orbs'}`,
orb_drop_increase: tp`${'orbs'}的掉落率提高到${'value'}`,
orb_drop_increase_flag: tp`${'value'}掉落${'flag'}${'orbs'}`,
attr_absorb: tp`${'icon'}属性吸收`,
combo_absorb: tp`${'icon'}连击吸收`,
damage_absorb: tp`${'icon'}伤害吸收`,
damage_void: tp`${'icon'}伤害无效`,
void_enemy_buff: tp`敌人的 ${'buff'} 无效化`,
change_attribute: tp`${'target'}变为${'attrs'}`,
set_orb_state_enhanced: tp`${'icon'}强化${'orbs'}(每颗宝珠效力增加${'value'}`,
set_orb_state_locked: tp`${'orbs'}${'icon'}锁定${'value'}`,
set_orb_state_unlocked: tp`${'icon'}解除所有宝珠的锁定状态`,
set_orb_state_bound: tp`无法消除${'orbs'}`,
rate_multiply: tp`作为队长进入地下城时,${'rate'}变为${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
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'}`,
henshin: tp`变身为${'card'}`,
void_poison: tp`消除${'poison'}时不会受到毒伤害`,
skill_proviso: tp`${'condition'}才能发动后续效果`,
},
power: {
unknown: tp`[ 未知能力提升: ${'type'} ]`,
scale_attributes: tp`${'orbs'}${'min'}种属性同时攻击时${'stats'}${'bonus'}`,
scale_attributes_bonus: tp`每多1种${'bonus'},最大${'max'}种时${'stats_max'}`,
scale_combos: tp`${'min'}连击以上时${'stats'}${'bonus'}`,
scale_combos_bonus: tp`每多1连击${'bonus'},最大${'max'}连击时${'stats_max'}`,
scale_match_attrs: tp`${'matches'}${'min'}串匹配时${'stats'}${'bonus'}`,
scale_match_attrs_bonus: tp`每多1串${'bonus'},最大${'max'}串时${'stats_max'}`,
scale_match_length: tp`${'in_once'}相连消除${'min'}${'orbs'}${'stats'}${'bonus'}`,
scale_match_length_bonus: tp`每多1个${'bonus'},最大${'max'}个时${'stats_max'}`,
scale_cross: tp`每以十字形式消除5个${'orbs'}${'stats'}`,
scale_cross_single: tp`以十字形式消除5个${'orbs'}${'stats'}`,
scale_state_kind_count: tp`以队伍中${'awakenings'}${'attrs'}${'types'}的数量提升,每个${'stats'}`,
},
cond: {
unknown: tp`[ 未知条件 ]`,
hp_equal: tp`${'hp'} == ${'min'}`,
hp_less_or_equal: tp`${'hp'}${'max'}`,
hp_greater_or_equal: tp`${'hp'}${'min'}`,
hp_belong_to_range: tp`${'hp'} ∈ [${'min'},${'max'}] 时`,
use_skill: tp`使用技能时`,
multi_player: tp`协力时`,
remain_orbs: tp`剩余宝珠 ≤ ${'value'}`,
exact_combo: tp`刚好${'value'}连击时`,
exact_match_length: tp`相连消除刚好${'value'}${'orbs'}`,
exact_match_enhanced: tp`并且其中包含至少一个强化宝珠`,
compo_type_card: tp`队伍中同时存在 ${'ids'}`,
compo_type_series: tp`队员组成全为 ${'ids'} 合作时`,
compo_type_evolution: tp`队员组成全为 ${'ids'} 进化时`,
L_shape: tp`以L字形式消除5个${'orbs'}`,
heal: tp`${'orbs'}回复${'heal'}`,
},
position: {
top: tp`上方第${'pos'}横行`,
bottom: tp`下方第${'pos'}横行`,
left: tp`左方第${'pos'}竖列`,
right: tp`右方第${'pos'}竖列`,
shape: tp`指定位置`,
},
value: {
unknown: tp`[ 未知数值: ${'type'}]`, //type
const: tp`${'value'}${'unit'}`,
const_to: tp`${'value'}`,
mul_percent: tp`${'value'}%`,
mul_times: tp`×${'value'}`,
mul_of_percent: tp`${'stats'}${'value'}%`,
mul_of_times: tp`${'stats'}×${'value'}`,
hp_scale: tp`${'hp'}为100%时${'min'}${'hp'}为1时${'max'}`,
random_atk: tp`${'atk'}×${'min'}${'max'}`,
prob: tp`${'value'}几率`,
x_awakenings: tp`${'awakenings'}数量×${'value'}`,
},
target: {
self: tp`发动者自身`,
enemy: tp`敌人`,
team: tp`队伍`,
team_last: tp`队伍最后一位队员`,
enemy_all: tp`敌方全体`,
enemy_one: tp`敌方1体`,
enemy_attr: tp`${'attr'}敌人`,
},
stats: {
unknown: tp`[ 未知状态: ${'type'}]`, //type
maxhp: tp`最大HP`,
hp: tp`HP`,
chp: tp`当前HP`,
atk: tp`攻击力`,
rcv: tp`回复力`,
teamhp: tp`队伍总HP`,
teamatk: tp`队伍${'attrs'}总攻击力`,
teamrcv: tp`队伍回复力`,
},
unit: {
unit: tp``,
seconds: tp``,
point: tp``,
turns: tp`回合`,
},
word: {
comma: tp``, //逗号
slight_pause: tp``, //顿号
range_hyphen: tp`~`, //范围连字符
in_once: tp`同时`,
evo_type_pixel: tp`像素进化`,
evo_type_reincarnation: tp`转生或超转生进化`,
evo_type_unknow: tp`未知进化`,
affix_attr: tp`${'cotent'}属性`, //词缀-属性
affix_orb: tp`${'cotent'}宝珠`, //词缀-宝珠
affix_type: tp`${'cotent'}类型`, //词缀-类型
affix_awakening: tp`${'cotent'}觉醒`, //词缀-觉醒
affix_exclude: tp`${'cotent'}以外`, //词缀-属性
},
attrs: {
[0]: tp`${'icon'}`,
[1]: tp`${'icon'}`,
[2]: tp`${'icon'}`,
[3]: tp`${'icon'}`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}回复`,
[6]: tp`${'icon'}`,
all: tp`所有`,
self: tp`${'icon'}自身属性`,
fixed: tp`${'icon'}无视防御固定`,
},
types: {
[0]: tp`${'icon'}进化用`,
[1]: tp`${'icon'}平衡`,
[2]: tp`${'icon'}体力`,
[3]: tp`${'icon'}回复`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}`,
[6]: tp`${'icon'}攻击`,
[7]: tp`${'icon'}恶魔`,
[8]: tp`${'icon'}机械`,
[9]: tp`${'icon'}特别保护`,
[12]: tp`${'icon'}能力觉醒用`,
[14]: tp`${'icon'}强化合成用`,
[15]: tp`${'icon'}贩卖用`,
},
orbs: {
[0]: tp`${'icon'}`,
[1]: tp`${'icon'}`,
[2]: tp`${'icon'}`,
[3]: tp`${'icon'}`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}回复`,
[6]: tp`${'icon'}干扰`,
[7]: tp`${'icon'}`,
[8]: tp`${'icon'}剧毒`,
[9]: tp`${'icon'}炸弹`,
enhanced: tp`${'icon'}强化`,
locked: tp`${'icon'}锁定`,
nail: tp`${'icon'}钉子`,
variation: tp`${'icon'}变换珠(每${'time'}秒变换)`,
_5color: tp`${'icon'}5色`,
_6color: tp`${'_5color'}+${'orb_rcv'}`,
all: tp`所有`,
any: tp`任何${'cotent'}`,
},
},
}
//const _localTranslating = {};
//deepMerge(localTranslating, _localTranslating);
localisation(localTranslating);
//大数字缩短长度
@ -273,21 +45,6 @@ showSearch(result.map(o=>o.card).filter(c=>c));
console.table(result);
*/
//返回flag里值为true的数组如[1,4,7]
function flags(num) {
/*
return Array.from(new Array(32),(i,n)=>n).filter(n => num & (1 << n)); //性能太差
return new Array(32).fill(null).map((i,n)=>n).filter(n => num & (1 << n)); //性能比上者好,但还是不够快
*/
const arr = [];
for (let i = 0; i < 32; i++) {
if (num & (1 << i)) {
arr.push(i);
}
}
return arr;
}
//按住Ctrl点击技能在控制台输出技能的对象
function fastShowSkill(event) {
if (event.ctrlKey) {

View File

@ -147,6 +147,12 @@
{
content: "隊長技能";
}
label[for="show-skill-original"]::after{
content: "技能原文";
}
label[for="merge-skill"]::after{
content: "合并技能";
}
.edit-box .button-box .button-null::after{
content: "留空格子";

View File

@ -1,4 +1,4 @@
localTranslating = {
const _localTranslating = {
webpage_title: `龍族拼圖${teamsCount}人隊伍圖製作工具`,
addition_display: "附加顯示",
title_blank: "輸入隊伍標題",
@ -23,7 +23,9 @@
sort_abilityIndex_awoken: "最大加權能力指數(+覺醒)",
},
force_reload_data: "強制刷新數據",
}
};
deepMerge(localTranslating, _localTranslating);
localisation(localTranslating);
//大數字縮短長度
Number.prototype.bigNumberToString = function()
@ -54,6 +56,4 @@ Number.prototype.bigNumberToString = function()
outStr = outStr.replace(/(^零+|零+$)/g,''); //去除開頭的零
outStr = outStr.replace(/零{2,}/g,'零'); //去除多個連續的零
return outStr;
}
localisation(localTranslating);
}

View File

@ -146,6 +146,12 @@
{
content: "隊長技能";
}
label[for="show-skill-original"]::after{
content: "技能原文";
}
label[for="merge-skill"]::after{
content: "合并技能";
}
.edit-box .button-box .button-null::after{
content: "留空格子";

View File

@ -1,26 +1,2 @@
localTranslating = {
webpage_title: `智龙迷城${teamsCount}人队伍图制作工具`,
addition_display: "附加显示",
title_blank: "输入队伍标题",
detail_blank: "输入说明",
sort_name:{
sort_none: "无",
sort_id: "怪物ID",
sort_attrs: "属性",
sort_evoRootId: "进化树",
sort_evoRoot_Attrs : "进化根怪物的属性",
sort_rarity: "稀有度",
sort_cost: "消耗",
sort_mp: "MP",
sort_skillLv1: "技能最大冷却时间",
sort_skillLvMax: "技能最小冷却时间",
sort_hpMax110: "最大 HP",
sort_atkMax110: "最大攻击",
sort_rcvMax110: "最大回复",
sort_hpMax110_awoken: "最大 HP+觉醒)",
sort_atkMax110_awoken: "最大攻击(+觉醒)",
sort_rcvMax110_awoken: "最大回复(+觉醒)",
sort_abilityIndex_awoken: "最大加权能力指数(+觉醒)",
},
force_reload_data: "强制刷新数据",
}

localisation(localTranslating);

View File

@ -1128,7 +1128,12 @@ var formation = new Formation(teamsCount,5);
<div class="setting-row row-mon-leader-skill">
<!--怪物队长技能-->
<div class="skill-box">
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span></div>
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span>
<div class="skill-parse-control">
<input type="checkbox" class="config-checkbox-ipt" name="show-skill-original" id="show-skill-original"><label class="config-checkbox-lbl" for="show-skill-original"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="merge-skill" id="merge-skill"><label class="config-checkbox-lbl" for="merge-skill"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
</div>
<div class="skill-datail-original"></div>
<div class="skill-datail-parsed"></div>
</div>

View File

@ -12,6 +12,239 @@
source:"퍼즐앤드래곤"
},
];
let localTranslating = {
webpage_title: `智龙迷城${teamsCount}人队伍图制作工具`,
addition_display: "💬",
title_blank: "输入队伍标题",
detail_blank: "输入说明",
sort_name:{
sort_none: "无",
sort_id: "怪物ID",
sort_attrs: "属性",
sort_evoRootId: "进化树",
sort_evoRoot_Attrs : "进化根怪物的属性",
sort_rarity: "稀有度",
sort_cost: "消耗",
sort_mp: "MP",
sort_skillLv1: "技能最大冷却时间",
sort_skillLvMax: "技能最小冷却时间",
sort_hpMax110: "最大 HP",
sort_atkMax110: "最大攻击",
sort_rcvMax110: "最大回复",
sort_hpMax110_awoken: "最大 HP+觉醒)",
sort_atkMax110_awoken: "最大攻击(+觉醒)",
sort_rcvMax110_awoken: "最大回复(+觉醒)",
sort_abilityIndex_awoken: "最大加权能力指数(+觉醒)",
},
force_reload_data: "强制刷新数据",
skill_parse: {
skill: {
unknown: tp`未知的技能类型:${'type'}`, //type
active_turns: tp`${'actionSkill'},效果 ${'turns'} 回合`, //turns, actionSkill
random_skills: tp`随机发动以下技能:${'skills'}`, //skills
damage_enemy: tp`${'target'}造成${'damage'}${'attr'}伤害${'times'}${'totalDamage'}`, //target, damage, attr
damage_enemy_count: tp`(共${'damage'})`,
vampire: tp`${'target'}造成${'damage'}${'attr'}伤害,并${'icon'}回复伤害值${'heal'}的HP`, //target, damage, attr
delay: tp`${'icon'}延迟敌人的攻击`, //icon
mass_attack: tp`所有攻击变为${'icon'}全体攻击`,
leader_change: tp`${'icon'}${'target'}换为队长,再次使用则换回来`,
no_skyfall: tp`${'icon'}天降的宝珠不会消除`,
self_harm: tp`${'icon'}${'stats'}减少${'value'}`,
heal: tp`${'icon'}回复 ${'value'}${'stats'}`,
unbind_normal: tp`${'icon'}封锁状态减少${'turns'}`,
unbind_awakenings: tp`${'icon'}觉醒无效状态减少${'turns'}回合`,
unbind_matches: tp`${'icon'}无法消除宝珠状态减少${'turns'}回合`,
bind_skill: tp`${'icon'}自身无法使用技能`,
defense_break: tp`${'icon'}敌方的防御力减少${'value'}回合`,
poison: tp`${'icon'}使${'target'}全体中毒,每回合损失${'belong_to'} ${'value'}${'stats'}`,
time_extend: tp`${'icon'}宝珠移动时间 ${'value'}`,
follow_attack: tp`${'icon'}消除宝珠的回合,以${'belong_to'}${'value'}的伤害追打${'target'}(计算防御力)`,
follow_attack_fixed: tp`追加${'damage'}${'attr'}伤害`,
auto_heal_buff: tp`行动结束后${'icon'}回复${'value'}${'stats'}`,
auto_heal: tp`${'icon'}消除宝珠的回合,回复${'belong_to'}${'value'}${'stats'}`,
ctw: tp`${'icon'}${'value'}内时间停止,可以任意移动宝珠`,
gravity: tp`${'icon'}造成${'target'}${'value'}的伤害`,
resolve: tp`${'icon'}${'stats'}${'value'},受到单一次致命攻击时,${'prob'}将会以1点 HP 生还`,
board_change: tp`全画面的宝珠变为${'orbs'}`,
skill_boost: tp`自身以外成员的技能冷却储备${'icon'}${'turns'}`,
add_combo: tp`结算时连击数增加${'value'}${'icon'}`,
fixed_time: tp`${'icon'}操作时间固定${'value'}`,
min_match_length: tp`【限定≥${'value'}珠才能消除】`,
drop_refresh: tp`全板刷新`,
drum: tp`宝珠移动和消除的声音变成太鼓达人的音效`,
auto_path: tp`显示3连击的转珠路径只适用于普通地下城`,
board7x6: tp`${'icon'}7×6版面】`,
counter_attack: tp`受到${'target'}攻击时,${'prob'}进行受到伤害${'value'}${'attr'}${'icon'}反击`,
change_orbs: tp`${'from'}${'to'}`,
generate_orbs: tp`${'exclude'}生成${'orbs'}${'value'}`,
fixed_orbs: tp`${'position'}产生${'orbs'}`,
orb_drop_increase: tp`${'orbs'}的掉落率提高到${'value'}`,
orb_drop_increase_flag: tp`${'value'}掉落${'flag'}${'orbs'}`,
attr_absorb: tp`${'icon'}属性吸收`,
combo_absorb: tp`${'icon'}连击吸收`,
damage_absorb: tp`${'icon'}伤害吸收`,
damage_void: tp`${'icon'}伤害无效`,
void_enemy_buff: tp`敌人的 ${'buff'} 无效化`,
change_attribute: tp`${'target'}变为${'attrs'}`,
set_orb_state_enhanced: tp`${'icon'}强化${'orbs'}(每颗宝珠效力增加${'value'}`,
set_orb_state_locked: tp`${'orbs'}${'icon'}锁定${'value'}`,
set_orb_state_unlocked: tp`${'icon'}解除所有宝珠的锁定状态`,
set_orb_state_bound: tp`无法消除${'orbs'}`,
rate_multiply: tp`作为队长进入地下城时,${'rate'}变为${'value'}`,
rate_multiply_drop: tp`${'icon'}怪物蛋掉落率`,
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'}`,
henshin: tp`变身为${'card'}`,
void_poison: tp`消除${'poison'}时不会受到毒伤害`,
skill_proviso: tp`${'condition'}才能发动后续效果`,
},
power: {
unknown: tp`[ 未知能力提升: ${'type'} ]`,
scale_attributes: tp`${'orbs'}${'min'}种属性同时攻击时${'stats'}${'bonus'}`,
scale_attributes_bonus: tp`每多1种${'bonus'},最大${'max'}种时${'stats_max'}`,
scale_combos: tp`${'min'}连击以上时${'stats'}${'bonus'}`,
scale_combos_bonus: tp`每多1连击${'bonus'},最大${'max'}连击时${'stats_max'}`,
scale_match_attrs: tp`${'matches'}${'min'}串匹配时${'stats'}${'bonus'}`,
scale_match_attrs_bonus: tp`每多1串${'bonus'},最大${'max'}串时${'stats_max'}`,
scale_match_length: tp`${'in_once'}相连消除${'min'}${'orbs'}${'stats'}${'bonus'}`,
scale_match_length_bonus: tp`每多1个${'bonus'},最大${'max'}个时${'stats_max'}`,
scale_cross: tp`每以十字形式消除5个${'orbs'}${'stats'}`,
scale_cross_single: tp`以十字形式消除5个${'orbs'}${'stats'}`,
scale_state_kind_count: tp`以队伍中${'awakenings'}${'attrs'}${'types'}的数量提升,每个${'stats'}`,
},
cond: {
unknown: tp`[ 未知条件 ]`,
hp_equal: tp`${'hp'} == ${'min'}`,
hp_less_or_equal: tp`${'hp'}${'max'}`,
hp_greater_or_equal: tp`${'hp'}${'min'}`,
hp_belong_to_range: tp`${'hp'} ∈ [${'min'},${'max'}] 时`,
use_skill: tp`使用技能时`,
multi_player: tp`协力时`,
remain_orbs: tp`剩余宝珠 ≤ ${'value'}`,
exact_combo: tp`刚好${'value'}连击时`,
exact_match_length: tp`相连消除刚好${'value'}${'orbs'}`,
exact_match_enhanced: tp`并且其中包含至少一个强化宝珠`,
compo_type_card: tp`队伍中同时存在 ${'ids'}`,
compo_type_series: tp`队员组成全为 ${'ids'} 合作时`,
compo_type_evolution: tp`队员组成全为 ${'ids'} 进化时`,
L_shape: tp`以L字形式消除5个${'orbs'}`,
heal: tp`${'orbs'}回复${'heal'}`,
},
position: {
top: tp`上方第${'pos'}横行`,
bottom: tp`下方第${'pos'}横行`,
left: tp`左方第${'pos'}竖列`,
right: tp`右方第${'pos'}竖列`,
shape: tp`指定位置`,
},
value: {
unknown: tp`[ 未知数值: ${'type'}]`, //type
const: tp`${'value'}${'unit'}`,
const_to: tp`${'value'}`,
mul_percent: tp`${'value'}%`,
mul_times: tp`×${'value'}`,
mul_of_percent: tp`${'stats'}${'value'}%`,
mul_of_times: tp`${'stats'}×${'value'}`,
hp_scale: tp`${'hp'}为100%时${'min'}${'hp'}为1时${'max'}`,
random_atk: tp`${'atk'}×${'min'}${'max'}`,
prob: tp`${'value'}几率`,
x_awakenings: tp`${'awakenings'}数量×${'value'}`,
},
target: {
self: tp`发动者自身`,
enemy: tp`敌人`,
team: tp`队伍`,
team_last: tp`队伍最后一位队员`,
enemy_all: tp`敌方全体`,
enemy_one: tp`敌方1体`,
enemy_attr: tp`${'attr'}敌人`,
},
stats: {
unknown: tp`[ 未知状态: ${'type'}]`, //type
maxhp: tp`最大HP`,
hp: tp`HP`,
chp: tp`当前HP`,
atk: tp`攻击力`,
rcv: tp`回复力`,
teamhp: tp`队伍总HP`,
teamatk: tp`队伍${'attrs'}总攻击力`,
teamrcv: tp`队伍回复力`,
},
unit: {
unit: tp``,
times: tp``,
seconds: tp``,
point: tp``,
turns: tp`回合`,
},
word: {
comma: tp``, //逗号
slight_pause: tp``, //顿号
range_hyphen: tp`~`, //范围连字符
in_once: tp`同时`,
evo_type_pixel: tp`像素进化`,
evo_type_reincarnation: tp`转生或超转生进化`,
evo_type_unknow: tp`未知进化`,
affix_attr: tp`${'cotent'}属性`, //词缀-属性
affix_orb: tp`${'cotent'}宝珠`, //词缀-宝珠
affix_type: tp`${'cotent'}类型`, //词缀-类型
affix_awakening: tp`${'cotent'}觉醒`, //词缀-觉醒
affix_exclude: tp`${'cotent'}以外`, //词缀-属性
},
attrs: {
[0]: tp`${'icon'}`,
[1]: tp`${'icon'}`,
[2]: tp`${'icon'}`,
[3]: tp`${'icon'}`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}回复`,
[6]: tp`${'icon'}`,
all: tp`所有`,
self: tp`${'icon'}自身属性`,
fixed: tp`${'icon'}无视防御固定`,
},
types: {
[0]: tp`${'icon'}进化用`,
[1]: tp`${'icon'}平衡`,
[2]: tp`${'icon'}体力`,
[3]: tp`${'icon'}回复`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}`,
[6]: tp`${'icon'}攻击`,
[7]: tp`${'icon'}恶魔`,
[8]: tp`${'icon'}机械`,
[9]: tp`${'icon'}特别保护`,
[12]: tp`${'icon'}能力觉醒用`,
[14]: tp`${'icon'}强化合成用`,
[15]: tp`${'icon'}贩卖用`,
},
orbs: {
[0]: tp`${'icon'}`,
[1]: tp`${'icon'}`,
[2]: tp`${'icon'}`,
[3]: tp`${'icon'}`,
[4]: tp`${'icon'}`,
[5]: tp`${'icon'}回复`,
[6]: tp`${'icon'}干扰`,
[7]: tp`${'icon'}`,
[8]: tp`${'icon'}剧毒`,
[9]: tp`${'icon'}炸弹`,
enhanced: tp`${'icon'}强化`,
locked: tp`${'icon'}锁定`,
nail: tp`${'icon'}钉子`,
variation: tp`${'icon'}变换珠(每${'time'}秒变换)`,
_5color: tp`${'icon'}5色`,
_6color: tp`${'_5color'}+${'orb_rcv'}`,
all: tp`所有`,
any: tp`任何${'cotent'}`,
},
},
}
//类型和觉醒杀和潜觉杀的对应编号,还有类型可以打什么类型的潜觉杀
const typekiller_for_type = [
{type:0,awoken:39,latent:16,typeKiller:[]}, //0进化
@ -399,7 +632,7 @@ const specialSearchFunctions = (function() {
const searchTypeArray = [173];
const skill = getCardActiveSkill(card, searchTypeArray);
const sk = skill.params;
if (sk[0] && sk[3])
if (sk[1] && sk[3])
{
return `双吸×${sk[0]}T`;
}else

View File

@ -1,34 +1,4 @@
//带标签的模板字符串
function tp(strings, ...keys) {
return (function(...values) {
let dict = values[values.length - 1] || {};
let fragment = document.createDocumentFragment();
fragment.appendChild(document.createTextNode(strings[0]));
//let result = [strings[0]];
keys.forEach(function(key, i, arr) {
let value = Number.isInteger(key) ? values[key] : dict[key];
if (value == undefined)
{
//console.debug("模板字符串中 %s 未找到输入数据",key);
}else
{
if (!(value instanceof Node))
{
value = document.createTextNode(value);
}
try{
fragment.appendChild(arr.lastIndexOf(key) == i ? value : value.cloneNode(true));
}catch(e)
{
console.log(value, e);
console.log(keys, values);
}
}
fragment.appendChild(document.createTextNode(strings[i + 1]));
});
return fragment;
});
}
let merge_skill = false;
const Attributes = {
/*0: "Fire",
@ -448,7 +418,7 @@ function skillParser(skillId)
const skills = (Array.isArray(result) ? result : [result])
.filter(s => Boolean(s))
.map(s => ({ id: skillId, type: skill.type, params: skill.params, ...s }));
//merge(skills);
if (merge_skill) merge(skills);
return skills;
}
@ -1188,52 +1158,53 @@ function renderSkillEntry(skills)
li.addEventListener("click", showParsedSkill);
});
/*
let boardChange = skills.filter(skill=>
skill.kind == SkillKinds.BoardChange ||
skill.kind == SkillKinds.GenerateOrbs ||
skill.kind == SkillKinds.FixedOrbs
);
if (boardChange.length > 0)
if (merge_skill)
{
const board = new Board();
for (let skill of boardChange)
let boardChange = skills.filter(skill=>
skill.kind == SkillKinds.BoardChange ||
skill.kind == SkillKinds.GenerateOrbs ||
skill.kind == SkillKinds.FixedOrbs
);
if (boardChange.length > 0)
{
switch (skill.kind)
const board = new Board();
for (let skill of boardChange)
{
case SkillKinds.BoardChange: { //洗版
const attrs = skill.attrs;
board.randomFill(attrs);
break;
}
case SkillKinds.GenerateOrbs: { //产生珠子
let orbs = skill.orbs, exclude = skill.exclude, count = skill.count;
board.generateOrbs(orbs, count, exclude);
break;
}
case SkillKinds.FixedOrbs: { //固定位置产生珠子
let generates = skill.generates;
for (const generate of generates)
{
let orb = generate.orbs?.[0];
if (generate.type == 'shape') {
board.setShape(generate.positions, orb);
} else {
if (generate.type == 'row')
board.setRow(generate.positions, orb);
else
board.setColumn(generate.positions, orb);
}
switch (skill.kind)
{
case SkillKinds.BoardChange: { //洗版
const attrs = skill.attrs;
board.randomFill(attrs);
break;
}
case SkillKinds.GenerateOrbs: { //产生珠子
let orbs = skill.orbs, exclude = skill.exclude, count = skill.count;
board.generateOrbs(orbs, count, exclude);
break;
}
case SkillKinds.FixedOrbs: { //固定位置产生珠子
let generates = skill.generates;
for (const generate of generates)
{
let orb = generate.orbs?.[0];
if (generate.type == 'shape') {
board.setShape(generate.positions, orb);
} else {
if (generate.type == 'row')
board.setRow(generate.positions, orb);
else
board.setColumn(generate.positions, orb);
}
}
break;
}
break;
}
}
const li = ul.appendChild(document.createElement("li"));
li.appendChild(board.toTable());
li.className = "merge-board";
}
const li = ul.appendChild(document.createElement("li"));
li.appendChild(board.toTable());
li.className = "merge-board";
}
*/
return ul;
}
@ -1434,13 +1405,20 @@ function renderSkill(skill, option = {})
}
case SkillKinds.DamageEnemy: { //大炮和固伤
let attr = skill.attr, target = skill.target, damage = skill.damage;
let attr = skill.attr, target = skill.target, damage = skill.damage, times = skill.times;
if (attr == null) break; //没有属性时编号为0的空技能
dict = {
target: target === 'all' ? tsp.target.enemy_all() : target === 'single' ? tsp.target.enemy_one() : tsp.target.enemy_attr({attr: renderAttrs(target, {affix: true})}),
damage: renderValue(damage, {unit: tsp.unit.point}),
attr: renderAttrs(attr, {affix: (attr === 'self' || attr === 'fixed') ? false : true})
attr: renderAttrs(attr, {affix: (attr === 'self' || attr === 'fixed') ? false : true}),
};
if (times)
{
dict.times = renderValue(v.constant(times), {unit: tsp.unit.times});
dict.totalDamage = tsp.skill.damage_enemy_count({
damage: renderValue(v.constant(damage.value * times), {unit: tsp.unit.point})
});
}
frg.ap(tsp.skill.damage_enemy(dict));
break;
}
@ -1468,9 +1446,12 @@ function renderSkill(skill, option = {})
dict = {
orbs: renderOrbs(attrs),
};
let board = new Board(attrs);
frg.ap(tsp.skill.board_change(dict));
frg.ap(board.toTable());
if (!merge_skill)
{
let board = new Board(attrs);
frg.ap(board.toTable());
}
break;
}
case SkillKinds.SkillBoost: { //溜
@ -1578,17 +1559,20 @@ function renderSkill(skill, option = {})
orbs: renderOrbs(orbs, {time}),
value: count,
};
let board = new Board();
board.generateOrbs(orbs, count, exclude);
frg.ap(tsp.skill.generate_orbs(dict));
frg.ap(board.toTable());
if (!merge_skill)
{
let board = new Board();
board.generateOrbs(orbs, count, exclude);
frg.ap(board.toTable());
}
break;
}
case SkillKinds.FixedOrbs: { //固定位置产生珠子
let generates = skill.generates;
let slight_pause = tsp.word.slight_pause().textContent;
let subDocument = [];
let board = new Board();
let board = merge_skill ? null : new Board();
function posSplit(pos, max)
{
return {sequence: pos.filter(n=>n<=2).map(n=>n+1), reverse: pos.filter(n=>n>=3).reverse().map(n=>max-n)};
@ -1602,7 +1586,7 @@ function renderSkill(skill, option = {})
if (generate.type == 'shape')
{
dict.position = tsp.position.shape();
board.setShape(generate.positions, orb);
if (!merge_skill) board.setShape(generate.positions, orb);
}else
{
let posFrgs = [];
@ -1612,20 +1596,20 @@ function renderSkill(skill, option = {})
const pos = posSplit(generate.positions, 5);
if (pos.sequence.length) posFrgs.push(tsp.position.top({pos: pos.sequence.join(slight_pause)}));
if (pos.reverse.length) posFrgs.push(tsp.position.bottom({pos: pos.reverse.join(slight_pause)}));
board.setRow(generate.positions, orb);
if (!merge_skill) board.setRow(generate.positions, orb);
}else
{
const pos = posSplit(generate.positions, 6);
if (pos.sequence.length) posFrgs.push(tsp.position.left({pos: pos.sequence.join(slight_pause)}));
if (pos.reverse.length) posFrgs.push(tsp.position.right({pos: pos.reverse.join(slight_pause)}));
board.setColumn(generate.positions, orb);
if (!merge_skill) board.setColumn(generate.positions, orb);
}
dict.position = posFrgs.nodeJoin(tsp.word.slight_pause());
}
subDocument.push(tsp.skill.fixed_orbs(dict));
}
frg.ap(subDocument.nodeJoin(tsp.word.comma()));
frg.ap(board.toTable());
if (!merge_skill) frg.ap(board.toTable());
break;
}

View File

@ -90,17 +90,6 @@ Number.prototype.keepCounts = function(decimalDigits = 2, plusSign = false)
let newNumber = Number(this.toFixed(decimalDigits));
return (plusSign && this > 0 ? '+' : '') + newNumber.bigNumberToString();
}
//将二进制flag转为数组
function flags(num) {
const arr = [];
for (let i = 0; i < 32; i++) {
if (num & (1 << i)) {
arr.push(i);
}
}
return arr;
}
//数组删除自己尾部的空元素
Array.prototype.DeleteLatter = function(item = null) {
let index = this.length - 1;
@ -120,6 +109,64 @@ Math.randomInteger = function(max, min = 0) {
return this.floor(this.random() * (max - min + 1) + min);
}
//将二进制flag转为数组
function flags(num) {
const arr = [];
for (let i = 0; i < 32; i++) {
if (num & (1 << i)) {
arr.push(i);
}
}
return arr;
}
//带标签的模板字符串
function tp(strings, ...keys) {
return (function(...values) {
let dict = values[values.length - 1] || {};
let fragment = document.createDocumentFragment();
fragment.appendChild(document.createTextNode(strings[0]));
//let result = [strings[0]];
keys.forEach(function(key, i, arr) {
let value = Number.isInteger(key) ? values[key] : dict[key];
if (value == undefined)
{
//console.debug("模板字符串中 %s 未找到输入数据",key);
}else
{
if (!(value instanceof Node))
{
value = document.createTextNode(value);
}
try{
fragment.appendChild(arr.lastIndexOf(key) == i ? value : value.cloneNode(true));
}catch(e)
{
console.log(value, e);
console.log(keys, values);
}
}
fragment.appendChild(document.createTextNode(strings[i + 1]));
});
return fragment;
});
}
//来自于 https://www.cnblogs.com/zhenguo-chen/p/14672332.html
function deepMerge(obj1, obj2) {
let key;
for (key in obj2) {
// 如果target(也就是obj1[key])存在且是对象的话再去调用deepMerge否则就是obj1[key]里面没这个对象需要与obj2[key]合并
// 如果obj2[key]没有值或者值不是对象此时直接替换obj1[key]
obj1[key] =
obj1[key] &&
obj1[key].toString() === "[object Object]" &&
(obj2[key] && obj2[key].toString() === "[object Object]")
? deepMerge(obj1[key], obj2[key])
: (obj1[key] = obj2[key]);
}
return obj1;
}
//▼ADPCM播放相关来自 https://github.com/jy4340132/aaa
const pcmMemory = new WebAssembly.Memory({ initial: 256, maximum: 256 });

View File

@ -25,10 +25,6 @@ const isGuideMod = Boolean(Number(getQueryString("guide"))); //是否以图鉴
if (location.search.includes('&amp;')) {
location.search = location.search.replace(/&amp;/ig, '&');
}
let localTranslating = {
webpage_title: `智龙迷城${teamsCount}人队伍图制作工具`,
addition_display: "💬",
}
//一开始就加载当前语言
if (currentLanguage == undefined)
@ -2842,7 +2838,6 @@ function initialize() {
showSearch(s_cards); //显示
}
};
skillLevel.onchange = function() {
const card = Cards[editBox.mid] || Cards[0]; //怪物固定数据
@ -2854,6 +2849,49 @@ function initialize() {
skillLevel_Max.ipt = skillLevel;
skillLevel_Max.onclick = setIptToMyValue;
const rowLeaderSkill = settingBox.querySelector(".row-mon-leader-skill");
const leaderSkillBox = rowLeaderSkill.querySelector(".skill-box");
const showSkillOriginalClassName = 'show-skill-original';
const showSkillOriginal = leaderSkillBox.querySelector(`#${showSkillOriginalClassName}`); //显示官方排序的觉醒
showSkillOriginal.onchange = function(){
localStorage.setItem(cfgPrefix + showSkillOriginalClassName, Number(this.checked));
if (this.checked)
{
skillBox.classList.add(showSkillOriginalClassName);
leaderSkillBox.classList.add(showSkillOriginalClassName);
}else
{
skillBox.classList.remove(showSkillOriginalClassName);
leaderSkillBox.classList.remove(showSkillOriginalClassName);
}
};
showSkillOriginal.checked = Boolean(Number(localStorage.getItem(cfgPrefix + showSkillOriginalClassName)));
showSkillOriginal.onchange();
editBox.refreshSkillParse = function(skp, lskp){
const skillDetailParsed = skp ?? skillBox.querySelector(".skill-datail-parsed");
const lskillDetailParsed = lskp ?? leaderSkillBox.querySelector(".skill-datail-parsed");
const card = Cards[this.mid] || Cards[0];
if (!card) return;
skillDetailParsed.innerHTML = "";
skillDetailParsed.appendChild(renderSkillEntry(skillParser(card.activeSkillId)));
lskillDetailParsed.innerHTML = "";
lskillDetailParsed.appendChild(renderSkillEntry(skillParser(card.leaderSkillId)));
};
const mergeSillClassName = 'merge-skill';
const mergeSill = leaderSkillBox.querySelector(`#${mergeSillClassName}`); //显示官方排序的觉醒
mergeSill.onchange = function(){
localStorage.setItem(cfgPrefix + mergeSillClassName, Number(this.checked));
merge_skill = this.checked;
editBox.refreshSkillParse();
};
mergeSill.checked = Boolean(Number(localStorage.getItem(cfgPrefix + mergeSillClassName)));
mergeSill.onchange();
//已有觉醒的去除
function deleteLatent() {
const aIdx = monEditLatents.filter(l => !l.classList.contains(className_displayNone)).findIndex(l => l == this);
@ -3382,8 +3420,6 @@ function editBoxChangeMonId(id) {
//const skill = Skills[card.activeSkillId];
//const leaderSkill = Skills[card.leaderSkillId];
let fragment = null;
const monInfoBox = editBox.querySelector(".monsterinfo-box");
const settingBox = editBox.querySelector(".setting-box");
@ -3471,7 +3507,7 @@ function editBoxChangeMonId(id) {
evoCardUl.innerHTML = ""; //据说直接清空HTML性能更好
const openEvolutionaryTree = settingBox.querySelector(".row-mon-id .open-evolutionary-tree");
if (evoLinkCardsIdArray.length > 1) {
fragment = document.createDocumentFragment(); //创建节点用的临时空间
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
evoLinkCardsIdArray.forEach(function(mid) {
const cli = createCardHead(mid);
if (mid == id) {
@ -3593,15 +3629,13 @@ function editBoxChangeMonId(id) {
const activeskill = Skills[card.activeSkillId];
const leaderSkill = Skills[card.leaderSkillId];
fragment = document.createDocumentFragment(); //创建节点用的临时空间
fragment.appendChild(skillBox);
let frg1 = document.createDocumentFragment(); //创建节点用的临时空间
frg1.appendChild(skillBox);
skillTitle.textContent = activeskill.name;
skillTitle.setAttribute("data-skillid", activeskill.id);
skillDetailOriginal.innerHTML = "";
skillDetailOriginal.appendChild(parseSkillDescription(activeskill));
skillDetailParsed.innerHTML = "";
skillDetailParsed.appendChild(renderSkillEntry(skillParser(card.activeSkillId)));
const t_maxLevel = card.overlay || card.types.includes(15) ? 1 : activeskill.maxLevel; //遇到不能升技的最大等级强制为1
skillLevel.max = t_maxLevel;
@ -3610,8 +3644,6 @@ function editBoxChangeMonId(id) {
//skillLevel_Max.textContent = activeskill.maxLevel;
skillCD.textContent = activeskill.initialCooldown - t_maxLevel + 1;
rowSkill.appendChild(fragment);
//怪物队长技能
const rowLederSkill = settingBox.querySelector(".row-mon-leader-skill");
const lskillBox = rowLederSkill.querySelector(".skill-box");
@ -3619,17 +3651,17 @@ function editBoxChangeMonId(id) {
const lskillDetailParsed = lskillBox.querySelector(".skill-datail-parsed");
const lskillDetailOriginal = lskillBox.querySelector(".skill-datail-original");
fragment = document.createDocumentFragment(); //创建节点用的临时空间
fragment.appendChild(lskillBox);
let frg2 = document.createDocumentFragment(); //创建节点用的临时空间
frg2.appendChild(lskillBox);
lskillTitle.textContent = leaderSkill.name;
lskillTitle.setAttribute("data-skillid", leaderSkill.id);
lskillDetailOriginal.innerHTML = "";
lskillDetailOriginal.appendChild(parseSkillDescription(leaderSkill));
lskillDetailParsed.innerHTML = "";
lskillDetailParsed.appendChild(renderSkillEntry(skillParser(card.leaderSkillId)));
rowLederSkill.appendChild(fragment);
editBox.refreshSkillParse(skillDetailParsed, lskillDetailParsed);
rowSkill.appendChild(frg1);
rowLederSkill.appendChild(frg2);
if (card.overlay || card.types[0] == 15 && card.types[1] == -1) { //当可以叠加时不能打297和潜觉
rowPlus.classList.add("disabled");

View File

@ -12,9 +12,9 @@
const solo = true;
const teamsCount = 1;
</script>
<script type="text/javascript" src="languages/language-list.js"></script>
<script type="text/javascript" src="script-json_data.js"></script>
<script type="text/javascript" src="script-universal_function.js"></script>
<script type="text/javascript" src="script-json_data.js"></script>
<script type="text/javascript" src="languages/language-list.js"></script>
<script type="text/javascript" src="script-skill-parser.js"></script>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="library/html2canvas.min.js"></script>
@ -982,7 +982,12 @@ var formation = new Formation(teamsCount,6);
<div class="setting-row row-mon-leader-skill">
<!--怪物队长技能-->
<div class="skill-box">
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span></div>
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span>
<div class="skill-parse-control">
<input type="checkbox" class="config-checkbox-ipt" name="show-skill-original" id="show-skill-original"><label class="config-checkbox-lbl" for="show-skill-original"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="merge-skill" id="merge-skill"><label class="config-checkbox-lbl" for="merge-skill"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
</div>
<div class="skill-datail-original"></div>
<div class="skill-datail-parsed"></div>
</div>

View File

@ -2477,12 +2477,18 @@ icon.inflicts::after
.row-mon-leader-skill .skill-title .skill-name{
color: #85FD80;
}
.skill-box .skill-cd-control{
.skill-box .skill-cd-control,
.skill-box .skill-parse-control
{
float: right;
}
.skill-box .skill-cd{
margin-left: 10px;
}
.skill-box:not(.show-skill-original) .skill-datail-original
{
display: none;
}
.skill-datail-original,
.skill-datail-parsed{
color: black;

View File

@ -1915,7 +1915,12 @@ var formation = new Formation(teamsCount,6);
<div class="setting-row row-mon-leader-skill">
<!--怪物队长技能-->
<div class="skill-box">
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span></div>
<div class="skill-title"><div class="type-title"></div><span class="skill-name"></span>
<div class="skill-parse-control">
<input type="checkbox" class="config-checkbox-ipt" name="show-skill-original" id="show-skill-original"><label class="config-checkbox-lbl" for="show-skill-original"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="merge-skill" id="merge-skill"><label class="config-checkbox-lbl" for="merge-skill"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
</div>
<div class="skill-datail-original"></div>
<div class="skill-datail-parsed"></div>
</div>