增加同步觉醒条件显示

修订CSS
This commit is contained in:
枫谷剑仙 2024-07-25 02:22:46 +08:00
parent 285efd872d
commit 3584809d1a
8 changed files with 42 additions and 30 deletions

View File

@ -1478,7 +1478,7 @@ const teamsCount = 2;
</div>
<template id="template-card-a">
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
</template>
</div>
<svg id="interchange-line" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" height="100%" width="100%" style="display:none;">

View File

@ -4251,7 +4251,10 @@ const specialSearchFunctions = (function() {
]},
{group:true,name:"====== Awoken ======",otLangName:{chs:"======觉醒类======",cht:"======覺醒類======"}, functions: [
{name:"Have Sync Awoken",otLangName:{chs:"有同步觉醒",cht:"有同步覺醒"},
function:cards=>cards.filter(card=>card.syncAwakening)
function:cards=>cards.filter(card=>card.syncAwakening),
addition:card=>{if (card.syncAwakeningConditions) {
return card.syncAwakeningConditions.map(c=>cardN(c.id)).nodeJoin();
}}
},
{name:"8 latent grids",otLangName:{chs:"8格潜觉",cht:"8格潛覺"},
function:cards=>cards.filter(card=>card.is8Latent)

View File

@ -949,27 +949,27 @@ function calculateAbility_max(id, solo, teamsCount, maxLevel = 110) {
}
//搜索卡片用
function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rares, awokens, sawokens, equalAk, incSawoken, canAssist, canLv110, is8Latent, notWeapon}) {
let cardsRange = cards.concat(); //这里需要复制一份原来的数组不然若无筛选后面的排序会改变初始Cards
let cardsRange = [...cards]; //这里需要复制一份原来的数组不然若无筛选后面的排序会改变初始Cards
if (canAssist) cardsRange = cardsRange.filter(card=>card.canAssist);
if (canLv110) cardsRange = cardsRange.filter(card=>card.limitBreakIncr>0);
if (is8Latent) cardsRange = cardsRange.filter(card=>card.is8Latent);
if (notWeapon) cardsRange = cardsRange.filter(card=>!card.awakenings.includes(49) && //不是武器
!card.stackable); //不可堆叠
//属性
const anyAttrsFlag = 0b1011111; //所有颜色的查找,注意右边才是最低位
const anyAttrsFlag = 0b101_1111; //所有颜色的查找,注意右边才是最低位
sAttrs = sAttrs.map(attr=>attr || anyAttrsFlag); //如果传入搜索为0提高到任意色
if (sAttrs.some(attr=>(attr & anyAttrsFlag) !== anyAttrsFlag)) { //当任一属性不为任意颜色时才需要筛选属性,否则跳过属性筛选
//如果固定顺序就直接使用当前颜色顺序;否则不考虑顺序时,去除任意色
const attrNums = sAttrs.filter(attr=>fixMainColor || attr > 0 && (attr & anyAttrsFlag) !== anyAttrsFlag)
.map(attr=>{
const attrNum = Bin.unflags(attr);
if (attrNum.includes(6)) attrNum.push(undefined,-1); //如果是包含6的就添加-1和undefined的值
return attrNum;
});
// const attrNums = sAttrs.filter(attr=>fixMainColor || attr > 0 && (attr & anyAttrsFlag) !== anyAttrsFlag)
// .map(attr=>{
// const attrNum = Bin.unflags(attr);
// if (attrNum.includes(6)) attrNum.push(undefined,-1); //如果是包含6的就添加-1和undefined的值
// return attrNum;
// });
if (fixMainColor) {//如果固定了顺序
//只有第一属性有搜索内容时才搜索无主属性
const isSearchNoMainAttr = (sAttrs[0] ^ 0b1000000) > 0 && sAttrs.slice(1).every(attr=>(attr & anyAttrsFlag) === anyAttrsFlag);
const isSearchNoMainAttr = (sAttrs[0] ^ 0b100_0000) > 0 && sAttrs.slice(1).every(attr=>(attr & anyAttrsFlag) === anyAttrsFlag);
cardsRange = cardsRange.filter(({attrs:cAttrs}) => {
//默认逻辑为只要不是any就判断这个颜色是否包含了对应的颜色
//不能用怪物颜色来查找,因为怪物只有一个颜色就会提前退出循环,导致不搜索副属性
@ -992,7 +992,7 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
else {//不限定顺序时
//const notAnyAttrsCount = isAnyAttrs.filter(b=>!b).length;
cardsRange = cardsRange.filter(({attrs:cAttrs, id}) => {
cAttrs = cAttrs.concat();
cAttrs = [...cAttrs];
for (let i = 1; i < sAttrs.length; i++) {
if (!Number.isInteger(cAttrs[i])) cAttrs[i] = 6;
}
@ -1024,7 +1024,7 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
//类型
if (types.length > 0) {
//所有type都满足或只需要满足一个type
let logicFunc = typeAndOr ? Array.prototype.every : Array.prototype.some;
const logicFunc = typeAndOr ? Array.prototype.every : Array.prototype.some;
cardsRange = cardsRange.filter(({types: cTypes}) => logicFunc.call(types, t => cTypes.includes(t)));
}
//稀有度
@ -1032,7 +1032,7 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
cardsRange = cardsRange.filter(({rarity}) => rares.includes(rarity));
}
//觉醒
let searchAwokens = [];
const searchAwokens = [];
//等效觉醒时,把大觉醒数量变成小觉醒数量
if (equalAk) {
awokens.forEach(ak=>{
@ -1049,7 +1049,7 @@ function searchCards(cards, {attrs: sAttrs, fixMainColor, types, typeAndOr, rare
}
});
} else {
searchAwokens = awokens.concat();
searchAwokens.push(...awokens);
}
if (searchAwokens.length > 0) {
cardsRange = cardsRange.filter(card => {

View File

@ -4278,12 +4278,14 @@ function initialize() {
editBox.createCardHead = function(id, options = {}) {
function clickHeadToNewMon(event) {
event.preventDefault(); //取消链接的默认操作
monstersID.value = this.card.id;
monstersID.value = this.dataset.cardid;
formIdSearch.onchange();
}
const cli = document.createElement("li");
const cdom = cli.head = createCardA(options);
cli.appendChild(cdom);
const cdom = cli.head = cli.appendChild(createCardA(options));
cdom.onclick = clickHeadToNewMon;
let card;
if (id instanceof Member) {
changeid(id, cdom);
@ -4402,7 +4404,6 @@ function initialize() {
});
}
cli.onclick = clickHeadToNewMon;
return cli;
};
@ -5060,9 +5061,8 @@ function initialize() {
if (!heads || heads.length === 0) return; //没有数据时,直接返回
const sortIndex = parseInt(s_sortList.value, 10);
const reverse = s_sortReverse.checked;
let headsArray = heads.concat();
headsArray.sort((head_a, head_b) => {
const headsArray = heads.toSorted((head_a, head_b) => {
const card_a = head_a.card,
card_b = head_b.card;
let sortNumber = sort_function_list[sortIndex].function(card_a, card_b);

View File

@ -30231,7 +30231,7 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"982005039010a7e2128a6ce90d21718c"
"37f21417e9c5c4be0685546aa6f280e0"
],
[
"script-skill-parser.js",
@ -30239,11 +30239,11 @@ const cachesMap = new Map([
],
[
"script-universal_function.js",
"ca25f0fda84bb0030a2762ce51252f7e"
"23209e5aee458faeb1282ae19fe7bc3e"
],
[
"script.js",
"6dc2f6824dc4cccecf17abf976f1787b"
"c5a1df2c76abb1d5c99468c92c68e200"
],
[
"solo.html",

View File

@ -1216,7 +1216,7 @@ const teamsCount = 1;
</div>
<template id="template-card-a">
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
</template>
</div>
<svg id="interchange-line" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" height="100%" width="100%" style="display:none;">

View File

@ -1331,6 +1331,14 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-leader .monster {
border-color: var(--team-ft-color);
}
.team-members .monster,
.team-assist .monster {
cursor: grab;
}
.team-members .monster:active,
.team-assist .monster:active {
cursor: grabbing;
}
/*三维计算值*/
.team-ability .abilitys
@ -1609,7 +1617,8 @@ label[for="search-string"]::before {
transform: scale(0.6);
margin: calc(-100px * (1 - 0.6) / 2);
}
.rich-text .detail-mon .monster{
.rich-text .detail-mon .monster,
.custom-addition .detail-mon .monster{
transform: scale(0.5);
margin: calc(-100px * (1 - 0.5) / 2);
}
@ -2421,7 +2430,7 @@ input[disabled]+.awoken-icon:active,
transform: scale(0.84);
margin: -3px -1px;
}
.edit-box .awoken-ul .awoken-icon,
.edit-box :where(.awoken-div,.row-awoken-sawoken) .awoken-ul .awoken-icon,
.row-mon-awoken .awoken-count-num
{
cursor: pointer;
@ -2742,10 +2751,10 @@ input[disabled]+.awoken-icon:active,
/*不允许使用的潜觉,不是手指,半透明,灰度*/
.awoken-icon.unallowable-awoken,
input[disabled]+.awoken-icon,
.search-box .awoken-ul .awoken-count input[disabled]+.awoken-icon,
.latent-icon.unallowable-latent
{
cursor: default !important;
cursor: not-allowed;
opacity: var(--search-icon-unchecked);
filter: grayscale(100%);
}

View File

@ -2160,7 +2160,7 @@ const teamsCount = 3;
</div>
<template id="template-card-a">
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
<a class="monster" target="_blank" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title=""><div class="attrs"><div class="attr"></div><div class="attr"></div><div class="attr"></div><div class="attr"></div></div><div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div><div class="id"></div><div class="awoken-count-num"></div><div class="super-awoken display-none"><div class="awoken-icon"></div></div><div class="level"></div><div class="rarity"></div><div class="count-in-box"><span class="same-id"></span><span class="evo-tree"></span></div></a>
</template>
</div>
<svg id="interchange-line" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" height="100%" width="100%" style="display:none;">