重新整理了页面控制部分

This commit is contained in:
枫谷剑仙 2024-07-29 12:07:28 +08:00
parent 0217bab711
commit bafe4b0adf
13 changed files with 485 additions and 366 deletions

BIN
images/icon-dungeon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -55,9 +55,9 @@
<noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript> <noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript>
<h1 class="title">智龙急速阵型<br>Puzzle & Dragons Dash Formation</h1> <h1 class="title">智龙急速阵型<br>Puzzle & Dragons Dash Formation</h1>
<ul class="control-box"> <ul class="control-box">
<li><a class="btn-solo-link" href="solo.html"><!--单人模式--></a></li> <li><a id="btn-solo-link" href="solo.html"><!--单人模式--></a></li>
<li><a class="btn-multi-link" href="multi.html"><!--多人模式--></a></li> <li><a id="btn-multi-link" href="multi.html"><!--多人模式--></a></li>
<li><a class="btn-triple-link" href="triple.html"><!--三人模式--></a></li> <li><a id="btn-triple-link" href="triple.html"><!--三人模式--></a></li>
<li><br></li> <li><br></li>
<li><a class="btn-guide-link" href="solo.html?guide=1"><!--图鉴模式--> - パズル&ドラゴンズ</a></li> <li><a class="btn-guide-link" href="solo.html?guide=1"><!--图鉴模式--> - パズル&ドラゴンズ</a></li>
<li><a class="btn-guide-link" href="solo.html?guide=1&s=en"><!--图鉴模式--> - Puzzle & Dragons</a></li> <li><a class="btn-guide-link" href="solo.html?guide=1&s=en"><!--图鉴模式--> - Puzzle & Dragons</a></li>

View File

@ -184,47 +184,47 @@ label[for="merge-skill"]::after{
label[for="datasource"]::after{ label[for="datasource"]::after{
content: "Game:"; content: "Game:";
} }
.control-box .btn-solo-link::before{ #player-number::before{
content: "🧑Jump To Solo Mode"; content: "Jump to:";
} }
.control-box .btn-multi-link::before{ label[for="player-number-1"]::after{
content: "🧑🤝🧑Jump To 2-Player Mode"; content: "Solo";
} }
.control-box .btn-triple-link::before{ label[for="player-number-2"]::after{
content: "👪Jump To 3-Player Mode"; content: "2-Player";
}
label[for="player-number-3"]::after{
content: "3-Player";
} }
.control-box .btn-guide-link::before{ .control-box .btn-guide-link::before{
content: "📓Guide Mode"; content: "📓Guide Mode";
} }
.control-box .btn-clear-data::before{ #btn-clear-data::after{
content: "🗑️Clear data"; content: "Clear data";
} }
#draw-screenshot::before{ #draw-screenshot::after{
content: "📷Draw screenshot"; content: "Draw screenshot";
} }
label[for="screenshot-transparent"]::after{ label[for="screenshot-transparent"]::after{
content: "Transparent"; content: "Transparent";
} }
.control-box .btn-player-data::before{ #btn-player-data::after{
content: "📦My Box"; content: "My Box";
} }
.control-box .btn-swap-AB-team::before{ #btn-swap-team::after{
content: "🔄Swap AB Team"; content: "Swap Team";
} }
.control-box .btn-swap-ABC-team::before{ #lbl-henshin-change::after{
content: "🔄Rotating ABC Team"; content: "Changes";
} }
.control-box .lbl-henshin-change::before{ #btn-remove-assist::after{
content: "🦸Changes"; content: "Remove Assist";
}
.control-box .lbl-remove-assist::before{
content: "⛔Remove Assist";
} }
.control-box .config-display-list summary::before{ .control-box .config-display-list summary::before{
content:"Displayed Information Switchs List"; content:"Displayed Information Switchs List";
} }
label[for="show-card-id"]::after{ label[for="show-card-id"]::after{
content:"🆔Card's ID"; content:"Card's ID";
} }
label[for="show-card-rarity"]::after{ label[for="show-card-rarity"]::after{
content:"Card's Rarity"; content:"Card's Rarity";
@ -558,7 +558,7 @@ label[for="real-time-change-card"]::after
margin: calc(-100px * (1 - 0.6) / 2); margin: calc(-100px * (1 - 0.6) / 2);
} }
.control-box .btn-qrcode::after{ #btn-qrcode::after{
content: "QR Code and Data exchange"; content: "QR Code and Data exchange";
} }

View File

@ -177,41 +177,41 @@ label[for="merge-skill"]::after{
label[for="datasource"]::after{ label[for="datasource"]::after{
content: "ゲーム:"; content: "ゲーム:";
} }
.control-box .btn-solo-link::before{ #player-number::before{
content: "🧑ソロモードに移動"; content: "ジャップ:";
} }
.control-box .btn-multi-link::before{ label[for="player-number-1"]::after{
content: "🧑🤝🧑2人協力モードムに移動"; content: "ソロ";
} }
.control-box .btn-triple-link::before{ label[for="player-number-2"]::after{
content: "👪3人協力モードに移動"; content: "2人";
}
label[for="player-number-3"]::after{
content: "3人";
} }
.control-box .btn-guide-link::before{ .control-box .btn-guide-link::before{
content: "📓図鑑モード"; content: "📓図鑑モード";
} }
.control-box .btn-clear-data::before{ #btn-clear-data::after{
content: "🗑️データの消去"; content: "データの消去";
} }
#draw-screenshot::before{ #draw-screenshot::after{
content: "📷スクリーンショットを描く"; content: "スクリーンショットを描く";
} }
label[for="screenshot-transparent"]::after{ label[for="screenshot-transparent"]::after{
content: "透明"; content: "透明";
} }
.control-box .btn-player-data::before{ #btn-player-data::after{
content: "📦私の箱"; content: "私の箱";
} }
.control-box .btn-swap-AB-team::before{ #btn-swap-team::after{
content: "🔄交換ABチーム"; content: "スワプティ";
} }
.control-box .btn-swap-ABC-team::before{ #lbl-henshin-change::after{
content: "🔄ローテーションABCチーム"; content: "変身";
} }
.control-box .lbl-henshin-change::before{ #btn-remove-assist::after{
content: "🦸変身"; content: "アシストを解除";
}
.control-box .lbl-remove-assist::before{
content: "⛔アシストを解除";
} }
.control-box .config-display-list summary::before{ .control-box .config-display-list summary::before{
content:"情報表示内容の開閉器一覧"; content:"情報表示内容の開閉器一覧";

View File

@ -173,41 +173,41 @@ label[for="merge-skill"]::after{
label[for="datasource"]::after{ label[for="datasource"]::after{
content: "게임:"; content: "게임:";
} }
.control-box .btn-solo-link::before{ #player-number::before{
content: "🧑1인 모드 이동"; content: "이동:";
} }
.control-box .btn-multi-link::before{ label[for="player-number-1"]::after{
content: "🧑🤝🧑2인 모드 이동"; content: "1인";
} }
.control-box .btn-triple-link::before{ label[for="player-number-2"]::after{
content: "👪3인 모드 이동"; content: "2인";
}
label[for="player-number-3"]::after{
content: "3인";
} }
.control-box .btn-guide-link::before{ .control-box .btn-guide-link::before{
content: "📓사진 모드"; content: "📓사진 모드";
} }
.control-box .btn-clear-data::before{ #btn-clear-data::after{
content: "🗑️데이터 지우기"; content: "데이터 지우기";
} }
#draw-screenshot::before{ #draw-screenshot::after{
content: "📷스크린 샷 그리기"; content: "스크린 샷 그리기";
} }
label[for="screenshot-transparent"]::after{ label[for="screenshot-transparent"]::after{
content: "투명한"; content: "투명한";
} }
.control-box .btn-player-data::before{ #btn-player-data::after{
content: "📦내 상자"; content: "내 상자";
} }
.control-box .btn-swap-AB-team::before{ #btn-swap-team::after{
content: "🔄교환 AB 팀"; content: "스옵트립";
} }
.control-box .btn-swap-ABC-team::before{ #lbl-henshin-change::after{
content: "🔄로테이션 ABC 팀"; content: "변신";
} }
.control-box .lbl-henshin-change::before{ #btn-remove-assist::after{
content: "🦸변신"; content: "보조를 해제합";
}
.control-box .lbl-remove-assist::before{
content: "⛔보조를 해제합";
} }
.control-box .config-display-list summary::before{ .control-box .config-display-list summary::before{
content:"표시된 정보 전환 목록"; content:"표시된 정보 전환 목록";
@ -496,7 +496,7 @@ label[for="real-time-change-card"]::after
content: "루프 변신"; content: "루프 변신";
} }
.control-box .btn-qrcode::after{ #btn-qrcode::after{
content: "QR 코드 및 데이터 교환"; content: "QR 코드 및 데이터 교환";
} }

