diff --git a/languages/en.css b/languages/en.css index 54524877..28413446 100644 --- a/languages/en.css +++ b/languages/en.css @@ -269,6 +269,15 @@ .search-box .include-super-awoken-label::after{ content: "Including Super Awoken"; } +.search-box .sort-div::before{ + content: "Sort by:"; +} +.search-box .sort-reverse-label::after{ + content: "Same"; +} +.search-box #sort-reverse:checked+ .sort-reverse-label::after{ + content: "Reverse"; +} .attrs .attr-all::before{ content: "All"; } diff --git a/languages/en.js b/languages/en.js index 40ef1cf8..83dc39e9 100644 --- a/languages/en.js +++ b/languages/en.js @@ -1,3 +1,12 @@ -document.title = `P&D ${teamsCount}P Formation Maker`; -document.body.querySelector(".formation-box .title-box .title").placeholder = "Input Formation Title"; -document.body.querySelector(".formation-box .detail-box .detail").placeholder = "Input Detail"; \ No newline at end of file +const localTranslating = { + webpage_title: `P&D ${teamsCount}P Formation Maker`, + title_blank: "Input Formation Title", + detail_blank: "Input Detail", + sort_name:{ + sort_none: "Nope", + sort_id: "Cards Id", + sort_evoRootId: "Cards Evolution Root", + }, +} + +localisation(localTranslating); \ No newline at end of file diff --git a/languages/ja.css b/languages/ja.css index 722a0d62..fa642e6a 100644 --- a/languages/ja.css +++ b/languages/ja.css @@ -262,6 +262,15 @@ .search-box .include-super-awoken-label::after{ content: "超覚醒を含む"; } +.search-box .sort-div::before{ + content: "並べ替え:"; +} +.search-box .sort-reverse-label::after{ + content: "正序"; +} +.search-box #sort-reverse:checked+ .sort-reverse-label::after{ + content: "逆序"; +} .attrs .attr-all::before{ content: "無制限"; } diff --git a/languages/ja.js b/languages/ja.js index 268039d0..c9a4f934 100644 --- a/languages/ja.js +++ b/languages/ja.js @@ -1,3 +1,12 @@ -document.title = `パズル&ドラゴンズ${teamsCount}人のチーム図作成ツール`; -document.body.querySelector(".formation-box .title-box .title").placeholder = "入力タイトル"; -document.body.querySelector(".formation-box .detail-box .detail").placeholder = "入力詳細"; \ No newline at end of file +const localTranslating = { + webpage_title: `パズル&ドラゴンズ${teamsCount}人のチーム図作成ツール`, + title_blank: "入力タイトル", + detail_blank: "入力詳細", + sort_name:{ + sort_none: "Nope", + sort_id: "Cards Id", + sort_evoRootId: "Cards Evolution Root", + }, +} + +localisation(localTranslating); \ No newline at end of file diff --git a/languages/ko.css b/languages/ko.css index 01139abc..df18fbb1 100644 --- a/languages/ko.css +++ b/languages/ko.css @@ -262,6 +262,15 @@ .search-box .include-super-awoken-label::after{ content: "슈퍼 각성 포함"; } +.search-box .sort-div::before{ + content: "정렬:"; +} +.search-box .sort-reverse-label::after{ + content: "양의"; +} +.search-box #sort-reverse:checked+ .sort-reverse-label::after{ + content: "역순"; +} .attrs .attr-all::before{ content: "무제한"; } diff --git a/languages/ko.js b/languages/ko.js index 07abeaa8..a048122e 100644 --- a/languages/ko.js +++ b/languages/ko.js @@ -1,3 +1,12 @@ -document.title = `퍼즐앤드래곤 ${teamsCount} 명의 팀 다이어그램 작성 도구`; -document.body.querySelector(".formation-box .title-box .title").placeholder = "입력 제목"; -document.body.querySelector(".formation-box .detail-box .detail").placeholder = "입력 내용"; \ No newline at end of file +const localTranslating = { + webpage_title: `퍼즐앤드래곤 ${teamsCount} 명의 팀 다이어그램 작성 도구`, + title_blank: "입력 제목", + detail_blank: "입력 내용", + sort_name:{ + sort_none: "Nope", + sort_id: "Cards Id", + sort_evoRootId: "Cards Evolution Root", + }, +} + +localisation(localTranslating); \ No newline at end of file diff --git a/languages/zh-CN.js b/languages/zh-CN.js index f5657df4..14de4c32 100644 --- a/languages/zh-CN.js +++ b/languages/zh-CN.js @@ -1789,7 +1789,7 @@ function parseBigNumber(number) const searchBox = editBox.querySelector(".search-box"); - const controlDiv = searchBox.querySelector(".control-div"); + const controlDiv = searchBox.querySelector(".sawoken-div"); let fragment = document.createDocumentFragment(); const specialSearch = fragment.appendChild(document.createElement("select")); specialSearchFunctions.forEach((sfunc,idx)=>{ diff --git a/languages/zh-TW.css b/languages/zh-TW.css index 10692520..88b5cc17 100644 --- a/languages/zh-TW.css +++ b/languages/zh-TW.css @@ -268,6 +268,15 @@ .search-box .include-super-awoken-label::after{ content: "包括超覺醒"; } +.search-box .sort-div::before{ + content: "排序:"; +} +.search-box .sort-reverse-label::after{ + content: "順序"; +} +.search-box #sort-reverse:checked+ .sort-reverse-label::after{ + content: "逆序"; +} .attrs .attr-all::before{ content: "不限"; } diff --git a/languages/zh-TW.js b/languages/zh-TW.js index 19a12bd8..fc1dd30d 100644 --- a/languages/zh-TW.js +++ b/languages/zh-TW.js @@ -1,3 +1,12 @@ -document.title = `龍族拼圖${teamsCount}人隊伍圖製作工具`; -document.body.querySelector(".formation-box .title-box .title").placeholder = "輸入隊伍標題"; -document.body.querySelector(".formation-box .detail-box .detail").placeholder = "輸入說明"; \ No newline at end of file +const localTranslating = { + webpage_title: `龍族拼圖${teamsCount}人隊伍圖製作工具`, + title_blank: "輸入隊伍標題", + detail_blank: "輸入說明", + sort_name:{ + sort_none: "Nope", + sort_id: "Cards Id", + sort_evoRootId: "Cards Evolution Root", + }, +} + +localisation(localTranslating); \ No newline at end of file diff --git a/languages/zh.css b/languages/zh.css index e0e3e6b3..70bb3c3d 100644 --- a/languages/zh.css +++ b/languages/zh.css @@ -268,6 +268,15 @@ .search-box .include-super-awoken-label::after{ content: "包括超觉醒"; } +.search-box .sort-div::before{ + content: "排序:"; +} +.search-box .sort-reverse-label::after{ + content: "顺序"; +} +.search-box #sort-reverse:checked+ .sort-reverse-label::after{ + content: "逆序"; +} .attrs .attr-all::before{ content: "不限"; } diff --git a/script.js b/script.js index 4f84cc46..33eb787b 100644 --- a/script.js +++ b/script.js @@ -791,6 +791,7 @@ function initialize() cli.appendChild(cdom); changeid({id:id},cdom); cdom.onclick = clickHeadToNewMon; + cli.card = Cards[id]; return cli; }; @@ -884,9 +885,10 @@ function initialize() }); }; - const searchStart = searchBox.querySelector(".control-div .search-start"); - const searchClose = searchBox.querySelector(".control-div .search-close"); - const searchClear = searchBox.querySelector(".control-div .search-clear"); + const s_controlDiv = searchBox.querySelector(".control-div"); + const searchStart = s_controlDiv.querySelector(".search-start"); + const searchClose = s_controlDiv.querySelector(".search-close"); + const searchClear = s_controlDiv.querySelector(".search-clear"); function returnCheckedInput(ipt) { return ipt.checked == true; @@ -910,6 +912,14 @@ function initialize() if (searchArr.length>0) { let fragment = document.createDocumentFragment(); //创建节点用的临时空间 + + const sortIndex = parseInt(s_sortList.value,10); + const reverse = s_sortReverse.checked; + searchArr.sort((card_a,card_b)=>{ + let sortNumber = sort_function_list[sortIndex].function(card_a,card_b); + if (reverse) sortNumber *= -1; + return sortNumber; + }); searchArr.forEach(function(card){ const cli = createCardHead(card.id); fragment.appendChild(cli); @@ -993,9 +1003,38 @@ function initialize() s_sawokens.forEach(t=>{ t.checked = false; }); + searchMonList.innerHTML = ""; }; + const s_sortList = s_controlDiv.querySelector(".sort-list"); + const s_sortReverse = s_controlDiv.querySelector("#sort-reverse"); + //对搜索到的Cards重新排序 + function reSortCards() + { + const sortIndex = parseInt(s_sortList.value,10); + const reverse = s_sortReverse.checked; + + searchMonList.classList.add("display-none"); + let fragment = document.createDocumentFragment(); //创建节点用的临时空间 + let headsArray = Array.prototype.slice.call(searchMonList.children); + headsArray.sort((head_a,head_b)=>{ + let sortNumber = sort_function_list[sortIndex].function(head_a.card,head_b.card); + if (reverse) sortNumber *= -1; + return sortNumber; + }); + headsArray.forEach(h=>fragment.appendChild(h)); + searchMonList.appendChild(fragment); + searchMonList.classList.remove("display-none"); + } + s_sortList.onchange = reSortCards; + s_sortReverse.onchange = reSortCards; + sort_function_list.forEach((sfunc,idx)=>{ + const newOpt = new Option(sfunc.name,idx); + newOpt.setAttribute("data-tag",sfunc.tag); + s_sortList.options.add(newOpt); + }); + //id搜索 const monstersID = settingBox.querySelector(".row-mon-id .m-id"); monstersID.onchange = function(){ @@ -2342,3 +2381,21 @@ function refreshMemberSkillCD(teamDom,team,idx){ assistSkillCdDom.classList.add("max-skill"); } } +function localisation($tra) +{ + if (!$tra) return; + document.title = $tra.webpage_title; + formationBox.querySelector(".title-box .title").placeholder = $tra.title_blank; + formationBox.querySelector(".detail-box .detail").placeholder = $tra.detail_blank; + + const s_sortList = editBox.querySelector(".search-box .sort-div .sort-list"); + const sortOptions = Array.prototype.slice.call(s_sortList.options); + sortOptions.forEach(opt=>{ + const tag = opt.getAttribute("data-tag"); + const trans = $tra.sort_name[tag]; + if (trans) + { + opt.text = trans; + } + }) +} \ No newline at end of file diff --git a/solo.html b/solo.html index 9ec45b6d..69d30cbf 100644 --- a/solo.html +++ b/solo.html @@ -9,6 +9,7 @@ + @@ -584,11 +585,15 @@ var formation = new Formation(teamsCount,6);
  • -
    +
    +
    + + +
    diff --git a/universal_function.js b/universal_function.js index 08c64ec5..a9548542 100644 --- a/universal_function.js +++ b/universal_function.js @@ -1,29 +1,4 @@ -//类型允许的潜觉杀,前面的数字是官方数据的类型编号,后面的杀是自己做的图片中的潜觉序号 -const type_allowable_latent = { - "0":[], //0进化 - "12":[], //12觉醒 - "14":[], //14强化 - "15":[], //15卖钱 - "9":[],//特殊保护 - "1":[17,18,19,20,21,22,23,24], //1平衡 - "2":[20,24],//2体力 - "3":[18,22],//3回复 - "4":[20,24],//4龙 - "5":[19],//5神 - "6":[19,23],//6攻击 - "7":[17],//7恶魔 - "8":[17,20,21,24],//8机械 -}; -//等效觉醒列表 -const equivalent_awoken = [ - {small:10,big:52,times:2}, //防封 - {small:11,big:68,times:5}, //防暗 - {small:12,big:69,times:5}, //防废 - {small:13,big:70,times:5}, //防毒 - {small:19,big:53,times:2}, //手指 - {small:21,big:56,times:2}, //SB -]; -//仿GM_xmlhttpRequest函数v1.3 +//仿GM_xmlhttpRequest函数v1.3 const GM_xmlhttpRequest = function(GM_param) { const xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象 xhr.open(GM_param.method, GM_param.url, true);