From 9b893573cf58a2b963a17bee3c918a1da2fde017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Sat, 1 Feb 2020 16:07:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script.js | 46 ++++++++++------------------ universal_function.js | 71 +++++++++++++++++++++---------------------- 2 files changed, 51 insertions(+), 66 deletions(-) diff --git a/script.js b/script.js index 38f1de73..f17f9c6b 100644 --- a/script.js +++ b/script.js @@ -137,7 +137,7 @@ var Formation = function(teamCount,memberCount){ this.detail = ""; this.teams = []; this.badge = 0; - for (var ti=0;ti{return new MemberTeam();}), - Array.from(new Array(4)).map(()=>{return new MemberAssist();}) - ];*/ + { //从1人到2人 formation.teams[1] = [[],[]]; //把右边的队长加到第二支队伍最后面 formation.teams[1][0].splice(0,0,formation.teams[0][0].splice(5,1)[0]); formation.teams[1][1].splice(0,0,formation.teams[0][1].splice(5,1)[0]); - }else //三人则直接删除 - { + }else + { //从3人到2人,直接删除后面两个队伍 //删掉第3支开始的队伍 formation.teams.splice(2); //删掉前面两支队伍的战友 @@ -259,18 +254,9 @@ function turnPage(toPage) break; case 3: if (formation.teams.length<2) - { - //创建第二支队伍,各4个空的 - /*formation.teams[1] = [ - Array.from(new Array(6)).map(()=>{return new MemberTeam();}), - Array.from(new Array(6)).map(()=>{return new MemberAssist();}) - ]; - formation.teams[2] = [ - Array.from(new Array(6)).map(()=>{return new MemberTeam();}), - Array.from(new Array(6)).map(()=>{return new MemberAssist();}) - ];*/ - }else //2人 - { + { //从1人到3人 + }else + { //从2人到3人 formation.teams[0][0].push(formation.teams[1][0][0]); formation.teams[0][1].push(formation.teams[1][1][0]); formation.teams[1][0].push(formation.teams[0][0][0]); @@ -319,7 +305,7 @@ window.onload = function() languageList[0]; //没有找到指定语言的情况下,自动用第一个语言(英语) document.head.querySelector("#language-css").href = "languages/"+currentLanguage.i18n+".css"; - let langOptionArray = Array.prototype.slice.call(langSelectDom.options); + const langOptionArray = Array.prototype.slice.call(langSelectDom.options); langOptionArray.some(function(langOpt){ if (langOpt.value == currentLanguage.i18n) { @@ -1640,7 +1626,7 @@ function editBoxChangeMonId(id) evoCardUl.style.display = "none"; evoCardUl.innerHTML = ""; //据说直接清空HTML性能更好 - let evoLinkCardsIdArray = Cards.filter(function(m){ + const evoLinkCardsIdArray = Cards.filter(function(m){ return m.evoRootId == card.evoRootId; }).map(function(m){return m.id;}); //筛选出相同进化链的 @@ -1660,7 +1646,7 @@ function editBoxChangeMonId(id) evoCardUl.style.display = "block"; } - let mType = monInfoBox.querySelectorAll(".monster-type li"); + const mType = monInfoBox.querySelectorAll(".monster-type li"); for (let ti=0;ti0) if (card.superAwakenings.length>0) //武器上也还是加入超觉醒吧 { @@ -1718,13 +1704,13 @@ function editBoxChangeMonId(id) const rowPlus = settingBox.querySelector(".row-mon-plus"); const rowLatent = settingBox.querySelector(".row-mon-latent"); const monLatentAllowUl = rowLatent.querySelector(".m-latent-allowable-ul"); - //该宠Type允许的杀 - let allowLatent = uniq(card.types.reduce(function (previous, t, index, array) { + //该宠Type允许的杀,uniq是去重的自定义函数 + const allowLatent = uniq(card.types.reduce(function (previous, t, index, array) { return previous.concat(type_allowable_latent[t]); },[])); for(let li=17;li<=24;li++) //显示允许的杀,隐藏不允许的杀 { - var latentDom = monLatentAllowUl.querySelector(".latent-icon-" + li); + const latentDom = monLatentAllowUl.querySelector(".latent-icon-" + li); if (allowLatent.indexOf(li)>=0) { if(latentDom.classList.contains("unselected-latent")) @@ -1786,7 +1772,7 @@ function editBoxChangeMonId(id) if (editBox.isAssist) { - var btnDone = editBox.querySelector(".button-done"); + const btnDone = editBox.querySelector(".button-done"); if (!card.canAssist) { btnDone.classList.add("cant-assist"); @@ -1898,7 +1884,7 @@ function refreshTeamAwokenCount(awokenDom,team){ ali.classList.add("display-none"); } const bigAwoken = [52,53,56,68,69,70]; //等于几个小觉醒的大觉醒 - for (var ai=1;ai<=72;ai++) + for (let ai=1;ai<=72;ai++) { const aicon = awokenUL.querySelector(".awoken-" + ai); if (!aicon) continue; diff --git a/universal_function.js b/universal_function.js index e2215996..8791d49f 100644 --- a/universal_function.js +++ b/universal_function.js @@ -15,33 +15,32 @@ const type_allowable_latent = { "8":[17,20,21,24],//8机械 }; //仿GM_xmlhttpRequest函数v1.3 -if (typeof(GM_xmlhttpRequest) == "undefined") { - var GM_xmlhttpRequest = function(GM_param) { - var xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象 - xhr.open(GM_param.method, GM_param.url, true); - if (GM_param.responseType) xhr.responseType = GM_param.responseType; - if (GM_param.overrideMimeType) xhr.overrideMimeType(GM_param.overrideMimeType); - xhr.onreadystatechange = function() //设置回调函数 - { - if (xhr.readyState === xhr.DONE) { //请求完成时 - if (xhr.status === 200 && GM_param.onload) //正确加载时 - { - GM_param.onload(xhr); - } - if (xhr.status !== 200 && GM_param.onerror) //发生错误时 - { - GM_param.onerror(xhr); - } +const GM_xmlhttpRequest = function(GM_param) { + const xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象 + xhr.open(GM_param.method, GM_param.url, true); + if (GM_param.responseType) xhr.responseType = GM_param.responseType; + if (GM_param.overrideMimeType) xhr.overrideMimeType(GM_param.overrideMimeType); + xhr.onreadystatechange = function() //设置回调函数 + { + if (xhr.readyState === xhr.DONE) { //请求完成时 + if (xhr.status === 200 && GM_param.onload) //正确加载时 + { + GM_param.onload(xhr); } - }; - //添加header - for (var header in GM_param.headers) { - xhr.setRequestHeader(header, GM_param.headers[header]); - } - //发送数据 - xhr.send(GM_param.data ? GM_param.data : null); - }; -} + if (xhr.status !== 200 && GM_param.onerror) //发生错误时 + { + GM_param.onerror(xhr); + } + } + }; + //添加header + for (let header in GM_param.headers) { + xhr.setRequestHeader(header, GM_param.headers[header]); + } + //发送数据 + xhr.send(GM_param.data ? GM_param.data : null); +}; + //数字补前导0 function PrefixInteger(num, length) { @@ -49,12 +48,12 @@ function PrefixInteger(num, length) } //获取URL参数 function getQueryString(name,url) { - var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); - var search = url || window.location.search.substr(1); - var r = search.match(reg); + const reg = new RegExp(`(?:^|&)${name}=([^&]*)(?:&|$)`, "i"); + const searchStr = url || location.search.substr(1); + const r = searchStr.match(reg); if (r != null) { - return decodeURIComponent(r[2]); + return decodeURIComponent(r[1]); }else { return null; @@ -66,10 +65,10 @@ function getQueryString(name,url) { * 实现思路:获取没重复的最右一值放入新数组。 * (检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断)*/ function uniq(array){ - var temp = []; - var l = array.length; - for(var i = 0; i < l; i++) { - for(var j = i + 1; j < l; j++){ + let temp = []; + const l = array.length; + for(let i = 0; i < l; i++) { + for(let j = i + 1; j < l; j++){ if (array[i] === array[j]){ i++; j = i; @@ -83,13 +82,13 @@ function uniq(array){ function usedHole(latent) { return latent.reduce(function(previous,current){ - return previous + (current>= 12?2:1); + return previous + (current>= 12?2:1); //12号以后都是2格的潜觉 },0); } //计算所有队伍中有多少个该觉醒 function awokenCountInFormation(formationTeams,awokenIndex,solo) { - var formationAwokenCount = formationTeams.reduce(function(previous,team){ + const formationAwokenCount = formationTeams.reduce(function(previous,team){ return previous + awokenCountInTeam(team,awokenIndex,solo); },0); return formationAwokenCount;