Browse Source

优化代码

tags/v8.0
枫谷剑仙 6 years ago
parent
commit
9b893573cf
2 changed files with 51 additions and 66 deletions
  1. +16
    -30
      script.js
  2. +35
    -36
      universal_function.js

+ 16
- 30
script.js View File

@@ -137,7 +137,7 @@ var Formation = function(teamCount,memberCount){
this.detail = "";
this.teams = [];
this.badge = 0;
for (var ti=0;ti<teamCount;ti++)
for (let ti=0;ti<teamCount;ti++)
{
const team = [[],[]];
for (let mi=0;mi<memberCount;mi++)
@@ -234,18 +234,13 @@ function turnPage(toPage)
break;
case 2:
if (formation.teams.length<2)
{
//创建第二支队伍,各4个空的
/*formation.teams[1] = [
Array.from(new Array(4)).map(()=>{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;ti<mType.length;ti++)
{
if (ti<card.types.length)
@@ -1689,7 +1675,7 @@ function editBoxChangeMonId(id)

//超觉醒
const mSAwokenRow = settingBox.querySelector(".row-mon-super-awoken");
let mSAwoken = mSAwokenRow.querySelectorAll(".awoken-ul li");
const mSAwoken = mSAwokenRow.querySelectorAll(".awoken-ul li");
//if (!editBox.isAssist && card.superAwakenings.length>0)
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;


+ 35
- 36
universal_function.js View File

@@ -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;


Loading…
Cancel
Save