| @@ -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;"> | |||
| @@ -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) | |||
| @@ -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 => { | |||
| @@ -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); | |||
| @@ -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", | |||
| @@ -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;"> | |||
| @@ -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%); | |||
| } | |||
| @@ -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;"> | |||