View File

@ -2,10 +2,10 @@
label[for="languages"]::after{ label[for="languages"]::after{
content: "语言:"; content: "语言:";
} }
.help-link::after{ #help-link::after{
content: "帮助和提示"; content: "帮助和提示";
} }
.feedback-link::after{ #feedback-link::after{
content: "反馈"; content: "反馈";
} }
.monster.delay::before{ .monster.delay::before{
@ -120,7 +120,7 @@ label[for="merge-skill"]::after{
content: "取消修改"; content: "取消修改";
} }
.edit-box .button-box .button-done::after{ .edit-box .button-box .button-done::after{
content: "确认修改"; content: "保存修改";
} }
.edit-box .button-box .button-done.cant-assist::after{ .edit-box .button-box .button-done.cant-assist::after{
content: "不能辅助"; content: "不能辅助";
@ -179,41 +179,41 @@ label[for="merge-skill"]::after{
label[for="datasource"]::after{ label[for="datasource"]::after{
content: "游戏:"; content: "游戏:";
} }
.control-box .btn-solo-link::before{ #player-number::before{
content: "🧑转到单人游戏"; content: "跳转到:";
} }
.control-box .btn-multi-link::before{ label[for="player-number-1"]::after{
content: "🧑🤝🧑转到2人车队"; content: "单人";
} }
.control-box .btn-triple-link::before{ label[for="player-number-2"]::after{
content: "👪转到3人协力"; content: "2人";
}
label[for="player-number-3"]::after{
content: "3人";
} }
.control-box .btn-guide-link::before{ .control-box .btn-guide-link::before{
content: "📓图鉴模式"; content: "📓图鉴模式";
} }
.control-box .btn-clear-data::before{ #btn-clear-data::after{
content: "🗑️清除数据"; content: "清除数据";
} }
#draw-screenshot::before{ #draw-screenshot::after {
content: "📷绘制截图"; content: "绘制截图";
} }
label[for="screenshot-transparent"]::after{ label[for="screenshot-transparent"]::after{
content: "透明"; content: "透明";
} }
.control-box .btn-player-data::before{ #btn-player-data::after{
content: "📦我的箱子"; content: "我的箱子";
} }
.control-box .btn-swap-AB-team::before{ #btn-swap-team::after{
content: "🔄交换AB队"; content: "轮换队伍";
} }
.control-box .btn-swap-ABC-team::before{ #lbl-henshin-change::after{
content: "🔄轮换ABC队"; content: "变身";
} }
.control-box .lbl-henshin-change::before{ #btn-remove-assist::after{
content: "🦸变身"; content: "解除辅助";
}
.control-box .lbl-remove-assist::before{
content: "⛔解除辅助";
} }
.control-box .config-display-list summary::before{ .control-box .config-display-list summary::before{
content:"展示信息开关列表"; content:"展示信息开关列表";
@ -501,7 +501,7 @@ label[for="real-time-change-card"]::after
content: "循環変身"; content: "循環変身";
} }
.control-box .btn-qrcode::after{ #btn-qrcode::after{
content: "二维码 和 数据交换"; content: "二维码 和 数据交换";
} }

View File

@ -2,10 +2,10 @@
label[for="languages"]::after{ label[for="languages"]::after{
content: "語言:"; content: "語言:";
} }
.help-link::before{ #help-link::before{
content: "\f05a 幫助和提示"; content: "\f05a 幫助和提示";
} }
.feedback-link::before{ #feedback-link::before{
content: "\f4ad 反饋"; content: "\f4ad 反饋";
} }
.monster.delay::before{ .monster.delay::before{
@ -179,42 +179,41 @@ label[for="merge-skill"]::after{
label[for="datasource"]::after{ label[for="datasource"]::after{
content: "遊戲:"; content: "遊戲:";
} }
.control-box .btn-solo-link::before{ #player-number::before{
content: "🧑轉到單人遊戲"; content: "跳轉到:";
} }
.control-box .btn-multi-link::before{ label[for="player-number-1"]::after{
content: "🧑🤝🧑轉到2人車隊"; content: "單人";
} }
.control-box .btn-triple-link::before{ label[for="player-number-2"]::after{
content: "👪轉到2人協力"; content: "2人";
}
label[for="player-number-3"]::after{
content: "3人";
} }
.control-box .btn-guide-link::before{ .control-box .btn-guide-link::before{
content: "📓圖鑒模式"; content: "📓圖鑒模式";
} }
.control-box .btn-clear-data::before{ #btn-clear-data::after{
content: "🗑️清除數據"; content: "清除數據";
} }
#draw-screenshot::before{ #draw-screenshot::after{
content: "📷繪製截圖"; content: "繪製截圖";
} }
label[for="screenshot-transparent"]::after{ label[for="screenshot-transparent"]::after{
content: "透明"; content: "透明";
} }
.control-box .btn-player-data::before{ #btn-player-data::after{
content: "📦我的箱子"; content: "我的箱子";
} }
#btn-swap-team::after{
.control-box .btn-swap-AB-team::before{ content: "輪換隊伍";
content: "🔄交換AB隊";
} }
.control-box .btn-swap-ABC-team::before{ #lbl-henshin-change::after{
content: "🔄輪換ABC隊"; content: "變身";
} }
.control-box .lbl-henshin-change::before{ #btn-remove-assist::after{
content: "🦸變身"; content: "解除輔助";
}
.control-box .lbl-remove-assist::before{
content: "⛔解除輔助";
} }
.control-box .config-display-list summary::before{ .control-box .config-display-list summary::before{
content:"展示信息開關列表"; content:"展示信息開關列表";
@ -502,7 +501,7 @@ label[for="real-time-change-card"]::after
content: "循環變身"; content: "循環變身";
} }
.control-box .btn-qrcode::after{ #btn-qrcode::after{
content: "二維碼 和 數據交換"; content: "二維碼 和 數據交換";
} }

