1、修复协力网页的BUG

2、增加可否辅助搜索
3、增加系列搜索
This commit is contained in:
枫谷剑仙 2020-02-24 02:22:05 +08:00
parent 4c032bacb3
commit 9368734449
12 changed files with 530 additions and 30 deletions

View File

@ -68,11 +68,14 @@
.monsterinfo-box .monster-cost::before{
content: "COST:";
}
.monsterinfo-box .monster-collabId::before{
.monsterinfo-box .monster-seriesId::before{
content: "Series ID";
}
.monsterinfo-box .monster-collabId::before{
content: "Collab ID";
}
.monsterinfo-box .monster-altName::before{
content: "Series name";
content: "Alternative Name";
}
.edit-box .setting-box .row-mon-level::before{
content: "▼Monster Level";
@ -251,6 +254,9 @@
.search-box .consider-equivalent-awoken-label::after{
content: "Search for Equivalent Awoken";
}
.search-box .can-assist-label::after{
content: "Can be assist";
}
.search-box .include-super-awoken-label::after{
content: "Including Super Awoken";
}

View File

@ -67,11 +67,14 @@
.monsterinfo-box .monster-cost::before{
content: "コスト:";
}
.monsterinfo-box .monster-seriesId::before{
content: "シリーズ ID";
}
.monsterinfo-box .monster-collabId::before{
content: "シリーズ ID:";
content: "コラボ ID:";
}
.monsterinfo-box .monster-altName::before{
content: "シリーズの名前:";
content: "別名:";
}
.edit-box .setting-box .row-mon-level::before{
content: "▼モンスターレベル";
@ -244,6 +247,9 @@
.search-box .consider-equivalent-awoken-label::after{
content: "同時に同等の覚醒を検索";
}
.search-box .can-assist-label::after{
content: "アシスト可能";
}
.search-box .include-super-awoken-label::after{
content: "超覚醒を含む";
}

View File

@ -67,11 +67,14 @@
.monsterinfo-box .monster-cost::before{
content: "코스트:";
}
.monsterinfo-box .monster-seriesId::before{
content: "시리즈 ID";
}
.monsterinfo-box .monster-collabId::before{
content: "시리즈 ID:";
content: "콜라보 ID:";
}
.monsterinfo-box .monster-altName::before{
content: "시리즈 이름:";
content: "대체 이름:";
}
.edit-box .setting-box .row-mon-level::before{
content: "▼몬스터 레벨";
@ -244,6 +247,9 @@
.search-box .consider-equivalent-awoken-label::after{
content: "동시에 해당 경계를 각성";
}
.search-box .can-assist-label::after{
content: "지원 할 수 있습니다";
}
.search-box .include-super-awoken-label::after{
content: "슈퍼 각성 포함";
}

View File

@ -988,7 +988,7 @@ function parseSkillDescription(skill)
str += strArr.map(s=>{
return `<a class="detail-search monster-collabId" data-collabId="${s}" onclick="searchColla(this.getAttribute('data-collabId'));">${s}</a>`;
}).join("、");
str += `系列角色时,所有宠物的${getFixedHpAtkRcvString({hp:sk[3],atk:sk[4],rcv:sk[5]})}`;
str += `合作角色时,所有宠物的${getFixedHpAtkRcvString({hp:sk[3],atk:sk[4],rcv:sk[5]})}`;
break;
case 176:
//●◉○◍◯
@ -1194,4 +1194,397 @@ function parseBigNumber(number)
return number.toLocaleString();
}
}
}
//增加特殊搜索模式
(function() {
'use strict';
const specialSearchFunctions = [
{name:"临时的特殊搜索",function:()=>false},
{name:"====主动技====",function:()=>false},
{name:"所有 1 CD",function:()=>Cards.filter(card=>{
if (card.activeSkillId == 0) return false;
const skill = Skills[card.activeSkillId];
return skill.initialCooldown - (skill.maxLevel - 1) <= 1;
})},
{name:"所有换队长",function:()=>Cards.filter(card=>{
const searchType = 93;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有破属吸",function:()=>Cards.filter(card=>{
const searchType = 173;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1])
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1]});
}
})},
{name:"所有破伤吸",function:()=>Cards.filter(card=>{
const searchType = 173;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[3])
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[3]});
}
})},
{name:"所有双破吸",function:()=>Cards.filter(card=>{
const searchType = 173;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1] && skill.params[3])
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1] && subskill.params[3]});
}
})},
{name:"所有贯穿无效盾",function:()=>Cards.filter(card=>{
const searchType = 191;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有解禁消珠",function:()=>Cards.filter(card=>{
const searchType = 196;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有解觉醒",function:()=>Cards.filter(card=>{
const searchType = 117;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[4])
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[4]});
}
})},
{name:"所有解封+觉醒",function:()=>Cards.filter(card=>{
const searchType = 117;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[0] && skill.params[4])
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[0] && subskill.params[4]});
}
})},
{name:"所有解锁",function:()=>Cards.filter(card=>{
const searchType = 172;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有变身",function:()=>Cards.filter(card=>{
const searchType = 202;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有最大值重力",function:()=>Cards.filter(card=>{
const searchType = 161;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"所有宝石姬类技能",function:()=>Cards.filter(card=>{
const searchTypeArray = [156,168];
const skill = Skills[card.activeSkillId];
if (searchTypeArray.some(t=>{return skill.type == t;}))
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return searchTypeArray.some(t=>{return subskill.type == t;});});
}
})},
{name:"所有生成特殊形状的(单独方块见下)",function:()=>Cards.filter(card=>{
const searchType = 176;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType});
}
})},
{name:"临时的特所有生成3x3方块殊搜索",function:()=>Cards.filter(card=>{
function is3x3(sk)
{
for (let si=0;si<3;si++)
{
if (sk[si] === sk[si+1] && sk[si] === sk[si+2] && //3行连续相等
(si>0?(sk[si-1] & sk[si]) ===0:true) && //如果上一行存在,并且无交集(and为0)
(si+2<4?(sk[si+3] & sk[si]) ===0:true) && //如果下一行存在,并且无交集(and为0)
(sk[si] === 7 || sk[si] === 7<<1 || sk[si] === 7<<2 || sk[si] === 7<<3) //如果这一行满足任意2珠并联二进制111=十进制7
)
return true;
}
return false;
}
const searchType = 176;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && is3x3(skill.params))
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && is3x3(subskill.params)});
}
})},
{name:"所有花火(按进化树排列)",function:()=>Cards.filter(card=>{
function isOnly1(sk)
{
if (sk.length<2 || sk.indexOf(-1)==1) return true;
else return false;
}
const searchType = 71;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && isOnly1(skill.params))
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && isOnly1(subskill.params)});
}
}).sort((a,b)=>{//优先按技能排列,其次按进化树排列
return (a.activeSkillId - b.activeSkillId) || (a.evoRootId - b.evoRootId);
})},
{name:"所有顶毒",function:()=>Cards.filter(card=>{
const searchType = 126;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && (skill.params[0] & 960) > 0) // 960 = 二进制 1111000000
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && (subskill.params[0] & 960) > 0});
}
})},
{name:"所有99回合掉落",function:()=>Cards.filter(card=>{
const searchType = 126;
const skill = Skills[card.activeSkillId];
if (skill.type == searchType && skill.params[1] >= 99) // 960 = 二进制 1111000000
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[1] >= 99});
}
})},
{name:"====队长技====",function:()=>false},
{name:"所有普通追打",function:()=>Cards.filter(card=>{
const searchType = 12;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"所有固伤追击",function:()=>Cards.filter(card=>{
const searchTypeArray = [199,200,201];
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>{return skill.type == t;}))
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return searchTypeArray.some(t=>{return subskill.type == t;});});
}
})},
{name:"所有队长+C按+C数从小到大排列",function:()=>Cards.filter(card=>{
const searchTypeArray = [192,194];
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>{return skill.type == t && skill.params[3]>0;}))
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>Skills[id]);
return subskills.some(subskill=>{return searchTypeArray.some(t=>{return subskill.type == t && subskill.params[3]>0;});});
}
}).sort((a,b)=>{
const searchTypeArray = [192,194];
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
let a_pC = 0,b_pC = 0;
a_pC = searchTypeArray.some(t => a_s.type === t) ?
a_s.params[3] :
a_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.some(t=>subskill.type === t)).params[3];
b_pC = searchTypeArray.some(t=> b_s.type === t) ?
b_s.params[3] :
b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.some(t=>subskill.type === t)).params[3];
return a_pC - b_pC;
})},
{name:"所有毒无效",function:()=>Cards.filter(card=>{
const searchType = 197;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"所有回血加盾",function:()=>Cards.filter(card=>{
const searchType = 198;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType && skill.params[2])
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[2];});
}
})},
{name:"所有回血解觉",function:()=>Cards.filter(card=>{
const searchType = 198;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType && skill.params[3])
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType && subskill.params[3];});
}
})},
{name:"所有76版",function:()=>Cards.filter(card=>{
const searchTypeArray = [162,186];
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>{return skill.type == t;}))
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return searchTypeArray.some(t=>{return subskill.type == t;});});
}
})},
{name:"所有无天降",function:()=>Cards.filter(card=>{
const searchTypeArray = [163,177];
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>{return skill.type == t;}))
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return searchTypeArray.some(t=>{return subskill.type == t;});});
}
})},
{name:"所有根性",function:()=>Cards.filter(card=>{
const searchType = 14;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"指定队伍队员编号",function:()=>Cards.filter(card=>{
const searchType = 125;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"指定队伍队员合作",function:()=>Cards.filter(card=>{
const searchType = 175;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"指定队伍队员都是像素",function:()=>Cards.filter(card=>{
const searchType = 203;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"增加掉落率",function:()=>Cards.filter(card=>{
const searchType = 53;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"增加金币",function:()=>Cards.filter(card=>{
const searchType = 54;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"增加经验",function:()=>Cards.filter(card=>{
const searchType = 148;
const skill = Skills[card.leaderSkillId];
if (skill.type == searchType)
return true;
else if (skill.type == 138){
const subskills = skill.params.map(id=>{return Skills[id];});
return subskills.some(subskill=>{return subskill.type == searchType;});
}
})},
{name:"====其他搜索====",function:()=>false},
{name:"全部像素进化",function:()=>Cards.filter(card=>{
return card.evoMaterials.indexOf(3826)>=0;
})},
{name:"全部110级三维成长100%",function:()=>Cards.filter(card=>{
return card.limitBreakIncr>=100;
})},
{name:"全部珠子皮肤",function:()=>Cards.filter(card=>{
return card.blockSkinId>0;
})},
{name:"全部8格浅觉",function:()=>Cards.filter(card=>{
return card.is8Latent;
})},
];
const searchBox = editBox.querySelector(".search-box");
const controlDiv = searchBox.querySelector(".control-div");
let fragment = document.createDocumentFragment();
const specialSearch = fragment.appendChild(document.createElement("select"));
specialSearchFunctions.forEach((sfunc,idx)=>{
specialSearch.options.add(new Option(sfunc.name,idx));
});
specialSearch.onchange = function(){
showSearch(specialSearchFunctions[parseInt(this.value,10)].function());
}
controlDiv.appendChild(fragment);
})();

View File

@ -70,11 +70,14 @@
.monsterinfo-box .monster-cost::before{
content: "消耗:";
}
.monsterinfo-box .monster-collabId::before{
.monsterinfo-box .monster-seriesId::before{
content: "系列ID";
}
.monsterinfo-box .monster-collabId::before{
content: "合作ID";
}
.monsterinfo-box .monster-altName::before{
content: "系列名称:";
content: "替代名稱";
}
.edit-box .setting-box .row-mon-level::before{
content: "▼怪物等級";
@ -250,6 +253,9 @@
.search-box .consider-equivalent-awoken-label::after{
content: "同時搜索等效覺醒";
}
.search-box .can-assist-label::after{
content: "可以作爲輔助";
}
.search-box .include-super-awoken-label::after{
content: "包括超覺醒";
}

View File

@ -70,11 +70,14 @@
.monsterinfo-box .monster-cost::before{
content: "消耗:";
}
.monsterinfo-box .monster-collabId::before{
.monsterinfo-box .monster-seriesId::before{
content: "系列ID";
}
.monsterinfo-box .monster-collabId::before{
content: "合作ID";
}
.monsterinfo-box .monster-altName::before{
content: "系列名称:";
content: "替代名称:";
}
.edit-box .setting-box .row-mon-level::before{
content: "▼怪物等级";
@ -250,6 +253,9 @@
.search-box .consider-equivalent-awoken-label::after{
content: "同时搜索等效觉醒";
}
.search-box .can-assist-label::after{
content: "可以作为辅助";
}
.search-box .include-super-awoken-label::after{
content: "包括超觉醒";
}

View File

@ -457,10 +457,13 @@ var formation = new Formation(teamsCount,5);
<li class="type-name"><div class="type-icon"></div></li>
</ul>
<div class="monsterinfo-cell">
<div class="monster-seriesId"></div>
<div class="monster-collabId"></div>
<div class="monster-altName"></div>
</div>
</div>
<div class="monsterinfo-cell">
</div>
</div>
<div class="search-box display-none">
<div class="attrs"><!--属性-->
@ -502,7 +505,7 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="can-assist" class="config-checkbox-ipt" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-43" value="43"></button><button class="count" value="43">0</button></li><!--7c-->
<li class="awoken-count zero"><button class="awoken-icon awoken-61" value="61"></button><button class="count" value="61">0</button></li><!--10c-->
@ -577,6 +580,7 @@ var formation = new Formation(teamsCount,5);
<li class="awoken-count zero"><button class="awoken-icon awoken-71" value="71"></button><button class="count" value="71">0</button></li><!--掉废-->
<li class="awoken-count zero"><button class="awoken-icon awoken-72" value="72"></button><button class="count" value="72">0</button></li><!--掉毒-->
</ul>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="sawoken-div"><!--超觉醒-->
<button class="sawoken-clear" ></button>

View File

@ -635,12 +635,20 @@ function initialize()
};
const smonsterinfoBox = editBox.querySelector(".monsterinfo-box");
const mSeriesId = smonsterinfoBox.querySelector(".monster-seriesId");
mSeriesId.onclick = function(){ //搜索系列
const seriesId = parseInt(this.getAttribute('data-seriesId'),10);
if (seriesId>0)
{
showSearch(Cards.filter(card=>{return card.seriesId == seriesId;}));
}
};
const mCollabId = smonsterinfoBox.querySelector(".monster-collabId");
mCollabId.onclick = function(){ //搜索合作
const collabId = parseInt(this.getAttribute('data-collabId'));
const collabId = parseInt(this.getAttribute('data-collabId'),10);
if (collabId>0);
{
searchColla(this.getAttribute('data-collabId'));
searchColla(collabId);
}
};
const mAltName = smonsterinfoBox.querySelector(".monster-altName");
@ -683,7 +691,7 @@ function initialize()
const s_attr1s = Array.prototype.slice.call(searchBox.querySelectorAll(".attrs .attr-list-1 .attr-radio"));
const s_attr2s = Array.prototype.slice.call(searchBox.querySelectorAll(".attrs .attr-list-2 .attr-radio"));
const s_fixMainColor = searchBox.querySelector(".attrs #fix-main-color");
const s_fixMainColor = searchBox.querySelector("#fix-main-color");
const s_types = Array.prototype.slice.call(searchBox.querySelectorAll(".types-div .type-check"));
const s_awokensItems = Array.prototype.slice.call(searchBox.querySelectorAll(".awoken-div .awoken-count"));
const s_awokensIcons = s_awokensItems.map(it=>{
@ -693,16 +701,18 @@ function initialize()
return it.querySelector(".count");
});
const s_awokensEquivalent = searchBox.querySelector(".awoken-div #consider-equivalent-awoken"); //搜索等效觉醒
const s_awokensEquivalent = searchBox.querySelector("#consider-equivalent-awoken"); //搜索等效觉醒
const s_canAssist = searchBox.querySelector("#can-assist"); //只搜索辅助
const s_sawokenDiv = searchBox.querySelector(".sawoken-div");
const s_sawokens = Array.prototype.slice.call(s_sawokenDiv.querySelectorAll(".sawoken-check"));
const s_includeSuperAwoken = searchBox.querySelector(".awoken-div #include-super-awoken"); //搜索超觉醒
const s_includeSuperAwoken = searchBox.querySelector("#include-super-awoken"); //搜索超觉醒
s_includeSuperAwoken.onclick = function(){
if (this.checked)
s_sawokenDiv.classList.add("display-none");
s_sawokenDiv.classList.add("display-none");
else
s_sawokenDiv.classList.remove("display-none");
s_sawokenDiv.classList.remove("display-none");
}
function search_awokenAdd1()
@ -823,9 +833,10 @@ function initialize()
awokensFilter,
sawokensFilter,
s_awokensEquivalent.checked,
s_canAssist.checked,
s_includeSuperAwoken.checked
);
console.debug("搜索条件:属性[%d,%d],固定主副%s类型%o觉醒%o超觉醒%o等效觉醒%s搜超觉醒%s。\n搜索结果%o",
console.debug("搜索条件:属性[%d,%d],固定主副%s类型%o觉醒%o超觉醒%o等效觉醒%s可做辅助%s搜超觉醒%s。\n搜索结果%o",
attr1,attr2,
s_fixMainColor.checked,
typesFilter,
@ -833,6 +844,7 @@ function initialize()
sawokensFilter,
s_awokensEquivalent.checked,
s_includeSuperAwoken.checked,
s_canAssist.checked,
searchResult
);
showSearch(searchResult);
@ -1014,11 +1026,20 @@ function initialize()
const rowSkill = settingBox.querySelector(".row-mon-skill");
const skillBox = rowSkill.querySelector(".skill-box");
const skillTitle = skillBox.querySelector(".skill-name");
const skillCD = skillBox.querySelector(".skill-cd");
const skillLevel = skillBox.querySelector(".m-skill-level");
const skillLevel_1 = skillBox.querySelector(".m-skill-lv-1");
const skillLevel_Max = skillBox.querySelector(".m-skill-lv-max");
skillTitle.onclick = function(){
const skillId = parseInt(this.getAttribute("data-skillid"),10); //获得当前技能ID
const s_cards = Cards.filter(card=>card.activeSkillId === skillId); //搜索同技能怪物
if (s_cards.length > 1)
{
showSearch(s_cards); //显示
}
}
skillLevel.onchange = function(){
const card = Cards[editBox.mid] || Cards[0]; //怪物固定数据
const skill = Skills[card.activeSkillId];
@ -1381,7 +1402,7 @@ function interchangeCard(formArr,toArr)
if(formArr[1] != toArr[1]) //从武器拖到非武器才改变类型
{
from = changeType(from,formArr[1]);
if (!isCopy) to = ichangeType(to,toArr[1]);
if (!isCopy) to = changeType(to,toArr[1]);
}else if (isCopy)
{
const newFrom = new from.constructor();
@ -1470,6 +1491,13 @@ function changeid(mon,monDom,latentDom)
if (card.canAssist)
{//可以辅助的满觉醒打黄色星星
awokenIcon.classList.add("allowable-assist");
if (card.awakenings.indexOf(49)>=0)
{//武器
awokenIcon.classList.add("wepon");
}else
{
awokenIcon.classList.remove("wepon");
}
}else
{
awokenIcon.classList.remove("allowable-assist");
@ -1478,6 +1506,7 @@ function changeid(mon,monDom,latentDom)
{
awokenIcon.classList.remove("full-awoken");
awokenIcon.classList.remove("allowable-assist");
awokenIcon.classList.remove("wepon");
}
}
@ -1677,6 +1706,16 @@ function editBoxChangeMonId(id)
mExp.innerHTML = card.exp.max;*/
const mName = monInfoBox.querySelector(".monster-name");
mName.innerHTML = returnMonsterNameArr(card, currentLanguage.searchlist, currentDataSource.code)[0];
const mSeriesId = monInfoBox.querySelector(".monster-seriesId");
mSeriesId.innerHTML = card.seriesId;
mSeriesId.setAttribute("data-seriesId",card.seriesId);
if (card.seriesId == 0)
{
mSeriesId.classList.add("display-none");
}else
{
mSeriesId.classList.remove("display-none");
}
const mCollabId = monInfoBox.querySelector(".monster-collabId");
mCollabId.innerHTML = card.collabId;
mCollabId.setAttribute("data-collabId",card.collabId);
@ -1815,6 +1854,7 @@ function editBoxChangeMonId(id)
fragment.appendChild(skillBox);
skillTitle.innerHTML = descriptionToHTML(skill.name);
skillTitle.setAttribute("data-skillid", skill.id);
skillDetail.innerHTML = parseSkillDescription(skill);
const t_maxLevel = card.overlay || card.types.indexOf(15)>=0 ? 1 : skill.maxLevel; //遇到不能升技的最大等级强制为1
skillLevel.max = t_maxLevel;

View File

@ -409,10 +409,13 @@ var formation = new Formation(teamsCount,6);
<li class="type-name"><div class="type-icon"></div></li>
</ul>
<div class="monsterinfo-cell">
<div class="monster-seriesId"></div>
<div class="monster-collabId"></div>
<div class="monster-altName"></div>
</div>
</div>
<div class="monsterinfo-cell">
</div>
</div>
<div class="search-box display-none">
<div class="attrs"><!--属性-->
@ -454,7 +457,7 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="can-assist" class="config-checkbox-ipt" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-43" value="43"></button><button class="count" value="43">0</button></li><!--7c-->
<li class="awoken-count zero"><button class="awoken-icon awoken-61" value="61"></button><button class="count" value="61">0</button></li><!--10c-->
@ -529,6 +532,7 @@ var formation = new Formation(teamsCount,6);
<li class="awoken-count zero"><button class="awoken-icon awoken-71" value="71"></button><button class="count" value="71">0</button></li><!--掉废-->
<li class="awoken-count zero"><button class="awoken-icon awoken-72" value="72"></button><button class="count" value="72">0</button></li><!--掉毒-->
</ul>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="sawoken-div"><!--超觉醒-->
<button class="sawoken-clear" ></button>

View File

@ -105,7 +105,7 @@ body{
width: 20px;
height: 20px;
position: absolute;
transition: .2s ease-out;
transition: .3s ease-out;
background-color: #c6c6c6;
box-shadow: 0 2px 4px 0 #0003;
border-radius: 50%;
@ -276,6 +276,14 @@ ul{
text-shadow: none;
background-position: 0 -38px;
}
/*武器*/
.monster .awoken-count.allowable-assist.wepon{
transform: scale(0.80) translateY(4px);
width:32px;height:32px;
background-image: url(images/awoken.png);
background-position-x: 0;
background-position-y: -1568px;
}
/*怪物-超觉醒*/
.monster .super-awoken{
position: absolute;
@ -633,7 +641,7 @@ ul{
font-family: 'FOT-KurokaneStd-EB', "Malgun Gothic", "맑은 고딕", "Gulim", AppleGothic;
color: white;
text-shadow: black 2px 2px 0;
height: 100px;
min-height: 100px;
margin: 5px 0;
background-image: linear-gradient(#798421,#394914);
border-top: #B1BB39 solid 4px;
@ -899,17 +907,25 @@ ul{
.monsterinfo-box .monster-id{
width:150px;
}
.monsterinfo-box .monster-seriesId,
.monsterinfo-box .monster-collabId,
.monsterinfo-box .monster-altName{
.monsterinfo-box .monster-altName
{
cursor: pointer;
font-size: 14px;
line-height: 16px;
vertical-align: bottom;
max-width: 270px;
/*max-width: 270px;*/
white-space:nowrap;
text-overflow:ellipsis;
overflow:hidden;
}
.monsterinfo-box .monster-seriesId:hover::after,
.monsterinfo-box .monster-collabId:hover::after,
.monsterinfo-box .monster-altName:hover::after
{
content: "🔍";
}
/*.monsterinfo-box .monster-id::before{
content: "No.";
}*/
@ -1155,6 +1171,10 @@ ul{
}
.row-mon-skill .skill-title .skill-name{
color: #84BAFC;
cursor: pointer;
}
.row-mon-skill .skill-title .skill-name:hover::after{
content: "🔍";
}
.row-mon-leader-skill .skill-title::before{
/*content: "隊長技能";*/

View File

@ -1043,10 +1043,13 @@ var formation = new Formation(teamsCount,6);
<li class="type-name"><div class="type-icon"></div></li>
</ul>
<div class="monsterinfo-cell">
<div class="monster-seriesId"></div>
<div class="monster-collabId"></div>
<div class="monster-altName"></div>
</div>
</div>
<div class="monsterinfo-cell">
</div>
</div>
<div class="search-box display-none">
<div class="attrs"><!--属性-->
@ -1088,7 +1091,7 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="can-assist" class="config-checkbox-ipt" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-43" value="43"></button><button class="count" value="43">0</button></li><!--7c-->
<li class="awoken-count zero"><button class="awoken-icon awoken-61" value="61"></button><button class="count" value="61">0</button></li><!--10c-->
@ -1163,6 +1166,7 @@ var formation = new Formation(teamsCount,6);
<li class="awoken-count zero"><button class="awoken-icon awoken-71" value="71"></button><button class="count" value="71">0</button></li><!--掉废-->
<li class="awoken-count zero"><button class="awoken-icon awoken-72" value="72"></button><button class="count" value="72">0</button></li><!--掉毒-->
</ul>
<input type="checkbox" name="include-super-awoken" class="config-checkbox-ipt" id="include-super-awoken"><label class="config-checkbox-lbl include-super-awoken-label" for="include-super-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="sawoken-div"><!--超觉醒-->
<button class="sawoken-clear" ></button>

View File

@ -294,9 +294,14 @@ function calculateAbility(member = null, assist = null, solo = true)
return abilitys;
}
//搜索卡片用
function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equalAk,incSawoken)
function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equalAk,canAssist,incSawoken)
{
let cardsRange = cards;
//是否允许作为辅助
if (canAssist)
{
cardsRange = cardsRange.filter(c=>c.canAssist);
}
//属性
if (attr1 != null && attr1 === attr2)
{ //当两个颜色相同时,主副一样颜色的只需判断一次
@ -328,7 +333,6 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equal
cardsRange = cardsRange.filter(c=>types.some(t=>c.types.indexOf(t)>=0));
}
//觉醒
//等效觉醒时,事先去除大觉醒
if (equalAk)
{
@ -376,6 +380,7 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equal
});
});
}
//超觉醒
if (sawokens.length>0 && !incSawoken)
{