MediaWiki:Gadget-SkillFilter.js
跳到导航
跳到搜索
注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:前往菜单 → 历史(Mac为Opera → Preferences),或按Ctrl-Shift-Del,然后清除浏览数据 → 勾选“已缓存的图片和文件” → 清除数据。
"use strict";
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
$().ready(function () {
var rawdata = eval($('#smwdata').html());
var rule = JSON.parse($('#rule').html());
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
var icon = {};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = $('#skillIcon').html().split('\n')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var i = _step.value;
var _i$split = i.split(','),
_i$split2 = _slicedToArray(_i$split, 2),
name = _i$split2[0],
path = _i$split2[1];
icon[name] = path;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
var servant = {};
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = $('#servantData').html().split('<br/>')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var _i3 = _step2.value;
if (_i3) {
var _i3$split = _i3.split('\t'),
_i3$split2 = _slicedToArray(_i3$split, 3),
id = _i3$split2[0],
name = _i3$split2[1],
path = _i3$split2[2];
servant[parseInt(id)] = {
"name": name,
"path": path
};
}
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
_iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
var targets = rule["check"]["targets"].sort();
var effects = rule["check"]["effects"].sort();
var tbody = $('#tbody');
var target_dropdown = $('#target-dropdown');
var target_popper;
var effect_dropdown = $('#effect-dropdown');
var effect_popper;
var result_tbody = $('#result-tbody');
var skill_popup = $('#skill-popup');
var skill_popper;
var url = $('#skillUrl');
var count = $('#count');
var isMobile = !!mw.config.get('wgMFMode'); //let isMobile = false;
if (isMobile) {
$('.target,.effect').attr('readonly', '');
}
var effects2targets = {};
var targets2effects = {};
{
var parse = function parse(arr) {
var et = [];
var sid = parseInt(arr[0]);
var tar;
for (var i = 5; i < arr.length; i = i + 11) {
var sr = checkSpecialRule(arr[i], sid);
if (sr) {
et = et.concat(sr.et);
if (sr.saveTarget) {
tar = sr.saveTarget;
}
} else {
var _t = getTar(arr[i]);
if (_t) {
tar = _t;
}
var eff = getEff(arr[i]);
if (eff === "未知技能") {
unKnownSkills.push(arr);
}
if (!tar) {
console.error("TARGET NOT FOUND:".concat(JSON.stringify(arr)));
unKnownSkills.push(arr);
}
et.push({
"e": eff,
"t": tar
});
}
}
var t = new Set();
var result = [];
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = et[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var _i = _step3.value;
if (!rule["check"]["effects"].includes(_i.e)) {
console.error("WRONG EFFECT:".concat(JSON.stringify(arr), "\n").concat(JSON.stringify(_i)));
}
if (!rule["check"]["targets"].includes(_i.t)) {
console.error("WRONG TARGET:".concat(JSON.stringify(arr), "\n").concat(JSON.stringify(_i)));
}
if (!t.has(JSON.stringify(_i))) {
t.add(JSON.stringify(_i));
result.push(_i);
} else {
console.info("DUPLICATE:".concat(JSON.stringify(arr), "\n").concat(JSON.stringify(et), "\n").concat(JSON.stringify(_i)));
}
(effects2targets[_i.e] = effects2targets[_i.e] || new Set()).add(_i.t);
(targets2effects[_i.t] = targets2effects[_i.t] || new Set()).add(_i.e);
}
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
_iterator3["return"]();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
return result;
};
var checkSpecialRule = function checkSpecialRule(des, sid) {
var _iteratorNormalCompletion4 = true;
var _didIteratorError4 = false;
var _iteratorError4 = undefined;
try {
for (var _iterator4 = rule["special"][Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
var s = _step4.value;
var _iteratorNormalCompletion5 = true;
var _didIteratorError5 = false;
var _iteratorError5 = undefined;
try {
for (var _iterator5 = s["des"][Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
var r = _step5.value;
var pattern = new RegExp(r);
if (des.match(pattern)) {
if (s["svtId"] && s["svtId"].length > 0) {
if (s["svtId"].includes(sid)) {
return {
"et": s.et,
"saveTarget": s.saveTarget
};
}
} else {
return {
"et": s.et,
"saveTarget": s.saveTarget
};
}
}
}
} catch (err) {
_didIteratorError5 = true;
_iteratorError5 = err;
} finally {
try {
if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) {
_iterator5["return"]();
}
} finally {
if (_didIteratorError5) {
throw _iteratorError5;
}
}
}
}
} catch (err) {
_didIteratorError4 = true;
_iteratorError4 = err;
} finally {
try {
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
_iterator4["return"]();
}
} finally {
if (_didIteratorError4) {
throw _iteratorError4;
}
}
}
return false;
};
var getTar = function getTar(des) {
var _iteratorNormalCompletion6 = true;
var _didIteratorError6 = false;
var _iteratorError6 = undefined;
try {
for (var _iterator6 = rule["target"][Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
var o = _step6.value;
var key = Object.keys(o)[0];
var _iteratorNormalCompletion7 = true;
var _didIteratorError7 = false;
var _iteratorError7 = undefined;
try {
for (var _iterator7 = o[key][Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
var r = _step7.value;
var pattern = new RegExp(r);
if (des.match(pattern)) {
return key;
}
}
} catch (err) {
_didIteratorError7 = true;
_iteratorError7 = err;
} finally {
try {
if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) {
_iterator7["return"]();
}
} finally {
if (_didIteratorError7) {
throw _iteratorError7;
}
}
}
}
} catch (err) {
_didIteratorError6 = true;
_iteratorError6 = err;
} finally {
try {
if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) {
_iterator6["return"]();
}
} finally {
if (_didIteratorError6) {
throw _iteratorError6;
}
}
}
return false;
};
var getEff = function getEff(des) {
var _iteratorNormalCompletion8 = true;
var _didIteratorError8 = false;
var _iteratorError8 = undefined;
try {
for (var _iterator8 = rule["normal"][Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
var o = _step8.value;
var key = Object.keys(o)[0];
var _iteratorNormalCompletion9 = true;
var _didIteratorError9 = false;
var _iteratorError9 = undefined;
try {
for (var _iterator9 = o[key][Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
var r = _step9.value;
var pattern = new RegExp(r);
if (des.match(pattern)) {
return key;
}
}
} catch (err) {
_didIteratorError9 = true;
_iteratorError9 = err;
} finally {
try {
if (!_iteratorNormalCompletion9 && _iterator9["return"] != null) {
_iterator9["return"]();
}
} finally {
if (_didIteratorError9) {
throw _iteratorError9;
}
}
}
}
} catch (err) {
_didIteratorError8 = true;
_iteratorError8 = err;
} finally {
try {
if (!_iteratorNormalCompletion8 && _iterator8["return"] != null) {
_iterator8["return"]();
}
} finally {
if (_didIteratorError8) {
throw _iteratorError8;
}
}
}
console.error("EFFECT NOT FOUND:".concat(des));
return "未知技能";
};
var wrongFormatSkills = [];
var unKnownSkills = [];
var _iteratorNormalCompletion10 = true;
var _didIteratorError10 = false;
var _iteratorError10 = undefined;
try {
for (var _iterator10 = rawdata[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) {
var v = _step10.value;
if ((v.length - 5) % 11 !== 0) {
wrongFormatSkills.push(v);
}
var et = parse(v);
(servant[v[0]].skills = servant[v[0]].skills || []).push({
"cate": et,
"data": v
});
}
} catch (err) {
_didIteratorError10 = true;
_iteratorError10 = err;
} finally {
try {
if (!_iteratorNormalCompletion10 && _iterator10["return"] != null) {
_iterator10["return"]();
}
} finally {
if (_didIteratorError10) {
throw _iteratorError10;
}
}
}
if (wrongFormatSkills.length !== 0) {
$('#mw-content-text > div').prepend("\u4E0D\u6807\u51C6\u7684\u6280\u80FD\u6570\u636E\uFF1A<table><tbody><tr><th>\u4ECE\u8005\u540D</th><th>\u6280\u80FD\u540D</th></tr>".concat(Array.from(wrongFormatSkills.map(function (v) {
return "<tr><td><a href=\"/w/".concat(servant[parseInt(v[0])].name, "\">").concat(servant[parseInt(v[0])].name, "</a></td><td>").concat(v[3], "</td></tr>");
})).join(''), "</tbody></table>"));
}
if (unKnownSkills.length !== 0) {
$('#mw-content-text > div').prepend("\u672A\u77E5\u6280\u80FD/\u76EE\u6807\uFF1A<table><tbody><tr><th>\u4ECE\u8005\u540D</th><th>\u6280\u80FD\u540D</th><th>\u7EC6\u8282</th></tr>".concat(Array.from(unKnownSkills.map(function (v) {
return "<tr><td><a href=\"/w/".concat(servant[parseInt(v[0])].name, "\">").concat(servant[parseInt(v[0])].name, "</a></td><td>").concat(v[3], "</td><td><pre>").concat(JSON.stringify(v), "</pre></td></tr>");
})).join(''), "</tbody></table>"));
}
}
function buildEffectDropDown(str, target) {
var temp = [];
var e = target ? targets2effects[target] : Object.keys(effects2targets);
var _iteratorNormalCompletion11 = true;
var _didIteratorError11 = false;
var _iteratorError11 = undefined;
try {
for (var _iterator11 = e[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {
var _v = _step11.value;
if (_v.indexOf(str) !== -1) {
temp.push("<div class=\"effect-dropdown-item\">".concat(_v, "</div>"));
}
}
} catch (err) {
_didIteratorError11 = true;
_iteratorError11 = err;
} finally {
try {
if (!_iteratorNormalCompletion11 && _iterator11["return"] != null) {
_iterator11["return"]();
}
} finally {
if (_didIteratorError11) {
throw _iteratorError11;
}
}
}
return temp.join('');
}
function buildTargetDropDown(str) {
var t = targets;
var temp = [];
var _iteratorNormalCompletion12 = true;
var _didIteratorError12 = false;
var _iteratorError12 = undefined;
try {
for (var _iterator12 = t[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
var _v2 = _step12.value;
if (_v2.indexOf(str) !== -1) {
temp.push("<div class=\"target-dropdown-item\">".concat(_v2, "</div>"));
}
}
} catch (err) {
_didIteratorError12 = true;
_iteratorError12 = err;
} finally {
try {
if (!_iteratorNormalCompletion12 && _iterator12["return"] != null) {
_iterator12["return"]();
}
} finally {
if (_didIteratorError12) {
throw _iteratorError12;
}
}
}
return temp.join('');
}
var current_dropdown_target;
target_dropdown.on('mousedown', '.target-dropdown-item', function (event) {
current_dropdown_target.val($(event.currentTarget).html());
filter();
});
effect_dropdown.on('mousedown', '.effect-dropdown-item', function (event) {
current_dropdown_target.val($(event.currentTarget).html());
filter();
});
tbody.on('click', '.remove', function (event) {
var t = $(event.currentTarget).parents('tr');
var prev = t.prev();
if (t.next().length === 0) {
prev.find('td:last').html('<button class="add">新增</button>');
prev.attr('id', 'last-filter-row');
}
t.remove();
if (tbody.find('tr').length === 2) {
$('#last-filter-row').find('.remove').attr("disabled", "disabled");
}
filter();
}).on('click', '.add', function () {
var last_filter = $('#last-filter-row');
last_filter.find('.add').remove();
last_filter.find('.remove').removeAttr("disabled");
last_filter.removeAttr("id");
tbody.append("<tr class=\"filter-row\" id=\"last-filter-row\"><td><span class=\"label\">\u4F5C\u7528\u5BF9\u8C61</span><input type=\"text\" class=\"target\" ".concat(isMobile ? 'readonly' : '', "></td><td><span class=\"label\">\u4F5C\u7528\u6548\u679C</span><input type=\"text\" class=\"effect\" ").concat(isMobile ? 'readonly' : '', "></td><td><button class=\"remove\">\u5220\u9664</button></td><td><button class=\"add\">\u65B0\u589E</button></td></tr>"));
}).on('focus', '.target', function (event) {
current_dropdown_target = $(event.currentTarget);
target_dropdown.html(buildTargetDropDown('')).show('fast');
target_popper = new Popper(event.currentTarget, target_dropdown, {
placement: 'bottom-start'
});
}).on('input', '.target', function (event) {
var t = $(event.currentTarget);
var str = t.val();
target_dropdown.html(buildTargetDropDown(str));
filter();
}).on('blur', '.target', function () {
target_dropdown.hide('fast', function () {
target_popper.destroy();
});
}).on('focus', '.effect', function (event) {
current_dropdown_target = $(event.currentTarget);
effect_dropdown.html(buildEffectDropDown('', current_dropdown_target.parent().prev().find('.target').val())).show('fast');
effect_popper = new Popper(event.currentTarget, effect_dropdown, {
placement: 'bottom-start'
});
}).on('input', '.effect', function (event) {
var t = $(event.currentTarget);
var str = t.val();
effect_dropdown.html(buildEffectDropDown(str, t.parent().prev().find('.target').val()));
filter();
}).on('blur', '.effect', function () {
effect_dropdown.hide('fast', function () {
effect_popper.destroy();
});
});
result_tbody.on('click', '.skillIcon', function (event) {
var t = $(event.currentTarget);
if (skill_popper && skill_popper.reference && t.is($(skill_popper.reference))) {
return;
}
skill_popup.css('display', 'none');
var _t$data$split = t.data('id').split(','),
_t$data$split2 = _slicedToArray(_t$data$split, 2),
servantId = _t$data$split2[0],
skillId = _t$data$split2[1];
skill_popup.html(buildSkill(servant[servantId].skills[skillId].data)).css('display', 'block');
skill_popper = new Popper(event.currentTarget, skill_popup, {
placement: 'right-start'
});
});
document.addEventListener('click', function (event) {
if (!event.target instanceof Element) {
skill_popup.css('display', 'none');
if (skill_popper) {
skill_popper.destroy();
skill_popper = undefined;
}
return;
}
var t = $(event.target);
if (t.parents('#skill-popup').length !== 1 && !t.hasClass('skillIcon')) {
skill_popup.css('display', 'none');
if (skill_popper) {
skill_popper.destroy();
skill_popper = undefined;
}
}
}, true);
{
var clipBoard = new ClipboardJS('#skillCopyUrl');
clipBoard.on('success', function (e) {
alert("链接已复制: " + e.text);
});
clipBoard.on('error', function (e) {
console.error({
copyUrlError: e
});
});
}
U2F();
function myIncludes(s, d, c) {
var _iteratorNormalCompletion13 = true;
var _didIteratorError13 = false;
var _iteratorError13 = undefined;
try {
for (var _iterator13 = servant[s].skills[d]['cate'][Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {
var _et = _step13.value;
if (_et.e === c[1] && _et.t === c[0]) {
return true;
}
}
} catch (err) {
_didIteratorError13 = true;
_iteratorError13 = err;
} finally {
try {
if (!_iteratorNormalCompletion13 && _iterator13["return"] != null) {
_iterator13["return"]();
}
} finally {
if (_didIteratorError13) {
throw _iteratorError13;
}
}
}
return false;
}
function filter() {
var cond = [];
var _iteratorNormalCompletion14 = true;
var _didIteratorError14 = false;
var _iteratorError14 = undefined;
try {
for (var _iterator14 = tbody.find('.filter-row')[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
var e = _step14.value;
var tar = $(e).find('.target');
if (targets.includes(tar.val())) {
tar.removeClass('border-red');
} else {
tar.addClass('border-red');
return;
}
var eff = $(e).find('.effect');
if (Object.keys(effects2targets).includes(eff.val())) {
eff.removeClass('border-red');
} else {
eff.addClass('border-red');
return;
}
cond.push([tar.val(), eff.val()]);
}
} catch (err) {
_didIteratorError14 = true;
_iteratorError14 = err;
} finally {
try {
if (!_iteratorNormalCompletion14 && _iterator14["return"] != null) {
_iterator14["return"]();
}
} finally {
if (_didIteratorError14) {
throw _iteratorError14;
}
}
}
console.log(cond);
{
var _temp = [];
for (var _i2 = 0, _cond = cond; _i2 < _cond.length; _i2++) {
var c = _cond[_i2];
_temp.push(targets.indexOf(c[0]).toString(2).padStart(3, '0'));
_temp.push(effects.indexOf(c[1]).toString(2).padStart(7, '0'));
}
F2U(_temp.join(''));
}
if (cond.length === 0) {
result_tbody.html('');
return;
}
var resultObj = {};
for (var s in servant) {
for (var d in servant[s].skills) {
var flag = true;
var _iteratorNormalCompletion15 = true;
var _didIteratorError15 = false;
var _iteratorError15 = undefined;
try {
for (var _iterator15 = cond[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {
var _c = _step15.value;
if (!myIncludes(s, d, _c)) {
flag = false;
break;
}
}
} catch (err) {
_didIteratorError15 = true;
_iteratorError15 = err;
} finally {
try {
if (!_iteratorNormalCompletion15 && _iterator15["return"] != null) {
_iterator15["return"]();
}
} finally {
if (_didIteratorError15) {
throw _iteratorError15;
}
}
}
if (flag) {
(resultObj[s] = resultObj[s] || new Set()).add(d);
}
}
}
console.log(resultObj);
var svt = 0;
var skill = 0;
var temp = "<tr><th style=\"width:20px\">No.</th><th style=\"width:70px;\">\u5934\u50CF</th><th style=\"width:210px\">\u540D\u79F0</th><th>\u6280\u80FD</th></tr>";
for (var i in resultObj) {
++svt;
var _iteratorNormalCompletion16 = true;
var _didIteratorError16 = false;
var _iteratorError16 = undefined;
try {
for (var _iterator16 = resultObj[parseInt(i)][Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) {
var j = _step16.value;
++skill;
temp += "<tr><td>".concat(i, "</td><td><a href=\"/w/").concat(servant[i]['name'], "\"><img class=\"svt-icon\" alt=\"").concat(servant[i]['name'], "\" src=\"").concat(servant[i]['path'], "\"></a></td><td><a href=\"/w/").concat(servant[i]['name'], "\">").concat(servant[i].name, "</a><br/><br/><span>").concat(servant[i].skills[j].data[2], "</span></td><td>").concat(buildSkill(servant[i].skills[j].data), "</td>");
}
} catch (err) {
_didIteratorError16 = true;
_iteratorError16 = err;
} finally {
try {
if (!_iteratorNormalCompletion16 && _iterator16["return"] != null) {
_iterator16["return"]();
}
} finally {
if (_didIteratorError16) {
throw _iteratorError16;
}
}
}
}
count.html("\u5171".concat(svt, "\u4E2A\u4ECE\u8005,").concat(skill, "\u4E2A\u6280\u80FD"));
result_tbody.html(temp);
}
function buildSkill(arr) {
function build(arr) {
var temp = [];
var i = 5;
while (i < arr.length) {
arr[i] = arr[i].replace(/'.*?UNIQ--ref-.*?-QINU.*?'/, '');
if ((i - 5) % 11 === 0) {
temp.push("<tr><th colspan=\"10\">".concat(arr[i].replace(/<span class="tl-splink">(.*?)<\/span>/g, '$1').replace(/\[\[(.*?)\|(.*?)]]\[\[分类:(对|在)〔.*?〕具有特殊效果]]/g, "<span class=\"tl-splink\"><a href=\"/w/$1\" title=\"$1\">$2</a></span>"), "</th></tr><tr>"));
++i;
} else {
var tempArr = arr.slice(i, i + 10);
i += 10;
if (tempArr[1] === '') {
temp.push("<td colspan=\"10\">".concat(tempArr[0], "</td>"));
} else {
tempArr.forEach(function (val) {
temp.push("<td style=\"width:".concat(isMobile ? '38px' : '75px', "\">").concat(val, "</td>"));
});
}
temp.push('</tr>');
}
}
temp.push("</tr>");
return temp.join('');
}
return "<table class=\"wikitable logo\" style=\"text-align:center;width:".concat(isMobile ? '370' : '750', "px;margin:0\"><tbody><tr><th rowspan=\"2\" style=\"width:75px\"><a href=\"/w/\u6587\u4EF6:").concat(arr[1], ".png\" class=\"image\"><img alt=\"").concat(arr[1], "\" width=\"60\" height=\"60\" src=\"").concat(icon[arr[1]], "\"></a></th><th colspan=\"6\" style=\"width:450px\">").concat(arr[2], "</th><th rowspan=\"2\" colspan=\"3\" style=\"width:225px\">\u5145\u80FD\u65F6\u95F4\uFF1A").concat(arr[4], "\u2192<span style=\"color:red;\">").concat(parseInt(arr[4]) - 1, "</span>\u2192<span style=\"color:red;\">").concat(parseInt(arr[4]) - 2, "</span></th></tr><tr><td colspan=\"6\" lang=\"ja\">").concat(arr[3], "</td></tr>").concat(build(arr), "</tbody></table>");
}
function F2U(str) {
str = str.padEnd(Math.ceil(str.length / 6) * 6, '0');
var arr = [];
for (var i = 0; i < str.length; i = i + 6) {
arr.push(_keyStr[parseInt(str.slice(i, i + 6), 2)]);
}
var b64 = arr.join('');
url.attr('value', "http://fgo.wiki/w/SvtSkill?f=".concat(b64));
}
function U2F() {
var u = new URLSearchParams(window.location.search).get('f');
if (!u) {
return;
}
var binArr = [];
for (var i = 0; i < u.length; i++) {
binArr = binArr.concat(_keyStr.indexOf(u[i]).toString(2).padStart(6, '0').split(''));
}
var temp = "";
while (binArr.length >= 10) {
var tar = binArr.splice(0, 3);
var eff = binArr.splice(0, 7);
tar = targets[parseInt(tar.join(''), 2)];
eff = effects[parseInt(eff.join(''), 2)];
if (binArr.length >= 10) {
temp += "<tr class=\"filter-row\" id=\"last-filter-row\"><td><span class=\"label\">\u4F5C\u7528\u5BF9\u8C61</span><input type=\"text\" value=\"".concat(tar, "\" class=\"target\" ").concat(isMobile ? 'readonly' : '', "></td><td><span class=\"label\">\u4F5C\u7528\u6548\u679C</span><input type=\"text\" value=\"").concat(eff, "\" class=\"effect\" ").concat(isMobile ? 'readonly' : '', "></td><td><button class=\"remove\">\u5220\u9664</button></td><td></td></tr>");
} else {
temp += "<tr class=\"filter-row\" id=\"last-filter-row\"><td><span class=\"label\">\u4F5C\u7528\u5BF9\u8C61</span><input type=\"text\" value=\"".concat(tar, "\" class=\"target\" ").concat(isMobile ? 'readonly' : '', "></td><td><span class=\"label\">\u4F5C\u7528\u6548\u679C</span><input type=\"text\" value=\"").concat(eff, "\" class=\"effect\" ").concat(isMobile ? 'readonly' : '', "></td><td><button class=\"remove\">\u5220\u9664</button></td><td><button class=\"add\">\u65B0\u589E</button></td></tr>");
}
}
tbody.find('.filter-row').remove();
tbody.append(temp);
if (tbody.find('tr').length === 2) {
$('#last-filter-row').find('.remove').attr("disabled", "disabled");
}
filter();
}
});