View File

@ -52,23 +52,31 @@ const teamsCount = 2;
<body class="show-awoken-count"> <body class="show-awoken-count">
<noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript> <noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript>
<div class="control-box"> <div class="control-box">
<a class="down-capture display-none" target="_blank"></a>
<div> <div>
<label for="languages"></label><select class="languages" id="languages"></select> <label for="languages"></label><select id="languages"></select>
<label for="datasource"></label><select class="datasource" id="datasource"></select> <label for="datasource"></label><select id="datasource"></select>
<button onclick="loadData(true);" id="datasource-updatetime" title="强制刷新数据"></button> <button id="datasource-updatetime" title="强制刷新数据"></button>
<a class="help-link" target="_blank" href="doc/index.html"></a> <a id="help-link" target="_blank" href="doc/index.html"></a>
<a class="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a> <a id="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a>
</div> </div>
<div> <div>
<button class="btn-clear-data" onclick="clearData();"></button> <button id="btn-qrcode"></button>
<button class="btn-player-data"></button> <form id="player-number">
<button class="btn-solo-link" onclick="turnPage(1,arguments[0]);"></button><button class="btn-multi-link" disabled></button><button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> <ul class="horizontally-radio-list">
<button class="btn-swap-AB-team" onclick="swapABCteam();"></button> <li><input type="radio" name="player-number" value="1" id="player-number-1" /><label for="player-number-1"></label></li>
<li><input type="radio" name="player-number" value="2" id="player-number-2" /><label for="player-number-2"></label></li>
<li><input type="radio" name="player-number" value="3" id="player-number-3" /><label for="player-number-3"></label></li>
</ul>
</form>
<button id="btn-swap-team"></button>
<button id="btn-clear-data"></button>
<button id="btn-player-data"></button>
</div> </div>
<div> <div>
<a class="down-capture display-none" target="_blank"></a> <button id="draw-screenshot"></button>
<button class="btn-qrcode fa"></button> <input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label>
<button id="draw-screenshot"><input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label></button>
<label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/> <label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/>
<input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label> <input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label>
</div> </div>
@ -79,7 +87,7 @@ const teamsCount = 2;
<div class="attrs"> <div class="attrs">
<div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div> <div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div>
</div> </div>
<div class="plus"><div class="hp">999</div><div class="atk">999</div><div class="rcv">999</div></div> <div class="plus"><div class="hp">999</div></div>
<div class="awoken-count-num" data-value="99"></div> <div class="awoken-count-num" data-value="99"></div>
<div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div> <div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div>
<div class="level" data-value="999" data-level-range="120"></div> <div class="level" data-value="999" data-level-range="120"></div>
@ -107,9 +115,11 @@ const teamsCount = 2;
<input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label> <input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label>
</details> </details>
<div class="status"></div> <div class="status"></div>
<div> <div class="formation-control">
<span class="lbl-henshin-change"><button class="btn-henshin" data-step="-1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button><button class="btn-henshin" data-step="+1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button></span> <span id="lbl-henshin-change"></span>
<span class="lbl-remove-assist"><button class="btn-remove-assist" onclick="formation.removeAssist();"></span> <button class="btn-henshin" data-step="-1"></button>
<button class="btn-henshin" data-step="+1"></button>
<button id="btn-remove-assist"></button>
<button id="btn-set-dungeon-enchance"></button> <button id="btn-set-dungeon-enchance"></button>
</div> </div>
</div> </div>
@ -123,7 +133,7 @@ const teamsCount = 2;
<div class="tIf-total-hp"> <div class="tIf-total-hp">
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
<span class="reduce fa"> <span class="reduce">
<span class="reduce-scale"></span> <span class="reduce-scale"></span>
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
@ -1241,10 +1251,10 @@ const teamsCount = 2;
<ul class="special-filter-list"> <ul class="special-filter-list">
<li> <li>
<select class="special-filter"></select> <select class="special-filter"></select>
<button class="copy-filter"></button> <button class="copy-filter brown-button"></button>
<button class="shift-up-filter"></button> <button class="shift-up-filter brown-button"></button>
<button class="shift-down-filter"></button> <button class="shift-down-filter brown-button"></button>
<button class="remove-filter"></button> <button class="remove-filter brown-button"></button>
</li> </li>
</ul> </ul>
</div> </div>
@ -1487,10 +1497,10 @@ const teamsCount = 2;
</div> </div>
</div> </div>
<div class="button-box"> <div class="button-box">
<button class="button-null"><!--留空格子--></button> <button class="button-null brown-button"><!--留空格子--></button>
<button class="button-delay"><!--应对威吓--></button> <button class="button-delay brown-button"><!--应对威吓--></button>
<button class="button-done"><!--确认修改--></button> <button class="button-cancel brown-button"><!--取消修改--></button>
<button class="button-cancel"><!--取消修改--></button> <button class="button-done brown-button"><!--确认修改--></button>
</div> </div>
<template id="template-card-a"> <template id="template-card-a">
@ -1509,10 +1519,10 @@ const teamsCount = 2;
<div class="action-button-box"> <div class="action-button-box">
<div class="read-text-box"> <div class="read-text-box">
<input class="string-input" type="text"/> <input class="string-input" type="text"/>
<button class="read-string brown-button fa"><!--读字符串--></button> <button class="read-string brown-button"><!--读字符串--></button>
</div> </div>
<button class="read-qr-camera brown-button fa"><!--相机扫--></button> <button class="read-qr-camera brown-button"><!--相机扫--></button>
<button class="read-qr-file brown-button fa"><!--读文件--></button> <button class="read-qr-file brown-button"><!--读文件--></button>
<input type="file" accept="image/*" class="file-select display-none"> <input type="file" accept="image/*" class="file-select display-none">
</div> </div>
<div class="info"> <div class="info">
@ -1532,7 +1542,7 @@ const teamsCount = 2;
</ul> </ul>
<input class="string-output" type="text" readonly/> <input class="string-output" type="text" readonly/>
<div class="qr-box"><img class="qr-code-image" /></div> <div class="qr-box"><img class="qr-code-image" /></div>
<a download="" class="save-qr-img brown-button fa"><!--保存QR 图片--></a> <a download="" class="save-qr-img brown-button"><!--保存QR 图片--></a>
</div> </div>
<div class="paddb-team-edit"> <div class="paddb-team-edit">
<div class="user"> <div class="user">
@ -1545,7 +1555,7 @@ const teamsCount = 2;
</div> </div>
</div> </div>
</div> </div>
<a id="external-support" class="brown-button fa" href="doc/index.html#data-exchange-with-paddb"></a> <a id="external-support" class="brown-button" href="doc/index.html#data-exchange-with-paddb"></a>
</div> </div>
@ -1614,10 +1624,10 @@ const teamsCount = 2;
</dialog> </dialog>
<div id="player-data-frame" class="mask display-none"> <div id="player-data-frame" class="mask display-none">
<div class="player-box-title fa"><!--玩家数据子--></div> <div class="player-box-title"><!--玩家数据子--></div>
<div class="control-button-box"> <div class="control-button-box">
<button class="mask-close brown-button fa"></button> <button class="mask-close brown-button"></button>
<button class="upload-data brown-button fa"></button> <button class="upload-data brown-button"></button>
<input type="file" class="file-select display-none" multiple/> <input type="file" class="file-select display-none" multiple/>
<a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a> <a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a>
<input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label> <input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label>
@ -1638,7 +1648,7 @@ const teamsCount = 2;
</div> </div>
</td> </td>
<td class="name"></td> <td class="name"></td>
<td class="control"><button class="brown-button set-default fa"></button><button class="brown-button delete fa"></button></td> <td class="control"><button class="brown-button set-default"></button><button class="brown-button delete"></button></td>
</tr> </tr>
<tr> <tr>
<td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td> <td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td>
@ -1733,7 +1743,7 @@ const teamsCount = 2;
</tr> </tr>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<button class="brown-button open-show-box fa"></button> <button class="brown-button open-show-box"></button>
</td> </td>
</tr> </tr>
</tbody> </tbody>

