重新修订快速开关

This commit is contained in:
枫谷剑仙 2022-11-27 22:29:06 +08:00
parent e3f33091ac
commit 9b1f6ecfaf
14 changed files with 114 additions and 177 deletions

View File

@ -345,9 +345,6 @@ label[for="default-level"]::after
.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";
}
@ -413,9 +410,16 @@ label[for="default-level"]::after
.search-box .fast-switch::before {
content: "Quick switch:";
}
label[for="no-henshin"]::after
label[for="can-assist"]::after{
content: "Can be assist";
}
label[for="can-level-limit-breakthrough"]::after
{
content: "Not Henshin";
content: "Level limit can be Breakthrough";
}
label[for="have-8-latent-slot"]::after
{
content: "Have 8 latent blocks";
}
label[for="box-have"]::after
{

View File

@ -1,34 +0,0 @@
@charset "utf-8";
/*Some icons, style different from the Japanese version*/
.awoken-icon[data-awoken-icon='40'],
.awoken-icon[data-awoken-icon='46'],
.awoken-icon[data-awoken-icon='47'],
.awoken-icon[data-awoken-icon='48'],
.type-icon[data-type-icon='12'],
.type-icon[data-type-icon='9']
{
background-position-x: -32px;
}
.latent-icon[data-latent-icon='17']::before,
.latent-icon[data-latent-icon='37']::before,
.latent-icon[data-latent-icon='39']::before,
.team-latents .latent-icon[data-latent-icon='37']+.latent-icon::before,
.team-latents .latent-icon[data-latent-icon='39']+.latent-icon::before
{
background-position-x: -32px;
}
.tIf-total-hp .awoken-bind::before,
.tIf-total-move .awoken-bind::before,
.tIf-total-hp .reduce .reduce-scale::before
{
background-position-x: -20px;
}
.icon-skill[data-icon-type="mass-attack"],
.icon-skill[data-icon-type="unbind-awakenings"],
.icon-skill[data-icon-type="reduce-damage"],
.icon-skill[data-icon-type="damage-absorb"],
.icon-skill[data-icon-type="damage-void"]
{
background-position-x: -36px;
}

View File

@ -1,14 +0,0 @@
@charset "utf-8";
/*Some icons, style different from the Japanese version*/
.awoken-icon[data-awoken-icon='46'],
.awoken-icon[data-awoken-icon='47']
{
background-position-x: calc(-32px * 2);
}
.badge[data-badge-icon='1']::before,
.badge[data-badge-icon='10']::before,
.badge[data-badge-icon='20']::before,
.badge[data-badge-icon='51']::before
{
background-position-x: calc(-36px * 3);
}

View File

@ -339,9 +339,6 @@ label[for="default-level"]::after
.search-box .consider-equivalent-awoken-label::after{
content: "同時に同等の覚醒を検索";
}
.search-box .can-assist-label::after{
content: "アシスト可能";
}
.search-box .include-super-awoken-label::after{
content: "超覚醒を含む";
}
@ -407,9 +404,16 @@ label[for="default-level"]::after
.search-box .fast-switch::before {
content: "クイックスイッチ:";
}
label[for="no-henshin"]::after
label[for="can-assist"]::after{
content: "アシスト可能";
}
label[for="can-level-limit-breakthrough"]::after
{
content: "非変身";
content: "レベル限界突破可能";
}
label[for="have-8-latent-slot"]::after
{
content: "8格潜在覚醒";
}
label[for="box-have"]::after
{

View File

@ -125,7 +125,7 @@
content: "코스트:";
}
.edit-box .setting-box .row-mon-latent details>summary::before{
content: "몬스터 숨어있는";
content: "괴물 잠잠";
}
.skill-box .skill-cd::before,
@ -335,9 +335,6 @@ label[for="default-level"]::after
.search-box .consider-equivalent-awoken-label::after{
content: "동시에 해당 경계를 각성";
}
.search-box .can-assist-label::after{
content: "지원 할 수 있습니다";
}
.search-box .include-super-awoken-label::after{
content: "슈퍼 각성 포함";
}
@ -403,13 +400,16 @@ label[for="default-level"]::after
.search-box .fast-switch::before {
content: "빠른 스위치:";
}
label[for="no-henshin"]::after
{
content: "비변신";
label[for="can-assist"]::after{
content: "지원 할 수 있습니다";
}
label[for="box-have"]::after
label[for="can-level-limit-breakthrough"]::after
{
content: "상자에 있는 것을 강조합니다";
content: "레벨 제한 돌파 가능";
}
label[for="have-8-latent-slot"]::after
{
content: "8 블록 잠잠";
}
.special-div .special-add::before {
content: "";

View File

@ -343,9 +343,6 @@ label[for="default-level"]::after
.search-box .consider-equivalent-awoken-label::after{
content: "同時搜索等效覺醒";
}
.search-box .can-assist-label::after{
content: "可以作爲輔助";
}
.search-box .include-super-awoken-label::after{
content: "包括超覺醒";
}
@ -411,9 +408,16 @@ label[for="default-level"]::after
.search-box .fast-switch::before {
content: "快速開關:";
}
label[for="no-henshin"]::after
label[for="can-assist"]::after{
content: "可以作爲輔助";
}
label[for="can-level-limit-breakthrough"]::after
{
content: "非變身";
content: "可以突破等級上限";
}
label[for="have-8-latent-slot"]::after
{
content: "有8格潛覺";
}
label[for="box-have"]::after
{

View File

@ -340,9 +340,6 @@ label[for="default-level"]::after
.search-box .consider-equivalent-awoken-label::after{
content: "同时搜索等效觉醒";
}
.search-box .can-assist-label::after{
content: "可以作为辅助";
}
.search-box .include-super-awoken-label::after{
content: "包括超觉醒";
}
@ -408,9 +405,16 @@ label[for="default-level"]::after
.search-box .fast-switch::before {
content: "快速开关:";
}
label[for="no-henshin"]::after
label[for="can-assist"]::after{
content: "可以作为辅助";
}
label[for="can-level-limit-breakthrough"]::after
{
content: "非变身";
content: "可以突破等级上限";
}
label[for="have-8-latent-slot"]::after
{
content: "有8格潜觉";
}
label[for="box-have"]::after
{

View File

@ -1055,7 +1055,8 @@ var formation = new Formation(teamsCount,5);
</div>
<div class="fast-switch">
<input type="checkbox" name="can-assist" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"></label>
<input type="checkbox" name="no-henshin" id="no-henshin"><label class="config-checkbox-lbl" for="no-henshin"></label>
<input type="checkbox" name="can-level-limit-breakthrough" id="can-level-limit-breakthrough"><label class="config-checkbox-lbl" for="can-level-limit-breakthrough"></label>
<input type="checkbox" name="have-8-latent-slot" id="have-8-latent-slot"><label class="config-checkbox-lbl" for="have-8-latent-slot"></label>
</div>
<div class="control-div"><!--控制栏-->
<button class="search-start"><!--开始搜索--></button>

View File

@ -2031,7 +2031,13 @@ const specialSearchFunctions = (function() {
const searchTypeArray = [93, 227];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
})
}),
addition:card=>{
const searchTypeArray = [93, 227];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
return skill.type == 93 ? '换自身' : '换最后队员';
}
},
{name:"Increase Damage Cap",otLangName:{chs:"增加伤害上限 buff",cht:"增加傷害上限 buff"},
function:cards=>{
@ -3727,64 +3733,13 @@ const specialSearchFunctions = (function() {
}
})
},
/*
{name:"3 same Killer Awoken, or 2 with same latent",otLangName:{chs:"3个相同杀觉醒或2个杀觉醒并可打相同潜觉",cht:"3個相同殺覺醒或2個殺覺醒並可打相同潛覺"},
function:cards=>cards.filter(card=>{
const hasAwokenKiller = typekiller_for_type.find(type=>card.awakenings.filter(ak=>ak===type.awoken).length>=2);
if (hasAwokenKiller)
{ //大于2个杀的进行判断
if (card.awakenings.filter(ak=>ak===hasAwokenKiller.awoken).length>=3)
{ //大于3个杀的直接过
return true;
}else
{ //2个杀的
const isAllowLatent = card.types.filter(i=>
i>=0 //去掉-1的type
).map(type=>
type_allowable_latent[type] //得到允许打的潜觉杀
).some(ls=>
ls.includes(hasAwokenKiller.latent) //判断是否有这个潜觉杀
);
return isAllowLatent
}
}else
{
return false;
}
})
},
{name:"4 same Killer Awoken(include super awoken), or 3 with same latent",otLangName:{chs:"4个相同杀觉醒含超觉或相同潜觉",cht:"4個相同殺覺醒含超覺或相同潛覺"},
function:cards=>cards.filter(card=>{
const hasAwokenKiller = typekiller_for_type.find(type=>card.awakenings.filter(ak=>ak===type.awoken).length+(card.superAwakenings.includes(type.awoken)?1:0)>=3);
if (hasAwokenKiller)
{ //大于2个杀的进行判断
if (card.awakenings.filter(ak=>ak===hasAwokenKiller.awoken).length+(card.superAwakenings.includes(hasAwokenKiller.awoken)?1:0)>=4)
{ //大于3个杀的直接过
return true;
}else
{ //2个杀的
const isAllowLatent = card.types.filter(i=>
i>=0 //去掉-1的type
).map(type=>
type_allowable_latent[type] //得到允许打的潜觉杀
).some(ls=>
ls.includes(hasAwokenKiller.latent) //判断是否有这个潜觉杀
);
return isAllowLatent
}
}else
{
return false;
}
})
},
{name:"8P dedicated hostile skills",otLangName:{chs:"8P专用敌对技能",cht:"8P專用敵對技能"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [1000];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
})
},*/
// {name:"8P dedicated hostile skills",otLangName:{chs:"8P专用敌对技能",cht:"8P專用敵對技能"},
// function:cards=>cards.filter(card=>{
// const searchTypeArray = [1000];
// const skill = getCardActiveSkill(card, searchTypeArray);
// return skill;
// })
// },
]},
{group:true,name:"======Others Search======",otLangName:{chs:"======其他搜索======",cht:"======其他搜索======"}, functions: [
{name:"Water Att. & Attacker Type(Tanjiro)",otLangName:{chs:"攻击型或水属性(炭治郎队员)",cht:"攻擊型或水屬性(炭治郎隊員)"},
@ -3796,9 +3751,6 @@ const specialSearchFunctions = (function() {
{name:"Level limit unable break",otLangName:{chs:"不能突破等级限制",cht:"不能突破等級限制"},
function:cards=>cards.filter(card=>card.limitBreakIncr===0)
},
{name:"Able to lv110",otLangName:{chs:"能突破等级限制",cht:"能突破等級限制"},
function:cards=>cards.filter(card=>card.limitBreakIncr > 0)
},
{name:"Able to lv110, but no Super Awoken",otLangName:{chs:"能突破等级限制但没有超觉醒",cht:"能突破等級限制但沒有超覺醒"},
function:cards=>cards.filter(card=>card.limitBreakIncr > 0 && card.superAwakenings.length == 0)
},

View File

@ -676,10 +676,11 @@ function calculateAbility_max(id, solo, teamsCount, maxLevel = 110) {
}
}
//搜索卡片用
function searchCards(cards, attr1, attr2, fixMainColor, types, typeAndOr, rares, awokens, sawokens, equalAk, incSawoken, canAssist, noHenshin) {
function searchCards({cards, attr1, attr2, fixMainColor, types, typeAndOr, rares, awokens, sawokens, equalAk, incSawoken, canAssist, canLv110, is8Latent}) {
let cardsRange = cards.concat(); //这里需要复制一份原来的数组不然若无筛选后面的排序会改变初始Cards
if (canAssist) cardsRange = cardsRange.filter(card=>card.canAssist);
if (noHenshin) cardsRange = cardsRange.filter(card=>!Array.isArray(card.henshinFrom) || card.limitBreakIncr);
if (canLv110) cardsRange = cardsRange.filter(card=>card.limitBreakIncr>0);
if (is8Latent) cardsRange = cardsRange.filter(card=>card.is8Latent);
//属性
if (attr1 != null && attr1 === attr2 || //主副属性一致并不为空
(attr1 === 6 && attr2 === -1)) //主副属性都为“无”

View File

@ -2977,7 +2977,8 @@ function initialize() {
const s_awokensEquivalent = searchBox.querySelector("#consider-equivalent-awoken"); //搜索等效觉醒
const s_canAssist = searchBox.querySelector("#can-assist"); //只搜索辅助
const s_noHenshin = searchBox.querySelector("#no-henshin"); //只搜索非变身
const s_canLevelLimitBreakthrough = searchBox.querySelector("#can-level-limit-breakthrough"); //可以突破等级上限
const s_have8LatentSlot = searchBox.querySelector("#have-8-latent-slot"); //有8格潜觉
//强调箱子拥有开关
const s_boxHave = document.getElementById("box-have");
@ -3295,32 +3296,37 @@ function initialize() {
attr1 = isNaN(Number(attr1)) ? null : Str2Int(attr1); //将值转为十进制
attr2 = isNaN(Number(attr2)) ? null : Str2Int(attr2); //将值转为十进制
const typesFilter = returnCheckBoxsValues(s_types).map(Str2Int);
const rareFilter = [
const types = returnCheckBoxsValues(s_types).map(Str2Int);
const rares = [
returnCheckBoxsValues(s_rareLows).map(Str2Int)[0],
returnCheckBoxsValues(s_rareHighs).map(Str2Int)[0],
];
const sawokensFilter = returnCheckBoxsValues(s_sawokens).map(Str2Int);
const awokensFilter = s_awokensIcons.filter(btn => parseInt(btn.getAttribute("data-awoken-count"), 10) > 0).map(btn => {
const sawokens = returnCheckBoxsValues(s_sawokens).map(Str2Int);
const awokens = s_awokensIcons.filter(btn => parseInt(btn.getAttribute("data-awoken-count"), 10) > 0).map(btn => {
const awokenIndex = parseInt(btn.getAttribute("data-awoken-icon"), 10);
return {
id: awokenIndex,
num: parseInt(btn.getAttribute("data-awoken-count"), 10)
};
});
let searchResult = searchCards(cards,
const options = {
cards,
attr1, attr2,
s_fixMainColor.checked,
typesFilter,
s_typeAndOr.checked,
rareFilter,
awokensFilter,
sawokensFilter,
s_awokensEquivalent.checked,
s_includeSuperAwoken.checked,
s_canAssist.checked,
s_noHenshin.checked,
);
fixMainColor: s_fixMainColor.checked,
types,
typeAndOr: s_typeAndOr.checked,
rares,
awokens,
sawokens,
equalAk: s_awokensEquivalent.checked,
incSawoken: s_includeSuperAwoken.checked,
canAssist: s_canAssist.checked,
canLv110: s_canLevelLimitBreakthrough.checked,
is8Latent: s_have8LatentSlot.checked,
};
let searchResult = searchCards(options);
//进行特殊附加搜索
const specialFilters = Array.from(specialFilterUl.querySelectorAll(".special-filter")).map(select=>{
@ -3335,23 +3341,28 @@ function initialize() {
return funcObj.function(pre); //结果进一步筛选
}, searchResult);
const options = {};
options.attrs = [attr1, attr2];
options.fixMainColor = s_fixMainColor.checked;
options.types = typesFilter;
options.typeAndOr = s_typeAndOr.checked;
options.rares = rareFilter;
options.awokens = awokensFilter;
options.sawokens = sawokensFilter;
options.awokensEquivalent = s_awokensEquivalent.checked;
options.includeSuperAwoken = s_includeSuperAwoken.checked;
options.canAssist = s_canAssist.checked;
options.noHenshin = s_noHenshin.checked;
//储存设置用于页面刷新的状态恢复
options.specialFilters = Array.from(specialFilterUl.querySelectorAll(".special-filter"))
.map(select=>select.value.split("|").map(Number));
sessionStorage.setItem('search-options',JSON.stringify(options));
sessionStorage.setItem('search-options',JSON.stringify(options, [
"attr1",
"attr2",
"fixMainColor",
"types",
"typeAndOr",
"rares",
"awokens",
"sawokens",
"equalAk",
"incSawoken",
"canAssist",
"canLv110",
"is8Latent",
"specialFilters",
]));
//显示搜索结果
showSearch(searchResult, customAdditionalFunction);
};
searchBox.startSearch = startSearch;
@ -3383,7 +3394,8 @@ function initialize() {
s_awokensEquivalent.checked = options.awokensEquivalent;
s_includeSuperAwoken.checked = options.includeSuperAwoken;
s_canAssist.checked = options.canAssist;
s_noHenshin.checked = options.noHenshin;
s_canLevelLimitBreakthrough.checked = options.canLevelLimitBreakthrough;
s_have8LatentSlot.checked = options.have8LatentSlot;
const specialFilters = Array.from(specialFilterUl.querySelectorAll(".special-filter"));
//将筛选个数增加到需要的个数
@ -3415,7 +3427,8 @@ function initialize() {
specialClear.onclick();
s_canAssist.checked = false;
s_noHenshin.checked = false;
s_canLevelLimitBreakthrough.checked = false;
s_have8LatentSlot.checked = false;
searchMonList.originalHeads = null;
searchResultCount.setAttribute("data-search-result-count", 0);

View File

@ -6855,7 +6855,7 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"35fb0133e050344105d372bf34505eae"
"ce72fb95298cfb841b054daa2e97c056"
],
[
"script-skill-parser.js",

View File

@ -901,7 +901,8 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="fast-switch">
<input type="checkbox" name="can-assist" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"></label>
<input type="checkbox" name="no-henshin" id="no-henshin"><label class="config-checkbox-lbl" for="no-henshin"></label>
<input type="checkbox" name="can-level-limit-breakthrough" id="can-level-limit-breakthrough"><label class="config-checkbox-lbl" for="can-level-limit-breakthrough"></label>
<input type="checkbox" name="have-8-latent-slot" id="have-8-latent-slot"><label class="config-checkbox-lbl" for="have-8-latent-slot"></label>
</div>
<div class="control-div"><!--控制栏-->
<button class="search-start"><!--开始搜索--></button>

View File

@ -1937,7 +1937,8 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="fast-switch">
<input type="checkbox" name="can-assist" id="can-assist"><label class="config-checkbox-lbl can-assist-label" for="can-assist"></label>
<input type="checkbox" name="no-henshin" id="no-henshin"><label class="config-checkbox-lbl" for="no-henshin"></label>
<input type="checkbox" name="can-level-limit-breakthrough" id="can-level-limit-breakthrough"><label class="config-checkbox-lbl" for="can-level-limit-breakthrough"></label>
<input type="checkbox" name="have-8-latent-slot" id="have-8-latent-slot"><label class="config-checkbox-lbl" for="have-8-latent-slot"></label>
</div>
<div class="control-div"><!--控制栏-->
<button class="search-start"><!--开始搜索--></button>