| @@ -35,7 +35,44 @@ function fastShowSkill(event) | |||||
| console.log(Skills[skillId]); | console.log(Skills[skillId]); | ||||
| } | } | ||||
| } | } | ||||
| //技能介绍里的头像的切换 | |||||
| function changeToIdInSkillDetail(event) | |||||
| { | |||||
| const settingBox = editBox.querySelector(".setting-box"); | |||||
| const monstersID = settingBox.querySelector(".row-mon-id .m-id"); | |||||
| const mid = this.getAttribute("data-cardid"); | |||||
| monstersID.value = mid; | |||||
| monstersID.onchange(); | |||||
| return false; //取消链接的默认操作 | |||||
| } | |||||
| //技能介绍里的头像的切换 | |||||
| function createBoard(boardData, orbType = 0) | |||||
| { | |||||
| boardData.splice(3,0,boardData[2]); //将第2行复制插入为第3行 | |||||
| const table = document.createElement("table"); | |||||
| table.className = "board fixed-shape-orb"; | |||||
| boardData.forEach((flag,ri) => { | |||||
| const row = table.insertRow(); | |||||
| if (ri == 3) | |||||
| row.classList.add("board-row4"); | |||||
| boolArr = new Array(6).fill(null).map((a,i)=> (1<<i & flag) ? true:false); | |||||
| boolArr.splice(4,0,boolArr[3]); //将第3个复制插入为第4个 | |||||
| boolArr.forEach((has,ci)=>{ | |||||
| const cell = row.insertCell(); | |||||
| if (has) cell.className = `has-orb orb-${orbType}`; | |||||
| if (ci == 4) | |||||
| cell.classList.add("board-cell5"); | |||||
| }); | |||||
| }); | |||||
| table.onclick = function(){ | |||||
| this.classList.toggle("board-76"); | |||||
| }; | |||||
| return table; | |||||
| } | |||||
| //insertAdjacentHTML 可以只增加部分 HTML | |||||
| //高级技能解释 | //高级技能解释 | ||||
| function parseSkillDescription(skill) | function parseSkillDescription(skill) | ||||
| { | { | ||||
| @@ -600,20 +637,33 @@ function parseSkillDescription(skill) | |||||
| } | } | ||||
| break; | break; | ||||
| case 125: //隊伍中同時存在 時,所有寵物的攻擊力3.5倍 | case 125: //隊伍中同時存在 時,所有寵物的攻擊力3.5倍 | ||||
| strArr = sk.slice(0,5).filter(s=>s>0); | |||||
| str = `队伍中${strArr.length>1?"同时":""}存在`; | |||||
| str += strArr.map(cardN).join(""); | |||||
| str += "时所有宠物的"; | |||||
| strArr =[]; | |||||
| if (sk[5]) {strArr.push(`HP×${sk[5]/100}倍`);} | |||||
| if (sk[6]) {strArr.push(`攻击力×${sk[6]/100}倍`);} | |||||
| if (sk[7]) {strArr.push(`回复力×${sk[7]/100}倍`);} | |||||
| str += strArr.join("、"); | |||||
| let needMons = sk.slice(0,5).filter(s=>s>0); | |||||
| fragment.appendChild(document.createTextNode(`队伍中${needMons.length>1?"同时":""}存在`)); | |||||
| needMons.forEach(mid=>{ | |||||
| let cardDom = cardN(mid); | |||||
| cardDom.monDom.onclick = changeToIdInSkillDetail; | |||||
| fragment.appendChild(cardDom); | |||||
| }); | |||||
| fragment.appendChild(document.createTextNode(`时,所有宠物的${getFixedHpAtkRcvString({hp:sk[5],atk:sk[6],rcv:sk[7]})}`)); | |||||
| return fragment; | |||||
| break; | break; | ||||
| case 126: | case 126: | ||||
| str = `${sk[1]}${sk[1] != sk[2]?`~${sk[2]}`:""}回合内${nb(sk[0], attrsName).join("、")}宝珠的掉落率提高${sk[3]}%`; | str = `${sk[1]}${sk[1] != sk[2]?`~${sk[2]}`:""}回合内${nb(sk[0], attrsName).join("、")}宝珠的掉落率提高${sk[3]}%`; | ||||
| break; | break; | ||||
| case 127: //生成竖列 | case 127: //生成竖列 | ||||
| strArr = []; | |||||
| for (let ai=0;ai<sk.length;ai+=2) | |||||
| { | |||||
| strArr.push(`${nb(sk[ai],ClumsN).join("、")}的宝珠变为${nb(sk[ai+1],attrsName).join("、")}`); | |||||
| } | |||||
| fragment.appendChild(document.createTextNode(strArr.join(","))); | |||||
| /* | |||||
| var table = createBoard([sk[0],sk[1],sk[2],sk[3],sk[4]], sk[5]); | |||||
| table.classList.add("fixed-shape-orb"); | |||||
| fragment.appendChild(table);*/ | |||||
| return fragment; | |||||
| break; | |||||
| strArr = []; | strArr = []; | ||||
| for (let ai=0;ai<sk.length;ai+=2) | for (let ai=0;ai<sk.length;ai+=2) | ||||
| { | { | ||||
| @@ -736,7 +786,25 @@ function parseSkillDescription(skill) | |||||
| str = `协力时${getAttrTypeString(flags(sk[0]),flags(sk[1]))}宠物的${getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]})}`; | str = `协力时${getAttrTypeString(flags(sk[0]),flags(sk[1]))}宠物的${getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]})}`; | ||||
| break; | break; | ||||
| case 156: //宝石姬技能 | case 156: //宝石姬技能 | ||||
| strArr = sk.slice(1,4); | |||||
| awokenArr = sk.slice(1,4).filter(s=>s>0); | |||||
| fragment.appendChild(document.createTextNode(`${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能`)); | |||||
| awokenArr.forEach((aid,idx,arr)=>{ | |||||
| const icon = fragment.appendChild(document.createElement("icon")); | |||||
| icon.className ="awoken-icon"; | |||||
| icon.setAttribute("data-awoken-icon",aid); | |||||
| icon.title = awokenN(aid); | |||||
| if (idx < arr.length-1) icon.insertAdjacentText('afterend', "、");; | |||||
| }); | |||||
| fragment.appendChild(document.createTextNode(`的数目`)); | |||||
| if (sk[4]==1) | |||||
| fragment.appendChild(document.createTextNode(`回复 HP ,每个觉醒回复自身回复力的${sk[5]/100}倍`)); | |||||
| else if (sk[4]==2) | |||||
| fragment.appendChild(document.createTextNode(`提升所有属性的攻击力,每个觉醒可以提升${sk[5]-100}%`)); | |||||
| else if (sk[4]==3) | |||||
| fragment.appendChild(document.createTextNode(`减少受到的伤害,每个觉醒可以减少${sk[5]}%`)); | |||||
| else | |||||
| fragment.appendChild(document.createTextNode(`宝石姬技能,未知buff类型 参数[4]:${sk[4]}`)); | |||||
| return fragment; | |||||
| str = `${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能 ${strArr.filter(s=>s>0).map(s=>awokenN(s)).join("、")} 的数目`; | str = `${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能 ${strArr.filter(s=>s>0).map(s=>awokenN(s)).join("、")} 的数目`; | ||||
| if (sk[4]==1) | if (sk[4]==1) | ||||
| str += `回复 HP ,每个觉醒回复自身回复力的${sk[5]/100}倍`; | str += `回复 HP ,每个觉醒回复自身回复力的${sk[5]/100}倍`; | ||||
| @@ -1033,21 +1101,34 @@ function parseSkillDescription(skill) | |||||
| str = `${sk[0]}回合内敌人的${strArr.join("、")}无效化`; | str = `${sk[0]}回合内敌人的${strArr.join("、")}无效化`; | ||||
| break; | break; | ||||
| case 175: //隊員編成均為「マガジン」合作活動角色時,所有寵物的攻擊力8倍 | case 175: //隊員編成均為「マガジン」合作活動角色時,所有寵物的攻擊力8倍 | ||||
| str = `队员组成全是`; | |||||
| strArr = sk.slice(0,3).filter(s=>s>0); //最多3种id | |||||
| 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]})}`; | |||||
| let needCollabs = sk.slice(0,3).filter(s=>s>0); //最多3种id | |||||
| fragment.appendChild(document.createTextNode(`队员组成全是`)); | |||||
| //搜索并显示合作 | |||||
| function searchCollab(event) { | |||||
| const collabId = parseInt(this.getAttribute('data-collabId'), 10); | |||||
| showSearch(Cards.filter(card => card.collabId == collabId)); | |||||
| } | |||||
| needCollabs.forEach((cid,idx,arr)=>{ | |||||
| const lnk = fragment.appendChild(document.createElement("a")); | |||||
| lnk.className ="detail-search monster-collabId"; | |||||
| lnk.setAttribute("data-collabId",cid); | |||||
| lnk.onclick = searchCollab; | |||||
| lnk.textContent = cid; | |||||
| if (idx < arr.length-1) lnk.insertAdjacentText('afterend', "、");; | |||||
| }); | |||||
| fragment.appendChild(document.createTextNode(`合作角色时,所有宠物的${getFixedHpAtkRcvString({hp:sk[3],atk:sk[4],rcv:sk[5]})}`)); | |||||
| return fragment; | |||||
| break; | break; | ||||
| case 176: | case 176: | ||||
| //●◉○◍◯ | //●◉○◍◯ | ||||
| var table = [sk[0],sk[1],sk[2],sk[3],sk[4]]; | |||||
| str = `以如下形状生成${attrN(sk[5])}宝珠<br>`; | |||||
| str += table.map(r=>{ | |||||
| const line = new Array(6).fill(null).map((a,i)=> (1<<i & r) ? "●":"○"); | |||||
| return line.join(""); | |||||
| }).join("<br>"); | |||||
| //var data = [sk[0],sk[1],sk[2],sk[3],sk[4]].map(flag=>new Array(6).fill(null).map((a,i)=> (1<<i & flag) ? sk[5] : null)); | |||||
| //var table = createBoard([sk[0],sk[1],sk[2],sk[3],sk[4]], sk[5]); | |||||
| var table = createBoard([sk[0],sk[1],sk[2],sk[3],sk[4]], sk[5]); | |||||
| table.classList.add("fixed-shape-orb"); | |||||
| fragment.appendChild(table); | |||||
| return fragment; | |||||
| break; | break; | ||||
| case 177: | case 177: | ||||
| /* | /* | ||||
| @@ -1213,15 +1294,33 @@ function parseSkillDescription(skill) | |||||
| if (sk[5]) str += `,追加${sk[5]}点固定伤害`; | if (sk[5]) str += `,追加${sk[5]}点固定伤害`; | ||||
| break; | break; | ||||
| case 202: | case 202: | ||||
| str = `变身为${cardN(sk[0])}`; | |||||
| fragment.appendChild(document.createTextNode("变身为")); | |||||
| let cardDom = cardN(sk[0]); | |||||
| cardDom.monDom.onclick = changeToIdInSkillDetail; | |||||
| fragment.appendChild(cardDom); | |||||
| return fragment; | |||||
| break; | break; | ||||
| case 203: | case 203: | ||||
| str = `队员组成全是`; | |||||
| if (sk[0] === 0) str += "像素进化"; | |||||
| else if (sk[0] === 2)str += "转生或超转生"; | |||||
| else str += "未知新类型"; | |||||
| str += `时,`; | |||||
| str += "宠物的" + getFixedHpAtkRcvString({hp:sk[1],atk:sk[2],rcv:sk[3]}); | |||||
| fragment.appendChild(document.createTextNode(`队员组成全是`)); | |||||
| const lnk = fragment.appendChild(document.createElement("a")); | |||||
| lnk.className ="detail-search"; | |||||
| if (sk[0] === 0) | |||||
| { | |||||
| lnk.textContent = "像素进化"; | |||||
| lnk.onclick = function(){ | |||||
| showSearch(Cards.filter(card=>card.evoMaterials.includes(3826))); | |||||
| }; | |||||
| }else if (sk[0] === 2) | |||||
| { | |||||
| lnk.textContent = "转生或超转生"; | |||||
| lnk.onclick = function(){ | |||||
| showSearch(Cards.filter(card=>isReincarnated(card))); | |||||
| }; | |||||
| }else | |||||
| lnk.textContent = "未知新类型"; | |||||
| fragment.appendChild(document.createTextNode(`时,所有宠物的${getFixedHpAtkRcvString({hp:sk[1],atk:sk[2],rcv:sk[3]})}`)); | |||||
| return fragment; | |||||
| break; | break; | ||||
| case 205: | case 205: | ||||
| str = `${sk[1]}回合内,${getOrbsAttrString(sk[0])}宝珠会以锁定形式掉落`; | str = `${sk[1]}回合内,${getOrbsAttrString(sk[0])}宝珠会以锁定形式掉落`; | ||||
| @@ -3235,7 +3334,7 @@ function parseBigNumber(number) | |||||
| return subskills.some(subskill=>subskill.type == searchType); | return subskills.some(subskill=>subskill.type == searchType); | ||||
| } | } | ||||
| })}, | })}, | ||||
| {name:"变身后",function:cards=>cards.filter(card=>card.henshinTo)}, | |||||
| {name:"变身后",function:cards=>cards.filter(card=>card.henshinFrom)}, | |||||
| {name:"变身前后队长技保持不变",function:cards=>cards.filter(card=>{ | {name:"变身前后队长技保持不变",function:cards=>cards.filter(card=>{ | ||||
| const searchType = 202; | const searchType = 202; | ||||
| const skill = Skills[card.activeSkillId]; | const skill = Skills[card.activeSkillId]; | ||||
| @@ -235,6 +235,12 @@ | |||||
| .control-box .btn-swap-ABC-team::before{ | .control-box .btn-swap-ABC-team::before{ | ||||
| content: "🔄轮换ABC队"; | content: "🔄轮换ABC队"; | ||||
| } | } | ||||
| .control-box .btn-swap-henshin::before{ | |||||
| content: "🐱➡️🐯最终变身"; | |||||
| } | |||||
| .control-box .btn-swap-henshin.henshin-back::before{ | |||||
| content: "🐱↩️🐯变身前"; | |||||
| } | |||||
| .control-box .show-mon-id-lbl::after{ | .control-box .show-mon-id-lbl::after{ | ||||
| content:"🆔显示怪物ID"; | content:"🆔显示怪物ID"; | ||||
| } | } | ||||
| @@ -42,6 +42,7 @@ var formation = new Formation(teamsCount,5); | |||||
| <button class="btn-solo-link" onclick="turnPage(1,arguments[0]);"></button> | <button class="btn-solo-link" onclick="turnPage(1,arguments[0]);"></button> | ||||
| <button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> | <button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> | ||||
| <button class="btn-swap-AB-team" onclick="swapABCteam();"></button> | <button class="btn-swap-AB-team" onclick="swapABCteam();"></button> | ||||
| <button class="btn-swap-henshin" onclick="swapHenshin(this);"></button> | |||||
| <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | ||||
| </div> | </div> | ||||
| <div> | <div> | ||||
| @@ -452,15 +452,16 @@ function cardN(id){ | |||||
| monOuterDom.className = "detail-mon"; | monOuterDom.className = "detail-mon"; | ||||
| const monDom = createCardA(id); | const monDom = createCardA(id); | ||||
| monOuterDom.appendChild(monDom); | monOuterDom.appendChild(monDom); | ||||
| monOuterDom.monDom = monDom; | |||||
| changeid({id:id},monDom); | changeid({id:id},monDom); | ||||
| return monOuterDom.outerHTML; | |||||
| return monOuterDom; | |||||
| } | } | ||||
| //将怪物的文字介绍解析为HTML | //将怪物的文字介绍解析为HTML | ||||
| function descriptionToHTML(str) | function descriptionToHTML(str) | ||||
| { | { | ||||
| str = str.replace(/\n/ig,"<br>"); //换行 | str = str.replace(/\n/ig,"<br>"); //换行 | ||||
| str = str.replace(/\^([a-fA-F0-9]+?)\^([^\^]+?)\^p/igm,'<span style="color:#$1;">$2</span>'); //文字颜色 | str = str.replace(/\^([a-fA-F0-9]+?)\^([^\^]+?)\^p/igm,'<span style="color:#$1;">$2</span>'); //文字颜色 | ||||
| str = str.replace(/\%\{m([0-9]{1,4})\}/g,function (str, p1, offset, s){return cardN(parseInt(p1,10));}); //怪物头像 | |||||
| str = str.replace(/\%\{m([0-9]{1,4})\}/g,function (str, p1, offset, s){return cardN(parseInt(p1,10)).outerHTML;}); //怪物头像 | |||||
| return str; | return str; | ||||
| } | } | ||||
| //默认的技能解释的显示行为 | //默认的技能解释的显示行为 | ||||
| @@ -297,20 +297,83 @@ function toggleDomClassName(checkBox, className, checkedAdd = true, dom = docume | |||||
| } | } | ||||
| } | } | ||||
| //清除数据 | //清除数据 | ||||
| function clearData() { | |||||
| function clearData() | |||||
| { | |||||
| const locationURL = new URL(location); | const locationURL = new URL(location); | ||||
| locationURL.searchParams.delete('d'); //删除数据 | locationURL.searchParams.delete('d'); //删除数据 | ||||
| locationURL.searchParams.delete('l'); //删除语言 | locationURL.searchParams.delete('l'); //删除语言 | ||||
| location = locationURL.toString(); | location = locationURL.toString(); | ||||
| } | } | ||||
| //轮换ABC队伍 | //轮换ABC队伍 | ||||
| function swapABCteam() { | |||||
| function swapABCteam() | |||||
| { | |||||
| if (formation.teams.length > 1) { | if (formation.teams.length > 1) { | ||||
| formation.teams.push(formation.teams.splice(0, 1)[0]); //将队伍1移动到最后 | formation.teams.push(formation.teams.splice(0, 1)[0]); //将队伍1移动到最后 | ||||
| creatNewUrl(); | creatNewUrl(); | ||||
| refreshAll(formation); | refreshAll(formation); | ||||
| } | } | ||||
| } | } | ||||
| function swapHenshin(self) | |||||
| { | |||||
| const backClassName = "henshin-back"; | |||||
| const back = self.classList.contains(backClassName); | |||||
| let shouldChange = formation.teams.some(team=> | |||||
| team[0].some(member=>{ | |||||
| const mid = member.id; | |||||
| const card = Cards[mid]; | |||||
| return card.henshinFrom || card.henshinTo; | |||||
| }) | |||||
| ); | |||||
| //获得最终变身 | |||||
| function finalHenshin(card) | |||||
| { | |||||
| if (card.henshinTo) | |||||
| { //是变身的则返回 | |||||
| if (card.evoRootId === card.henshinTo) | |||||
| { //应对无限循环变身的问题 | |||||
| return card; | |||||
| } | |||||
| return finalHenshin(Cards[card.henshinTo]); | |||||
| } | |||||
| return card; | |||||
| } | |||||
| if (shouldChange) | |||||
| { | |||||
| if (back) | |||||
| { //回到变身前 | |||||
| formation.teams.forEach(team=>{ | |||||
| team[0].forEach(member=>{ | |||||
| const mid = member.id; | |||||
| const card = Cards[mid]; | |||||
| if (card.henshinFrom && member.level <= 99) | |||||
| { //要变身后的才进行操作 | |||||
| const _card = Cards[card.evoRootId]; | |||||
| member.id = card.evoRootId; | |||||
| member.awoken = _card.awakenings.length; | |||||
| } | |||||
| }); | |||||
| }); | |||||
| self.classList.remove(backClassName); | |||||
| }else | |||||
| { //跑到变身后 | |||||
| formation.teams.forEach(team=>{ | |||||
| team[0].forEach(member=>{ | |||||
| const mid = member.id; | |||||
| const card = Cards[mid]; | |||||
| if (card.henshinTo) | |||||
| { //要变身前的才进行操作 | |||||
| const _card = finalHenshin(card); | |||||
| member.id = _card.id; | |||||
| member.awoken = _card.awakenings.length; | |||||
| } | |||||
| }); | |||||
| }); | |||||
| self.classList.add(backClassName); | |||||
| } | |||||
| creatNewUrl(); | |||||
| refreshAll(formation); | |||||
| } | |||||
| } | |||||
| //在单人和多人之间转移数据 | //在单人和多人之间转移数据 | ||||
| function turnPage(toPage, e = null) { | function turnPage(toPage, e = null) { | ||||
| let pagename = null; | let pagename = null; | ||||
| @@ -540,10 +603,11 @@ function loadData(force = false) | |||||
| const linkRes = new RegExp("link:(\\d+)", "ig").exec(m.specialAttribute); | const linkRes = new RegExp("link:(\\d+)", "ig").exec(m.specialAttribute); | ||||
| if (linkRes) { //每个有链接的符卡,把它们被链接的符卡的进化根修改到链接前的 | if (linkRes) { //每个有链接的符卡,把它们被链接的符卡的进化根修改到链接前的 | ||||
| const _m = Cards[parseInt(linkRes[1], 10)]; | |||||
| const toId = parseInt(linkRes[1], 10); | |||||
| const _m = Cards[toId]; | |||||
| _m.evoRootId = m.evoRootId; | _m.evoRootId = m.evoRootId; | ||||
| m.henshinFrom = true; | |||||
| _m.henshinTo = true; | |||||
| m.henshinTo = toId; | |||||
| _m.henshinFrom = m.id; | |||||
| } | } | ||||
| }); | }); | ||||
| monstersList.appendChild(fragment); | monstersList.appendChild(fragment); | ||||
| @@ -837,26 +901,28 @@ function initialize() { | |||||
| mSeriesId.onclick = function() { //搜索系列 | mSeriesId.onclick = function() { //搜索系列 | ||||
| const seriesId = parseInt(this.getAttribute('data-seriesId'), 10); | const seriesId = parseInt(this.getAttribute('data-seriesId'), 10); | ||||
| if (seriesId > 0) { | if (seriesId > 0) { | ||||
| showSearch(Cards.filter(card => { return card.seriesId == seriesId; })); | |||||
| showSearch(Cards.filter(card => card.seriesId == seriesId)); | |||||
| } | } | ||||
| }; | }; | ||||
| const mCollabId = smonsterinfoBox.querySelector(".monster-collabId"); | const mCollabId = smonsterinfoBox.querySelector(".monster-collabId"); | ||||
| mCollabId.onclick = function() { //搜索合作 | mCollabId.onclick = function() { //搜索合作 | ||||
| const collabId = parseInt(this.getAttribute('data-collabId'), 10); | const collabId = parseInt(this.getAttribute('data-collabId'), 10); | ||||
| if (collabId > 0); { | if (collabId > 0); { | ||||
| searchColla(collabId); | |||||
| showSearch(Cards.filter(card => card.collabId == collabId)); | |||||
| } | } | ||||
| }; | }; | ||||
| const mAltName = smonsterinfoBox.querySelector(".monster-altName"); | const mAltName = smonsterinfoBox.querySelector(".monster-altName"); | ||||
| mAltName.onclick = function() { //搜索合作 | mAltName.onclick = function() { //搜索合作 | ||||
| const altName = this.getAttribute('data-altName'); | const altName = this.getAttribute('data-altName'); | ||||
| const splitAltName = altName.split("|"); | |||||
| if (altName.length > 0); { | |||||
| showSearch(Cards.filter(card => { | |||||
| return splitAltName.some(alt => { | |||||
| return alt.length > 0 && (card.altName.includes(alt) || card.name.includes(alt)); | |||||
| }); | |||||
| })); | |||||
| if (altName.length > 0) | |||||
| { | |||||
| const splitAltName = altName.split("|"); | |||||
| showSearch(Cards.filter(card => | |||||
| splitAltName.some(alt => | |||||
| alt.length > 0 && | |||||
| (card.altName.includes(alt) || card.name.includes(alt)) | |||||
| ) | |||||
| )); | |||||
| } | } | ||||
| }; | }; | ||||
| //创建一个新的怪物头像 | //创建一个新的怪物头像 | ||||
| @@ -2164,11 +2230,6 @@ function editBoxChangeMonId(id) { | |||||
| editBox.reCalculateExp(); | editBox.reCalculateExp(); | ||||
| editBox.reCalculateAbility(); | editBox.reCalculateAbility(); | ||||
| } | } | ||||
| //搜索并显示合作 | |||||
| function searchColla(collabId) { | |||||
| if (typeof(collabId) == "string") collabId = parseInt(collabId, 10); | |||||
| showSearch(Cards.filter(card => { return card.collabId == collabId; })); | |||||
| } | |||||
| //刷新整个队伍 | //刷新整个队伍 | ||||
| function refreshAll(formationData) { | function refreshAll(formationData) { | ||||
| let fragment = document.createDocumentFragment(); //创建节点用的临时空间 | let fragment = document.createDocumentFragment(); //创建节点用的临时空间 | ||||
| @@ -41,6 +41,7 @@ var formation = new Formation(teamsCount,6); | |||||
| <a class="down-capture display-none" target="_blank"></a> | <a class="down-capture display-none" target="_blank"></a> | ||||
| <button class="btn-multi-link" onclick="turnPage(2,arguments[0]);"></button> | <button class="btn-multi-link" onclick="turnPage(2,arguments[0]);"></button> | ||||
| <button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> | <button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> | ||||
| <button class="btn-swap-henshin" onclick="swapHenshin(this);"></button> | |||||
| <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | ||||
| </div> | </div> | ||||
| <div> | <div> | ||||
| @@ -55,6 +55,7 @@ var formation = new Formation(teamsCount,6); | |||||
| <button class="btn-solo-link" onclick="turnPage(1,arguments[0]);"></button> | <button class="btn-solo-link" onclick="turnPage(1,arguments[0]);"></button> | ||||
| <button class="btn-multi-link" onclick="turnPage(2,arguments[0]);"></button> | <button class="btn-multi-link" onclick="turnPage(2,arguments[0]);"></button> | ||||
| <button class="btn-swap-ABC-team" onclick="swapABCteam();"></button> | <button class="btn-swap-ABC-team" onclick="swapABCteam();"></button> | ||||
| <button class="btn-swap-henshin" onclick="swapHenshin(this);"></button> | |||||
| <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | <a class="help-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/blob/master/help.md"></a> | ||||
| </div> | </div> | ||||
| <div> | <div> | ||||