181
script.js
View File

@ -1819,24 +1819,6 @@ class RequirementTree extends EvoTree
}; };
} }
//清除数据
function clearData()
{
const locationURL = new URL(location);
locationURL.searchParams.delete('d'); //删除数据
locationURL.searchParams.delete('l'); //删除语言
locationURL.searchParams.delete('_id'); //删除PADDB的ID
location = locationURL.toString();
}
//轮换ABC队伍
function swapABCteam()
{
if (formation.teams.length > 1) {
formation.teams.push(formation.teams.splice(0, 1)[0]); //将队伍1移动到最后
createNewUrl();
refreshAll(formation);
}
}
function henshinStep(step) function henshinStep(step)
{ {
if (step == 0) return; if (step == 0) return;
@ -1873,61 +1855,6 @@ function henshinStep(step)
createNewUrl({replaceState: true}); createNewUrl({replaceState: true});
refreshAll(formation); refreshAll(formation);
} }
//在单人和多人之间转移数据
function turnPage(toPage, e = null) {
let pagename = null;
switch (toPage) {
case 1:
if (formation.teams[0][0].length < 6) {
//把第二支队伍的队长添加到最后方
formation.teams[0][0].push(formation.teams[1][0][0]);
formation.teams[0][1].push(formation.teams[1][1][0]);
}
//删掉第2支开始的队伍
formation.teams.splice(1);
pagename = "solo.html";
break;
case 2:
if (formation.teams.length < 2) { //从1人到2人
formation.teams[1] = [
[],
[]
];
//把右边的队长加到第二支队伍最后面
formation.teams[1][0].splice(0, 0, formation.teams[0][0].splice(5, 1)[0]);
formation.teams[1][1].splice(0, 0, formation.teams[0][1].splice(5, 1)[0]);
} else { //从3人到2人直接删除后面两个队伍
//删掉第3支开始的队伍
formation.teams.splice(2);
//删掉前面两支队伍的战友
formation.teams[0][0].splice(5);
formation.teams[0][1].splice(5);
formation.teams[1][0].splice(5);
formation.teams[1][1].splice(5);
}
formation.badge = 0;
pagename = "multi.html";
break;
case 3:
if (formation.teams.length < 2) { //从1人到3人
} else { //从2人到3人
formation.teams[0][0].push(formation.teams[1][0][0]);
formation.teams[0][1].push(formation.teams[1][1][0]);
formation.teams[1][0].push(formation.teams[0][0][0]);
formation.teams[1][1].push(formation.teams[0][1][0]);
}
formation.badge = 0;
pagename = "triple.html";
break;
}
const newURL = createNewUrl({ url: pagename, onlyReturnUrl: true });
if (e && e.ctrlKey) {
window.open(newURL);
} else {
location.href = newURL;
}
}
function loadData(force = false) function loadData(force = false)
{ {
if (force) if (force)
@ -2747,6 +2674,109 @@ function initialize() {
line.setAttribute("y2", p2.y); line.setAttribute("y2", p2.y);
}; };
const btnDataUpdateTime = controlBox.querySelector("#datasource-updatetime");
btnDataUpdateTime.onclick = function() {
loadData(true); //强制更新数据
};
const btnClearData = controlBox.querySelector("#btn-clear-data");
btnClearData.onclick = function() {
const locationURL = new URL(location);
locationURL.searchParams.delete('d'); //删除数据
locationURL.searchParams.delete('l'); //删除语言
locationURL.searchParams.delete('_id'); //删除PADDB的ID
location = locationURL.toString();
};
const formPlayerNumber = controlBox.querySelector("#player-number");
formPlayerNumber.onchange = function(event) {
const formData = new FormData(this);
const newPlayerNumber = parseInt(formData.get("player-number"), 10);
if (newPlayerNumber) {
turnPage(newPlayerNumber);
}
}
formPlayerNumber.querySelectorAll("input[name=\"player-number\"]")[teamsCount-1].checked = true;
//在单人和多人之间转移数据
function turnPage(toPage, e = null) {
let pagename = null;
switch (toPage) {
case 1:
if (formation.teams[0][0].length < 6) {
//把第二支队伍的队长添加到最后方
formation.teams[0][0].push(formation.teams[1][0][0]);
formation.teams[0][1].push(formation.teams[1][1][0]);
}
//删掉第2支开始的队伍
formation.teams.splice(1);
pagename = "solo.html";
break;
case 2:
if (formation.teams.length < 2) { //从1人到2人
formation.teams[1] = [
[],
[]
];
//把右边的队长加到第二支队伍最后面
formation.teams[1][0].splice(0, 0, formation.teams[0][0].splice(5, 1)[0]);
formation.teams[1][1].splice(0, 0, formation.teams[0][1].splice(5, 1)[0]);
} else { //从3人到2人直接删除后面两个队伍
//删掉第3支开始的队伍
formation.teams.splice(2);
//删掉前面两支队伍的战友
formation.teams[0][0].splice(5);
formation.teams[0][1].splice(5);
formation.teams[1][0].splice(5);
formation.teams[1][1].splice(5);
}
formation.badge = 0;
pagename = "multi.html";
break;
case 3:
if (formation.teams.length < 2) { //从1人到3人
} else { //从2人到3人
formation.teams[0][0].push(formation.teams[1][0][0]);
formation.teams[0][1].push(formation.teams[1][1][0]);
formation.teams[1][0].push(formation.teams[0][0][0]);
formation.teams[1][1].push(formation.teams[0][1][0]);
}
formation.badge = 0;
pagename = "triple.html";
break;
}
const newURL = createNewUrl({ url: pagename, onlyReturnUrl: true });
if (e && e.ctrlKey) {
window.open(newURL);
} else {
location.href = newURL;
}
}
//轮换ABC队伍
const btnSwapTeam = controlBox.querySelector("#btn-swap-team");
btnSwapTeam.onclick = function() {
if (formation.teams.length > 1) {
formation.teams.push(formation.teams.splice(0, 1)[0]); //将队伍1移动到最后
createNewUrl();
refreshAll(formation);
}
}
//变身前进后退
const btnHenshinArr = [...controlBox.querySelectorAll(".btn-henshin")];
btnHenshinArr.forEach(btn=>btn.onclick = henshinStepButton);
function henshinStepButton(event) {
return henshinStep(parseInt(this.dataset.step,10));
}
//去除辅助
const btnRemoveAssist = controlBox.querySelector("#btn-remove-assist");
btnRemoveAssist.onclick = function() {
formation.removeAssist();
}
//初始化所有mask的关闭按钮 //初始化所有mask的关闭按钮
const masks = document.body.querySelectorAll(".mask"); const masks = document.body.querySelectorAll(".mask");
masks.forEach(mask=>{ masks.forEach(mask=>{
@ -2761,7 +2791,7 @@ function initialize() {
}; };
}); });
const qrCodeFrame = document.body.querySelector("#qr-code-frame"); const qrCodeFrame = document.body.querySelector("#qr-code-frame");
const btnQrCode = controlBox.querySelector(`.btn-qrcode`); const btnQrCode = controlBox.querySelector(`#btn-qrcode`);
btnQrCode.onclick = function(){ btnQrCode.onclick = function(){
qrCodeFrame.show(); qrCodeFrame.show();
}; };
@ -3131,7 +3161,7 @@ function initialize() {
} }
const playerDataFrame = document.body.querySelector("#player-data-frame"); const playerDataFrame = document.body.querySelector("#player-data-frame");
const btnPlayerData = controlBox.querySelector(`.btn-player-data`); const btnPlayerData = controlBox.querySelector(`#btn-player-data`);
btnPlayerData.onclick = function(){ btnPlayerData.onclick = function(){
playerDataFrame.show(); playerDataFrame.show();
}; };
@ -3899,7 +3929,6 @@ function initialize() {
const li = document.createElement("li"); const li = document.createElement("li");
const radio = li.appendChild(document.createElement("input")); const radio = li.appendChild(document.createElement("input"));
radio.type="radio"; radio.type="radio";
radio.className = "hide-radio";
radio.value = bgId; radio.value = bgId;
radio.name = badgeChooseName; radio.name = badgeChooseName;
radio.id = `${radio.name}-${bgId}`; radio.id = `${radio.name}-${bgId}`;

View File

@ -32311,11 +32311,11 @@ const cachesMap = new Map([
], ],
[ [
"index.html", "index.html",
"85fbead60e925bd4ddbeff3c41dc7e4e" "31547a3fb252a10d505813ccc41dff53"
], ],
[ [
"multi.html", "multi.html",
"ef8b77ed22257043aa2feb5011d50711" "9b02c70775a94e796622c12af95040f9"
], ],
[ [
"script-custom_elements.js", "script-custom_elements.js",
@ -32335,11 +32335,11 @@ const cachesMap = new Map([
], ],
[ [
"script.js", "script.js",
"669ff567d056349838dd31918ba5d518" "c7c5a6235bf493adc74b6ba2e07e7281"
], ],
[ [
"solo.html", "solo.html",
"c56f8538c50ca10224097ec96487a7ca" "82c349f550027351f61f3c259476192d"
], ],
[ [
"style-monsterimages.css", "style-monsterimages.css",
@ -32347,7 +32347,7 @@ const cachesMap = new Map([
], ],
[ [
"style.css", "style.css",
"1a5c25f37b6f053d824f69a95ff2f0ac" "bba2aa9b132683f673c4f1b98160060a"
], ],
[ [
"temp.js", "temp.js",
@ -32355,11 +32355,11 @@ const cachesMap = new Map([
], ],
[ [
"triple.html", "triple.html",
"ee62c5f5155957f3677e91cbe0cf9c42" "3bc2fc342ee70881b6a7053eb6ca9a99"
], ],
[ [
"languages/en.css", "languages/en.css",
"303c429e4dbff852fa693ee3554d50c7" "5f71a278d07e34177b4a69c7e466310d"
], ],
[ [
"languages/en.js", "languages/en.js",
@ -32367,7 +32367,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/ja.css", "languages/ja.css",
"cf65de21289e398c959063a2d08c833b" "8c78b0e7b5ba4b336cbe2a8a3e2455e3"
], ],
[ [
"languages/ja.js", "languages/ja.js",
@ -32375,7 +32375,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/ko.css", "languages/ko.css",
"10b25940cb5923fd63b39a9c02b4b957" "28b0871e7c7166f2b0266fed3083c1bb"
], ],
[ [
"languages/ko.js", "languages/ko.js",
@ -32387,7 +32387,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh-hans.css", "languages/zh-hans.css",
"4c9116d3e9d22a171271346d8f79a2ae" "dcb1c5708633e0889c9aee23725a32fd"
], ],
[ [
"languages/zh-hans.js", "languages/zh-hans.js",
@ -32395,7 +32395,7 @@ const cachesMap = new Map([
], ],
[ [
"languages/zh-hant.css", "languages/zh-hant.css",
"a7ce01454f8233168f34fa711d35f349" "c041685f375be00e43a5d8b014ff2c70"
], ],
[ [
"languages/zh-hant.js", "languages/zh-hant.js",
@ -32485,6 +32485,10 @@ const cachesMap = new Map([
"images/icon-deep-dark.png", "images/icon-deep-dark.png",
"67c2cc69a6657fb7cb3d8e2d2bed9c11" "67c2cc69a6657fb7cb3d8e2d2bed9c11"
], ],
[
"images/icon-dungeon.png",
"bc7e880d1de2b6b6a3b8b1dd0a55f8fd"
],
[ [
"images/icon-evolved-skill-loop.png", "images/icon-evolved-skill-loop.png",
"104ac97dfd9a6558c7cd90cff068572c" "104ac97dfd9a6558c7cd90cff068572c"

View File

@ -32,22 +32,31 @@ const teamsCount = 1;
<body class="solo"> <body class="solo">
<noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript> <noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript>
<div class="control-box"> <div class="control-box">
<a class="down-capture display-none" target="_blank"></a>
<div> <div>
<label for="languages"></label><select class="languages" id="languages"></select> <label for="languages"></label><select id="languages"></select>
<label for="datasource"></label><select class="datasource" id="datasource"></select> <label for="datasource"></label><select id="datasource"></select>
<button onclick="loadData(true);" id="datasource-updatetime" title="强制刷新数据"></button> <button id="datasource-updatetime" title="强制刷新数据"></button>
<a class="help-link" target="_blank" href="doc/index.html"></a> <a id="help-link" target="_blank" href="doc/index.html"></a>
<a class="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a> <a id="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a>
</div> </div>
<div> <div>
<button class="btn-clear-data" onclick="clearData();"></button> <button id="btn-qrcode"></button>
<button class="btn-player-data"></button> <form id="player-number">
<button class="btn-solo-link" disabled></button><button class="btn-multi-link" onclick="turnPage(2,arguments[0]);"></button><button class="btn-triple-link" onclick="turnPage(3,arguments[0]);"></button> <ul class="horizontally-radio-list">
<li><input type="radio" name="player-number" value="1" id="player-number-1" /><label for="player-number-1"></label></li>
<li><input type="radio" name="player-number" value="2" id="player-number-2" /><label for="player-number-2"></label></li>
<li><input type="radio" name="player-number" value="3" id="player-number-3" /><label for="player-number-3"></label></li>
</ul>
</form>
<button id="btn-swap-team"></button>
<button id="btn-clear-data"></button>
<button id="btn-player-data"></button>
</div> </div>
<div> <div>
<a class="down-capture display-none" target="_blank"></a> <button id="draw-screenshot"></button>
<button class="btn-qrcode fa"></button> <input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label>
<button id="draw-screenshot"><input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label></button>
<label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/> <label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/>
<input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label> <input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label>
</div> </div>
@ -58,7 +67,7 @@ const teamsCount = 1;
<div class="attrs"> <div class="attrs">
<div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div> <div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div>
</div> </div>
<div class="plus"><div class="hp">999</div><div class="atk">999</div><div class="rcv">999</div></div> <div class="plus"><div class="hp">999</div></div>
<div class="awoken-count-num" data-value="99"></div> <div class="awoken-count-num" data-value="99"></div>
<div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div> <div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div>
<div class="level" data-value="999" data-level-range="120"></div> <div class="level" data-value="999" data-level-range="120"></div>
@ -86,9 +95,11 @@ const teamsCount = 1;
<input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label> <input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label>
</details> </details>
<div class="status"></div> <div class="status"></div>
<div> <div class="formation-control">
<span class="lbl-henshin-change"><button class="btn-henshin" data-step="-1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button><button class="btn-henshin" data-step="+1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button></span> <span id="lbl-henshin-change"></span>
<span class="lbl-remove-assist"><button class="btn-remove-assist" onclick="formation.removeAssist();"></span> <button class="btn-henshin" data-step="-1"></button>
<button class="btn-henshin" data-step="+1"></button>
<button id="btn-remove-assist"></button>
<button id="btn-set-dungeon-enchance"></button> <button id="btn-set-dungeon-enchance"></button>
</div> </div>
</div> </div>
@ -129,7 +140,7 @@ const teamsCount = 1;
<div class="tIf-total-hp"> <div class="tIf-total-hp">
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
<span class="reduce fa"> <span class="reduce">
<span class="reduce-scale"></span> <span class="reduce-scale"></span>
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
@ -1246,10 +1257,10 @@ const teamsCount = 1;
<div class="action-button-box"> <div class="action-button-box">
<div class="read-text-box"> <div class="read-text-box">
<input class="string-input" type="text"/> <input class="string-input" type="text"/>
<button class="read-string brown-button fa"><!--读字符串--></button> <button class="read-string brown-button"><!--读字符串--></button>
</div> </div>
<button class="read-qr-camera brown-button fa"><!--相机扫--></button> <button class="read-qr-camera brown-button"><!--相机扫--></button>
<button class="read-qr-file brown-button fa"><!--读文件--></button> <button class="read-qr-file brown-button"><!--读文件--></button>
<input type="file" accept="image/*" class="file-select display-none"> <input type="file" accept="image/*" class="file-select display-none">
</div> </div>
<div class="info"> <div class="info">
@ -1269,7 +1280,7 @@ const teamsCount = 1;
</ul> </ul>
<input class="string-output" type="text" readonly/> <input class="string-output" type="text" readonly/>
<div class="qr-box"><img class="qr-code-image" /></div> <div class="qr-box"><img class="qr-code-image" /></div>
<a download="" class="save-qr-img brown-button fa"><!--保存QR 图片--></a> <a download="" class="save-qr-img brown-button"><!--保存QR 图片--></a>
</div> </div>
<div class="paddb-team-edit"> <div class="paddb-team-edit">
<div class="user"> <div class="user">
@ -1282,7 +1293,7 @@ const teamsCount = 1;
</div> </div>
</div> </div>
</div> </div>
<a id="external-support" class="brown-button fa" href="doc/index.html#data-exchange-with-paddb"></a> <a id="external-support" class="brown-button" href="doc/index.html#data-exchange-with-paddb"></a>
</div> </div>
@ -1351,10 +1362,10 @@ const teamsCount = 1;
</dialog> </dialog>
<div id="player-data-frame" class="mask display-none"> <div id="player-data-frame" class="mask display-none">
<div class="player-box-title fa"><!--玩家数据子--></div> <div class="player-box-title"><!--玩家数据子--></div>
<div class="control-button-box"> <div class="control-button-box">
<button class="mask-close brown-button fa"></button> <button class="mask-close brown-button"></button>
<button class="upload-data brown-button fa"></button> <button class="upload-data brown-button"></button>
<input type="file" class="file-select display-none" multiple/> <input type="file" class="file-select display-none" multiple/>
<a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a> <a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a>
<input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label> <input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label>
@ -1375,7 +1386,7 @@ const teamsCount = 1;
</div> </div>
</td> </td>
<td class="name"></td> <td class="name"></td>
<td class="control"><button class="brown-button set-default fa"></button><button class="brown-button delete fa"></button></td> <td class="control"><button class="brown-button set-default"></button><button class="brown-button delete"></button></td>
</tr> </tr>
<tr> <tr>
<td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td> <td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td>
@ -1470,7 +1481,7 @@ const teamsCount = 1;
</tr> </tr>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<button class="brown-button open-show-box fa"></button> <button class="brown-button open-show-box"></button>
</td> </td>
</tr> </tr>
</tbody> </tbody>

176
style.css
View File

@ -57,8 +57,8 @@ body{
margin: 0; margin: 0;
background-color: white; background-color: white;
} }
.hide-radio { details>summary {
display: none; cursor: pointer;
} }
details>summary:hover { details>summary:hover {
background-color: #00000044; background-color: #00000044;
@ -66,51 +66,111 @@ details>summary:hover {
.control-box, .control-box,
.formation-box .formation-box
{ {
margin: 10px; --margin: 10px;
}
.control-box {
margin: var(--margin) var(--margin) 0 var(--margin);
}
.formation-box {
margin: 0 var(--margin) var(--margin) var(--margin);
} }
.control-box{margin-bottom: 0;}
.formation-box{margin-top: 0;}
.noscript { .noscript {
color: red; color: red;
font-size: 2em; font-size: 2em;
} }
.display-none{ .display-none {
display:none !important; display:none !important;
} }
.disabled{ .disabled {
cursor: not-allowed; cursor: not-allowed;
pointer-events: none; pointer-events: none;
opacity: 0.5; opacity: 0.5;
} }
details>summary {
cursor: pointer; /*控制框*/
}
.control-box :where( .control-box :where(
label, label,
button, button,
a, a,
)::before { )::before {
font-family: var(--icon-font-family); font-family: var(--icon-font-family);
margin-right: 3px;
} }
.control-box>div
.help-link { {
margin-bottom: 2px;
}
label[for="languages"]::before{
content: "\f1ab";
}
label[for="languages"]::after{
content: "Lanuage:";
}
label[for="datasource"]::before{
content: "\f11b";
}
#datasource-updatetime::before{
content: "\f073";
}
#help-link {
cursor: help; cursor: help;
} }
.help-link::before{ #help-link::before{
content: "\f05a"; content: "\f05a";
} }
.help-link::after{ #help-link::after{
content: "Help & Tips"; content: "Help & Tips";
} }
.feedback-link::before{ #feedback-link::before{
content: "\f4ad"; content: "\f4ad";
} }
.feedback-link::after{ #feedback-link::after{
content: "Feedback"; content: "Feedback";
} }
.control-box .btn-qrcode::before {
#btn-clear-data::before{
content: "\f2ed";
}
#btn-player-data::before,
#player-data-frame .player-box-title::before
{
content: "\f2bd";
}
#player-number {
display: inline-flex;
}
#player-number input {
display: none;
}
#player-number .horizontally-radio-list label {
padding: 0 3px;
}
label[for="player-number-1"]::before{
content: "\f183";
}
label[for="player-number-2"]::before{
content: "\e068";
}
label[for="player-number-3"]::before{
content: "\e591";
}
#btn-swap-team::before{
content: "\f2f1";
}
.solo #btn-swap-team {
display: none;
}
#draw-screenshot::before{
content: "\f03e";
}
#btn-qrcode::before {
content: "\f029"; content: "\f029";
} }
label[for="screenshot-transparent"] {
margin-right: 10px;
}
#rich-text-tools { #rich-text-tools {
background-color: rgba(200,200,200,0.5); background-color: rgba(200,200,200,0.5);
@ -858,6 +918,9 @@ body:not(.show-team-total-info):not(.solo) .formation-box .team-bigbox
grid-gap: 15px; grid-gap: 15px;
margin: 10px; margin: 10px;
} }
#badge-choose .team-badges input {
display: none;
}
button.badge { button.badge {
border: none; border: none;
background-color: unset; background-color: unset;
@ -1877,6 +1940,7 @@ label[for="search-string"]::before {
} }
.horizontally-radio-list { .horizontally-radio-list {
display: flex; display: flex;
color: white;
} }
.horizontally-radio-list>li { .horizontally-radio-list>li {
border: 1px solid white; border: 1px solid white;
@ -3187,26 +3251,6 @@ a.series-search::before {
.detail-box{ .detail-box{
margin-top:5px; margin-top:5px;
} }
/*控制框*/
.control-box{
margin-bottom: 10px;
}
.control-box>div
{
margin-bottom: 2px;
}
label[for="languages"]::before{
content: "\f1ab";
}
label[for="languages"]::after{
content: "Lanuage:";
}
label[for="datasource"]::before{
content: "\f11b";
}
#datasource-updatetime::before{
content: "\f073";
}
/* /*
.control-box .btn-show-mon-skill-cd::before{ .control-box .btn-show-mon-skill-cd::before{
@ -3222,9 +3266,17 @@ label[for="datasource"]::before{
content: "🕴️变身"; content: "🕴️变身";
} }
*/ */
.control-box .lbl-henshin-change button .formation-control {
{ display: flex;
font-size: 1.5em; align-items: center;
gap: 5px;
}
.formation-control button {
font-size: 1.25em;
}
#lbl-henshin-change::before{
content: "\e551";
font-family: var(--icon-font-family);
} }
.control-box .btn-henshin::before{ .control-box .btn-henshin::before{
content: "\f04e"; content: "\f04e";
@ -3233,26 +3285,27 @@ label[for="datasource"]::before{
.control-box .btn-henshin[data-step^="-"]::before{ .control-box .btn-henshin[data-step^="-"]::before{
content: "\f04a"; content: "\f04a";
} }
#btn-set-dungeon-enchance { #btn-set-dungeon-enchance,
font-size: 1.2em; #btn-remove-assist {
margin-left: 1em; display: inline-flex;
align-items: center;
} }
#btn-set-dungeon-enchance::before #btn-set-dungeon-enchance::before,
#btn-remove-assist::before
{ {
content: "\f6d9";
font-family: var(--icon-font-family);
}
.control-box .btn-remove-assist{
vertical-align: bottom;
}
.control-box .btn-remove-assist::before{
content: ""; content: "";
background-image: url(images/icon-assist-bind.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: contain; background-size: contain;
display: block; background-position: center;
width: 2em; display: inline-block;
height: 2em; width: 1em;
height: 1em;
}
#btn-set-dungeon-enchance::before {
background-image: url(images/icon-dungeon.png);
}
#btn-remove-assist::before{
background-image: url(images/icon-assist-bind.png);
} }
#interchange-line{ #interchange-line{
pointer-events: none; pointer-events: none;
@ -3742,7 +3795,11 @@ table .orb-icon
#default-level { #default-level {
width: 50px; width: 50px;
} }
#player-data-frame .brown-button::before,
#qr-code-frame .brown-button::before {
font-family: var(--icon-font-family);
margin-right: 3px;
}
#qr-code-frame .save-qr-img::before #qr-code-frame .save-qr-img::before
{ {
content: "\f0c7"; content: "\f0c7";
@ -3872,6 +3929,9 @@ body.external-link-support #external-support{
text-align: center; text-align: center;
font-size: 2em; font-size: 2em;
} }
#player-data-frame .player-box-title::before {
font-family: var(--icon-font-family);
}
#player-data-frame .upload-data #player-data-frame .upload-data
{ {
margin-left: 5px; margin-left: 5px;
@ -3884,10 +3944,6 @@ body.external-link-support #external-support{
margin-left: 15px; margin-left: 15px;
} }
#player-data-frame .player-box-title::before
{
content: "\f2bd";
}
#player-data-frame .how-to-use::before #player-data-frame .how-to-use::before
{ {
content: "📕"; content: "📕";

View File

@ -42,23 +42,31 @@ const teamsCount = 3;
<body> <body>
<noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript> <noscript>您的浏览器不支持 JavaScript<br/>Your browser does not support JavaScript!</noscript>
<div class="control-box"> <div class="control-box">
<a class="down-capture display-none" target="_blank"></a>
<div> <div>
<label for="languages"></label><select class="languages" id="languages"></select> <label for="languages"></label><select id="languages"></select>
<label for="datasource"></label><select class="datasource" id="datasource"></select> <label for="datasource"></label><select id="datasource"></select>
<button onclick="loadData(true);" id="datasource-updatetime" title="强制刷新数据"></button> <button id="datasource-updatetime" title="强制刷新数据"></button>
<a class="help-link" target="_blank" href="doc/index.html"></a> <a id="help-link" target="_blank" href="doc/index.html"></a>
<a class="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a> <a id="feedback-link" target="_blank" href="https://github.com/Mapaler/PADDashFormation/issues"></a>
</div>
<div>
<button id="btn-qrcode"></button>
<form id="player-number">
<ul class="horizontally-radio-list">
<li><input type="radio" name="player-number" value="1" id="player-number-1" /><label for="player-number-1"></label></li>
<li><input type="radio" name="player-number" value="2" id="player-number-2" /><label for="player-number-2"></label></li>
<li><input type="radio" name="player-number" value="3" id="player-number-3" /><label for="player-number-3"></label></li>
</ul>
</form>
<button id="btn-swap-team"></button>
<button id="btn-clear-data"></button>
<button id="btn-player-data"></button>
</div> </div>
<div> <div>
<button class="btn-clear-data" onclick="clearData();"></button> <button id="draw-screenshot"></button>
<button class="btn-player-data"></button> <input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label>
<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-triple-link" disabled></button>
<button class="btn-swap-ABC-team" onclick="swapABCteam();"></button>
</div>
<div>
<a class="down-capture display-none" target="_blank"></a>
<button class="btn-qrcode fa"></button>
<button id="draw-screenshot"><input type="checkbox" id="screenshot-transparent"><label for="screenshot-transparent"></label></button>
<label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/> <label for="default-level"></label><input id="default-level" type="number" min="1" max="120" placeholder="120"/>
<input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label> <input type="checkbox" name="change-swap-to-copy" id="change-swap-to-copy"><label for="change-swap-to-copy"></label>
</div> </div>
@ -69,7 +77,7 @@ const teamsCount = 3;
<div class="attrs"> <div class="attrs">
<div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div> <div class="attr" data-attr="0"></div><div class="attr" data-attr="1"></div><div class="attr" data-attr="2"></div><div class="attr" data-attr="3"></div>
</div> </div>
<div class="plus"><div class="hp">999</div><div class="atk">999</div><div class="rcv">999</div></div> <div class="plus"><div class="hp">999</div></div>
<div class="awoken-count-num" data-value="99"></div> <div class="awoken-count-num" data-value="99"></div>
<div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div> <div class="super-awoken"><div class="awoken-icon" data-awoken-icon="63"></div></div>
<div class="level" data-value="999" data-level-range="120"></div> <div class="level" data-value="999" data-level-range="120"></div>
@ -97,9 +105,11 @@ const teamsCount = 3;
<input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label> <input type="checkbox" class="switch-ipt" id="show-rich-text-tools"><label for="show-rich-text-tools"></label>
</details> </details>
<div class="status"></div> <div class="status"></div>
<div> <div class="formation-control">
<span class="lbl-henshin-change"><button class="btn-henshin" data-step="-1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button><button class="btn-henshin" data-step="+1" onclick="henshinStep(parseInt(this.dataset.step,10));"></button></span> <span id="lbl-henshin-change"></span>
<span class="lbl-remove-assist"><button class="btn-remove-assist" onclick="formation.removeAssist();"></span> <button class="btn-henshin" data-step="-1"></button>
<button class="btn-henshin" data-step="+1"></button>
<button id="btn-remove-assist"></button>
<button id="btn-set-dungeon-enchance"></button> <button id="btn-set-dungeon-enchance"></button>
</div> </div>
</div> </div>
@ -140,7 +150,7 @@ const teamsCount = 3;
<div class="tIf-total-hp"> <div class="tIf-total-hp">
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
<span class="reduce fa"> <span class="reduce">
<span class="reduce-scale"></span> <span class="reduce-scale"></span>
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
@ -607,7 +617,7 @@ const teamsCount = 3;
<div class="tIf-total-hp"> <div class="tIf-total-hp">
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
<span class="reduce fa"> <span class="reduce">
<span class="reduce-scale"></span> <span class="reduce-scale"></span>
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
@ -1074,7 +1084,7 @@ const teamsCount = 3;
<div class="tIf-total-hp"> <div class="tIf-total-hp">
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
<span class="reduce fa"> <span class="reduce">
<span class="reduce-scale"></span> <span class="reduce-scale"></span>
<span class="general"></span> <span class="general"></span>
<span class="awoken-bind"></span> <span class="awoken-bind"></span>
@ -1924,10 +1934,10 @@ const teamsCount = 3;
<ul class="special-filter-list"> <ul class="special-filter-list">
<li> <li>
<select class="special-filter"></select> <select class="special-filter"></select>
<button class="copy-filter"></button> <button class="copy-filter brown-button"></button>
<button class="shift-up-filter"></button> <button class="shift-up-filter brown-button"></button>
<button class="shift-down-filter"></button> <button class="shift-down-filter brown-button"></button>
<button class="remove-filter"></button> <button class="remove-filter brown-button"></button>
</li> </li>
</ul> </ul>
</div> </div>
@ -2170,10 +2180,10 @@ const teamsCount = 3;
</div> </div>
</div> </div>
<div class="button-box"> <div class="button-box">
<button class="button-null"><!--留空格子--></button> <button class="button-null brown-button"><!--留空格子--></button>
<button class="button-delay"><!--应对威吓--></button> <button class="button-delay brown-button"><!--应对威吓--></button>
<button class="button-done"><!--确认修改--></button> <button class="button-cancel brown-button"><!--取消修改--></button>
<button class="button-cancel"><!--取消修改--></button> <button class="button-done brown-button"><!--确认修改--></button>
</div> </div>
<template id="template-card-a"> <template id="template-card-a">
@ -2192,10 +2202,10 @@ const teamsCount = 3;
<div class="action-button-box"> <div class="action-button-box">
<div class="read-text-box"> <div class="read-text-box">
<input class="string-input" type="text"/> <input class="string-input" type="text"/>
<button class="read-string brown-button fa"><!--读字符串--></button> <button class="read-string brown-button"><!--读字符串--></button>
</div> </div>
<button class="read-qr-camera brown-button fa"><!--相机扫--></button> <button class="read-qr-camera brown-button"><!--相机扫--></button>
<button class="read-qr-file brown-button fa"><!--读文件--></button> <button class="read-qr-file brown-button"><!--读文件--></button>
<input type="file" accept="image/*" class="file-select display-none"> <input type="file" accept="image/*" class="file-select display-none">
</div> </div>
<div class="info"> <div class="info">
@ -2215,7 +2225,7 @@ const teamsCount = 3;
</ul> </ul>
<input class="string-output" type="text" readonly/> <input class="string-output" type="text" readonly/>
<div class="qr-box"><img class="qr-code-image" /></div> <div class="qr-box"><img class="qr-code-image" /></div>
<a download="" class="save-qr-img brown-button fa"><!--保存QR 图片--></a> <a download="" class="save-qr-img brown-button"><!--保存QR 图片--></a>
</div> </div>
<div class="paddb-team-edit"> <div class="paddb-team-edit">
<div class="user"> <div class="user">
@ -2228,7 +2238,7 @@ const teamsCount = 3;
</div> </div>
</div> </div>
</div> </div>
<a id="external-support" class="brown-button fa" href="doc/index.html#data-exchange-with-paddb"></a> <a id="external-support" class="brown-button" href="doc/index.html#data-exchange-with-paddb"></a>
</div> </div>
@ -2297,10 +2307,10 @@ const teamsCount = 3;
</dialog> </dialog>
<div id="player-data-frame" class="mask display-none"> <div id="player-data-frame" class="mask display-none">
<div class="player-box-title fa"><!--玩家数据子--></div> <div class="player-box-title"><!--玩家数据子--></div>
<div class="control-button-box"> <div class="control-button-box">
<button class="mask-close brown-button fa"></button> <button class="mask-close brown-button"></button>
<button class="upload-data brown-button fa"></button> <button class="upload-data brown-button"></button>
<input type="file" class="file-select display-none" multiple/> <input type="file" class="file-select display-none" multiple/>
<a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a> <a class="how-to-use" target="_blank" href="doc/export-player-data.html"></a>
<input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label> <input type="checkbox" name="box-have" id="box-have"><label for="box-have"></label>
@ -2321,7 +2331,7 @@ const teamsCount = 3;
</div> </div>
</td> </td>
<td class="name"></td> <td class="name"></td>
<td class="control"><button class="brown-button set-default fa"></button><button class="brown-button delete fa"></button></td> <td class="control"><button class="brown-button set-default"></button><button class="brown-button delete"></button></td>
</tr> </tr>
<tr> <tr>
<td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td> <td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td>
@ -2416,7 +2426,7 @@ const teamsCount = 3;
</tr> </tr>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<button class="brown-button open-show-box fa"></button> <button class="brown-button open-show-box"></button>
</td> </td>
</tr> </tr>
</tbody> </tbody>