Skip to content

Instantly share code, notes, and snippets.

@Rplus
Last active July 23, 2026 08:56
Show Gist options
  • Select an option

  • Save Rplus/d5428e41f918d4b9440dbc042bda287a to your computer and use it in GitHub Desktop.

Select an option

Save Rplus/d5428e41f918d4b9440dbc042bda287a to your computer and use it in GitHub Desktop.
Hunter x Hunter nen servivor codex
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hunter x Hunter nen servivor codex</title>
<style>
:root {
background-color: #333;
}
body {
width: fit-content;
margin: 0 auto;
padding-top: 5vh;
}
table {
table-layout: fixed;
background-color: #eee;
}
tr {
background-color: #cccc;
}
img {
display: inline-flex;
background-color: #0002;
box-shadow: 2px 2px 4px var(--shadow-color, #0006);
&:hover {
--shadow-color: #0009;
}
& + img {
margin-left: 4px;
}
}
td {
padding-left: 8px;
padding-right: 8px;
}
.flex {
display: flex;
}
img {
width: 60px;
aspect-ratio: 1;
@media (max-width: 400px) {
width: 50px;
height: 50px;
}
}
.img-box {
position: relative;
display: block;
&:not(:last-of-type) {
margin-right: 8px;
}
&:hover {
--opacity: 1;
}
&::before,
&::after {
content: '';
position: absolute;
width: 1em;
height: 1em;
font-size: 1rem;
background-repeat: no-repeat;
background-size: contain;
transition: opacity .3s;
opacity: var(--opacity, 0.5);
}
&[data-tier]::after {
top: 0;
right: 0;
background-image: var(--tier-icon);
}
&[data-tier="S"] {
--tier-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12272656/979d5fb26fcbac2a711e4285c1de7768.webp/show');
}
&[data-tier="A"] {
--tier-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12272655/72883e774c4ad8b515516d5d492baf4a.webp/show');
}
&[data-type]::before {
bottom: 0;
right: 0;
font-size: 1rem;
background-image: var(--type-icon);
}
&[data-type="Healer"] {
--type-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12326423/fe618881f7353d3177f8fa2bb980ae62.webp/show');
}
&[data-type="Attacker"] {
--type-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12272658/39f65b3bf2a64db93451730b7826c984.webp/show');
}
&[data-type="Defender"] {
--type-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12326420/909c1f6c889b289c4fdd0f5e45968130.webp/show');
}
&[data-type="Supporter"] {
--type-icon: url('https://wsrv.nl/?&il&output=webp&w=32&h=32&url=https://img.game8.jp/12326419/daf3d4f414805971c35e36a24d5783c7.webp/show');
}
}
.img-box {
user-select: none;
opacity: var(--ii-op);
}
table:has(input:checked) {
--ii-op: .2;
&:hover {
--ii-op: .5;
& .img-box:hover {
--ii-op: .8;
}
}
& .img-box.img-box:has(input:checked) {
--ii-op: 1;
}
}
tbody label {
position: relative;
cursor: pointer;
& input {
position: absolute;
bottom: 7px;
left: 3px;
margin: 0;
padding: 0;
transition: opacity .2s;
}
&:not(:hover) input:not(:checked) {
opacity: 0.1;
}
}
</style>
</head>
<body>
<table id="table">
<tbody>
<tr>
<th></th>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<script>
const itemData =
[{"name":"卞氏刀","src":"https://img.game8.jp/12279779/daa5b0307ef1b25298093c1a66b237f3.webp/original","image":"","effect\nper tier":"傷害+5%"},{"name":"武術服","src":"https://img.game8.jp/12279791/0631e48d83de8a44c9e5d350c3cc3a7f.webp/original","image":"","effect\nper tier":"免傷+5%"},{"name":"烤全豬","src":"https://img.game8.jp/12286789/8dc25f00d2c2b30612fafebc7fa94ab6.webp/original","image":"","effect\nper tier":"HP+5%"},{"name":"軍儀","src":"https://img.game8.jp/12279808/39d65cd24c2ed8e2c7497a482b7e0eae.webp/original","image":"","effect\nper tier":"攻速+5%"},{"name":"木造蔵","src":"https://img.game8.jp/12279840/50609747ed743663450bf1912f7c8bd5.webp/original","image":"","effect\nper tier":"金幣+5%"},{"name":"獵人執照","src":"https://img.game8.jp/12279839/0b5be4b09da3c796ea0aee26f1dbbcbc.webp/original","image":"","effect\nper tier":"經驗+5%"},{"name":"滑板","src":"https://img.game8.jp/12279777/a5dabaf559af1bb66dece79ebe470f53.webp/original","image":"","effect\nper tier":"移速+5%"},{"name":"手機","src":"https://img.game8.jp/12279838/87c4eabe75f015519af0139aec4a474f.webp/original","image":"","effect\nper tier":"吸取範圍+5%"},{"name":"腕錶","src":"https://img.game8.jp/12279792/016545d309c091980b8f27e610537b02.webp/original","image":"","effect\nper tier":"技能\n持續時間+5%"},{"name":"水煮蛋","src":"https://img.game8.jp/12279793/047b2d2a9b19f086ffc6ab632a069161.webp/original","image":"","effect\nper tier":"HP +0.5%/5s"},{"name":"步槍彈","src":"https://img.game8.jp/12279841/b444959cad9fa01438ce2befd9efb6b0.webp/original","image":"","effect\nper tier":"彈道速度+5%"},{"name":"火箭筒","src":"https://img.game8.jp/12279807/ef675855745b38ec674a6ca2eaf50b1a.webp/original","image":"","effect\nper tier":"技能尺寸+5%"}];
const roleData =
[{"tier":"S","name":"凱特","title":"死神之鐮","image_src":"https://img.game8.jp/12763964/1a80e22447f32e521b6531bd11edbb35.webp/show","image":"","type":"Healer","evolve":"火箭筒","evolve\nicon":"","":"","⭐︎":"大弧形斬擊\n可回血","⭐︎⭐︎":"間隔-","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"間隔-","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"斬擊後射擊","uncommon":"回血量+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"HP 70%+\n傷害+30%","skill":"死神圓舞曲\nAOE龍卷風\n可回血"},{"tier":"S","name":"信長","title":"煞那的劍豪","image_src":"https://img.game8.jp/12663795/87c9b89336d75418e8e85506de9a23b7.webp/show","image":"","type":"Defender","evolve":"武術服","evolve\nicon":"","":"","⭐︎":"圓領域\n可擋子彈","⭐︎⭐︎":"感知間隔-","⭐︎⭐︎⭐︎":"感知間隔-","⭐︎⭐︎\n⭐︎⭐︎":"感知間隔-","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"感知間隔-","★":"感知間隔-\n尺寸+","uncommon":"免傷+10%","rare":"ATK +5%\nHP +5%","elite":"靜立1s發動圓\n傷害+30%","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"頻率+","skill":"不准動\n近敵AOE\n傷害+"},{"tier":"S","name":"桀諾","title":"終身現役","image_src":"https://img.game8.jp/12565423/3ef6cc1c2d06e55731fdb9f61c6851db.webp/show","image":"","type":"Supporter","evolve":"步槍彈","evolve\nicon":"","":"","⭐︎":"龍氣波\n可追蹤","⭐︎⭐︎":"龍飛速+","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"龍飛速+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"龍飛速+\n尺寸+","uncommon":"CD-10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"龍氣飛速+25%","epic+2":"ATK +10%\nHP +10%","legendary":"可減速","skill":"龍星群\n廣域AOE\n+ 收尾一擊"},{"tier":"S","name":"酷拉皮卡","title":"火紅眼的復仇者","image_src":"https://img.game8.jp/12279767/529c5c25b4d5b4eaf7610055d531458c.webp/show","image":"","type":"Defender","evolve":"烤全豬","evolve\nicon":"","":"","⭐︎":"鎖鍊橫掃\n可擋子彈","⭐︎⭐︎":"範圍+","⭐︎⭐︎⭐︎":"CD-","⭐︎⭐︎\n⭐︎⭐︎":"範圍+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"CD-","★":"CD-\n尺寸+","uncommon":"免傷+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"可排毒","epic+2":"ATK +10%\nHP +10%","legendary":"可擊退","skill":"絕對時間\n攻速+ 移速+\n副作用:疲勞"},{"tier":"S","name":"比斯吉","title":"隱藏的力量","image_src":"https://img.game8.jp/12279769/dc10b6aecc4770ed903c6a2b56d07334.webp/show","image":"","type":"Healer","evolve":"軍儀","evolve\nicon":"","":"","⭐︎":"近身拳擊\n可回血","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"尺寸+\n數量+1","uncommon":"回血量+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"超額補血+20%","epic+2":"ATK +10%\nHP +10%","legendary":"HP 80%+\n我方傷害+30%","skill":"桃色氣息\n回血+ 護盾+\n移速+ "},{"tier":"S","name":"西索","title":"狂愛死神","image_src":"https://img.game8.jp/12284574/3b8b798795deb5daa29c04a97b4bf16c.webp/show","image":"","type":"Attacker","evolve":"卞氏刀","evolve\nicon":"","":"","⭐︎":"卡牌\n扇形AOE","⭐︎⭐︎":"範圍+","⭐︎⭐︎⭐︎":"範圍+","⭐︎⭐︎\n⭐︎⭐︎":"投擲次數+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"範圍+","★":"投擲次數+1\n邊界可反彈","uncommon":"暴擊率+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"牌數+1","epic+2":"ATK +10%\nHP +10%","legendary":"投擲數+1","skill":"伸縮自在的愛\n射牌、延遲收回\n移速+"},{"tier":"S","name":"雷歐力","title":"憤怒一拳","image_src":"https://img.game8.jp/12284578/c3d5f43ba8529da323fc9de58e8b17fd.webp/show","image":"","type":"Attacker","evolve":"水煮蛋","evolve\nicon":"","":"","⭐︎":"遙距念拳","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"數量+2","uncommon":"暴擊率+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"念拳數量+1","epic+2":"ATK +10%\nHP +10%","legendary":"念拳目標+1","skill":"受死吧\n廣域AOE\n可擊退"},{"tier":"S","name":"窩金","title":"一騎當千的豪傑","image_src":"https://img.game8.jp/12506191/3fda27fd4dc23db5454789c3de098121.webp/show","image":"","type":"Attacker","evolve":"手機","evolve\nicon":"","":"","⭐︎":"上勾拳碎岩\n扇形AOE","⭐︎⭐︎":"尺寸+","⭐︎⭐︎⭐︎":"CD-","⭐︎⭐︎\n⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"CD-","★":"尺寸+\n獅吼砲 /3 hits","uncommon":"暴擊率+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"BOSS戰\n傷害+30%","skill":"超破壞拳\n放射狀AOE\n窩金普攻範圍+"},{"tier":"S","name":"尼特羅","title":"獵人協會會長","image_src":"https://img.game8.jp/12279768/15d816c13d48a1221aca1bae4932f22e.webp/show","image":"","type":"Supporter","evolve":"軍儀","evolve\nicon":"","":"","⭐︎":"排球風壓\n可擊退\n可穿透","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"數量+1\n尺寸+","uncommon":"CD-10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸x2","epic+2":"ATK +10%\nHP +10%","legendary":"我方技能尺寸+","skill":"感謝的正拳\n廣域AOE\n短時CD-"},{"tier":"S","name":"奇犽","title":"紫電一閃","image_src":"https://img.game8.jp/12284577/13ebffa9ef77ebea60b2f0e71cd81b08.webp/show","image":"","type":"Supporter","evolve":"卞氏刀","evolve\nicon":"","":"","⭐︎":"電弧跳躍\n可連鎖\n可排毒","⭐︎⭐︎":"閃電數量+1","⭐︎⭐︎⭐︎":"連鎖數+1","⭐︎⭐︎\n⭐︎⭐︎":"閃電數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"連鎖數+1","★":"閃電數量x3","uncommon":"CD-10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"數量+1","epic+2":"ATK +10%\nHP +10%","legendary":"可暈眩","skill":"落雷\n廣域AOE\n可擊暈"},{"tier":"S","name":"小滴","title":"純真的清掃員","image_src":"https://img.game8.jp/12397577/04086591888bc1902135b13bad9440f2.webp/show","image":"","type":"Supporter","evolve":"火箭筒","evolve\nicon":"","":"","⭐︎":"弧形斬擊\n可排毒","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"尺寸+\n吸力攻擊","uncommon":"CD-10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"可擊退","skill":"打掃完畢\n持續型AOE\n可擋子彈"},{"tier":"S","name":"瑪奇","title":"蜘蛛的縫合師","image_src":"https://img.game8.jp/12284573/911c98e0501c12a07c1375eebc7ed511.webp/show","image":"","type":"Healer","evolve":"水煮蛋","evolve\nicon":"","":"","⭐︎":"縫合線阱區\n回血","⭐︎⭐︎":"尺寸+","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"擊中減速","uncommon":"回血量+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"可暈眩","epic+2":"ATK +10%\nHP +10%","legendary":"暈眩時間+","skill":"念線針線展開\n全圖AOE\n+減速陷阱"},{"tier":"S","name":"華石鬥郎","title":"虎咬真拳的好手","image_src":"https://img.game8.jp/12357640/37656f06074ac4d15cca3215cd877ce0.webp/show","image":"","type":"Defender","evolve":"武術服","evolve\nicon":"","":"","⭐︎":"面前爪AOE\n可擊退","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"尺寸+\n數量+1","uncommon":"免傷+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"攻擊數+1","skill":"分身\nAOE\n分身協同攻擊"},{"tier":"S","name":"小傑","title":"無限的原石","image_src":"https://img.game8.jp/12270211/4fc93a91fc969d394b6318e1f64dd573.webp/show","image":"","type":"Attacker","evolve":"卞氏刀","evolve\nicon":"","":"","⭐︎":"剪刀手斬擊","⭐︎⭐︎":"尺寸+","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"尺寸+\n擊退量+","uncommon":"暴擊率+10%","rare":"ATK +5%\nHP +5%","elite":"-","epic":"尺寸+25%","epic+2":"ATK +10%\nHP +10%","legendary":"暴擊率+10%\n暴擊傷害+100%","skill":"猜猜拳‧石頭\nAOE\n小傑暴擊率+"},{"tier":"A","name":"小傑","title":"立志當獵人的少年","image_src":"https://img.game8.jp/12284575/979c493b1842544849487a88e4ac92af.webp/show","image":"","type":"Attacker","evolve":"獵人執照","evolve\nicon":"","":"","⭐︎":"踢擊AOE\n可擊退","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"數量+1\n尺寸+","uncommon":"暴擊率+10%","rare":"ATK +20\nHP +100","elite":"尺寸x2","epic":"擊退距離+","epic+2":"ATK +40\nHP +200","legendary":"攻擊數+1","skill":"-"},{"tier":"A","name":"酷拉皮卡","title":"堅定不移的決心","image_src":"https://img.game8.jp/12284579/9a04456f62466cf24b61c1514bae1c1a.webp/show","image":"","type":"Supporter","evolve":"軍儀","evolve\nicon":"","":"","⭐︎":"劍擊AOE\n可穿透","⭐︎⭐︎":"數量+2","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+2","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"尺寸+\n速度+","uncommon":"CD-10%","rare":"ATK +20\nHP +100","elite":"可排毒","epic":"尺寸x2","epic+2":"ATK +40\nHP +200","legendary":"可穿透","skill":"-"},{"tier":"A","name":"奇犽","title":"走在影中的少年","image_src":"https://img.game8.jp/12284576/7434af90df7a2504e8d38ba2b6ea5549.webp/show","image":"","type":"Defender","evolve":"滑板","evolve\nicon":"","":"","⭐︎":"旋轉溜溜球\n可擋子彈","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"尺寸+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"尺寸+","★":"轉速x2","uncommon":"免傷+10%","rare":"ATK +20\nHP +100","elite":"可擊退","epic":"轉速+20%","epic+2":"ATK +40\nHP +200","legendary":"尺寸+25%","skill":"-"},{"tier":"A","name":"雷歐力","title":"準醫生","image_src":"https://img.game8.jp/12279772/f870c32858d3561ad9b2b36a5f8a55ca.webp/show","image":"","type":"Healer","evolve":"烤全豬","evolve\nicon":"","":"","⭐︎":"短距毆打\n可回血","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"回血量+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"回血量+","★":"數量+1\n回血量+","uncommon":"回血量+10%","rare":"ATK +20\nHP +100","elite":"可擊退","epic":"靜立時\n回血量+20%","epic+2":"ATK +40\nHP +200","legendary":"回血量x2","skill":"-"},{"tier":"SKILL","name":"磊札","title":"速攻","image_src":"https://img.game8.jp/12286805/c262b687ac828d939f1e78b4d44be7a9.webp/original","image":"","type":"SKILL","evolve":"滑板","evolve\nicon":"","":"","⭐︎":"可反彈\n可擊退","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"球速+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"球速+","★":"數量x2 [6]"},{"tier":"SKILL","name":"梧桐","title":"管家彈丸","image_src":"https://img.game8.jp/12286713/cd981de62f6faa119a2f57adf22b689d.webp/original","image":"","type":"SKILL","evolve":"步槍彈","evolve\nicon":"","":"","⭐︎":"硬幣直射","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"傷害+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"傷害+","★":"數量+1 [6]\n射速+"},{"tier":"SKILL","name":"秀托","title":"漂浮的三隻左手","image_src":"https://img.game8.jp/12286714/be3a28c085e2447fe35ee5549114b322.webp/original","image":"","type":"SKILL","evolve":"獵人執照","evolve\nicon":"","":"","⭐︎":"浮游手\n可追蹤","⭐︎⭐︎":"手速+","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"手速+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"手速+"},{"tier":"SKILL","name":"果列奴","title":"","image_src":"https://img.game8.jp/12286715/716ecbd6b8ba830a8644855f8d1a7f21.webp/original","image":"","type":"SKILL","evolve":"木造蔵","evolve\nicon":"","":"","⭐︎":"白色賢人亂衝\n可擊退","⭐︎⭐︎":"攻擊範圍+","⭐︎⭐︎⭐︎":"衝速+","⭐︎⭐︎\n⭐︎⭐︎":"攻擊範圍+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"衝速+","★":"黑色賢人\n定點AOE"},{"tier":"SKILL","name":"爆庫兒","title":"飛翔之矢","image_src":"https://img.game8.jp/12286813/68505d5ccce594aa365408a9c21d696f.webp/original","image":"","type":"SKILL","evolve":"武術服","evolve\nicon":"","":"","⭐︎":"隨機箭雨","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"數量x2 [10]"},{"tier":"SKILL","name":"半藏","title":"手裏劍亂舞","image_src":"https://img.game8.jp/12286809/b3d891eb246553fe79917e2086af3922.webp/original","image":"","type":"SKILL","evolve":"腕錶","evolve\nicon":"","":"","⭐︎":"隨機手裏劍\n可穿透","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"飛速+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"飛速+","★":"射速++\n集火"},{"tier":"SKILL","name":"門琪","title":"切絲","image_src":"https://img.game8.jp/12287052/aac15a550facfcb4ded586c173675df6.webp/original","image":"","type":"SKILL","evolve":"水煮蛋","evolve\nicon":"","":"","⭐︎":"正面多次斬擊","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"數量x2 [10]\n範圍+"},{"tier":"SKILL","name":"柯特","title":"","image_src":"https://img.game8.jp/12287051/faae5b27309eab0e8b8a9d454b8523ce.webp/original","image":"","type":"SKILL","evolve":"手機","evolve\nicon":"","":"","⭐︎":"螺旋紙屑攻擊","⭐︎⭐︎":"速度+\n尺寸+","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"速度+\n尺寸+","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"速度+\n尺寸+\n數量+1"},{"tier":"SKILL","name":"伊加路哥","title":"狙擊","image_src":"https://img.game8.jp/12287257/59458c68874b51f694fa68409b673ab3.webp/original","image":"","type":"SKILL","evolve":"步槍彈","evolve\nicon":"","":"","⭐︎":"視界外狙擊\n可穿透","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"速度+","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"速度+","★":"數量x2 [6]"},{"tier":"SKILL","name":"芭蕉","title":"火候不足啊","image_src":"https://img.game8.jp/12288029/a071223d42f74647c179deb6bf1b5793.webp/original","image":"","type":"SKILL","evolve":"木造蔵","evolve\nicon":"","":"","⭐︎":"隨機火圈\n可排毒","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"數量x2 [10]"},{"tier":"SKILL","name":"莫老五","title":"紫煙拳","image_src":"https://img.game8.jp/12288030/e2e546cf2877050e1a18acd4a652bf9d.webp/original","image":"","type":"SKILL","evolve":"火箭筒","evolve\nicon":"","":"","⭐︎":"定點煙圈\n紫煙兵衝擊\n可穿透","⭐︎⭐︎":"紫煙兵+1","⭐︎⭐︎⭐︎":"煙圈\n數量+1","⭐︎⭐︎\n⭐︎⭐︎":"紫煙兵+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"煙圈\n數量+1","★":"紫煙兵+1\n尺寸+"},{"tier":"SKILL","name":"彭絲","title":"蜂群指揮","image_src":"https://img.game8.jp/12288031/7d3f968a90be9b298bc4157d04b471e2.webp/original","image":"","type":"SKILL","evolve":"腕錶","evolve\nicon":"","":"","⭐︎":"旋轉蜂群\n可擋子彈","⭐︎⭐︎":"數量+1","⭐︎⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎":"數量+1","⭐︎⭐︎\n⭐︎⭐︎⭐︎":"數量+1","★":"蜂群不斷"}];
</script>
<script>
console.log(123, itemData, roleData);
let dd = roleData.reduce((all, i) => {
if (!all[i.evolve]) {
let _item = itemData.find(ii => ii.name === i.evolve);
all[i.evolve] = {
roles: [],
skills: [],
info: _item,
};
}
if (i.type === 'SKILL') {
all[i.evolve].skills.push(i);
} else {
all[i.evolve].roles.push(i);
}
return all;
}, {});
table.querySelector('tbody').innerHTML = Object.values(dd).map(i => `
<tr>
<th>
<div class="img-box">
<label>
<input type="checkbox">
<img src="https://wsrv.nl/?&il&output=webp&w=60&h=60&url=${i.info.src}" title="${i.info.name}" width="60" height="60" />
</label>
</div>
</th>
<td><div class="flex">${i.roles.map(gen_td).join('')}</div></td>
<td><div class="flex">${i.skills.map(gen_td).join('')}</div></td>
</tr>`).join('');
function gen_td(_data) {
let img = `
<label>
<input type="checkbox">
<img src="https://wsrv.nl/?&il&output=webp&w=60&h=60&url=${_data.image_src}" title="${_data.name}" width="60" height=60 />
</label>`;
if (_data.type === 'SKILL') {
// return img;
}
return `<div class="img-box" data-type="${_data.type}" data-tier="${_data.tier}">${img}</div>`;
}
</script>
</body>
</html>
# 定義目標資料夾與檔案名稱
DATA_DIR = data
ITEM_JSON = $(DATA_DIR)/item.json
ROLE_JSON = $(DATA_DIR)/role.json
COMBINED_JS = $(DATA_DIR)/data.js
INDEX_HTML = index.html
# 定義網址
ITEM_URL = https://opensheet.elk.sh/1PcUFHm4EoTOx4X78DEx-49yPCsR7jLxkvnGEp1oAoOI/'item'
ROLE_URL = https://opensheet.elk.sh/1PcUFHm4EoTOx4X78DEx-49yPCsR7jLxkvnGEp1oAoOI/'role'
# 關鍵設定:將 all、下載規則都宣告為 .PHONY,確保每次執行 make 都一定會跑 curl 覆蓋舊檔
.PHONY: all clean download-item download-role
all: download-item download-role combine inline
@echo "所有 JSON 檔案已嘗試更新並覆蓋!"
# 建立資料夾(這個保留非 .PHONY,有資料夾就不重複建立)
$(DATA_DIR):
mkdir -p $(DATA_DIR)
# 強制下載並覆蓋 item.json
download-item: | $(DATA_DIR)
@echo "正在下載並覆蓋 item.json..."
curl -s "$(ITEM_URL)" -o $(ITEM_JSON)
# 強制下載並覆蓋 role.json
download-role: | $(DATA_DIR)
@echo "正在下載並覆蓋 role.json..."
curl -s "$(ROLE_URL)" -o $(ROLE_JSON)
combine:
@echo "正在合併 JSON 檔案至 $(COMBINED_JS)..."
@echo "const itemData = " > $(COMBINED_JS)
@cat $(ITEM_JSON) >> $(COMBINED_JS)
@echo ";" >> $(COMBINED_JS)
@echo "const roleData = " >> $(COMBINED_JS)
@cat $(ROLE_JSON) >> $(COMBINED_JS)
@echo ";" >> $(COMBINED_JS)
inline:
@echo "正在將 $(COMBINED_JS) 內嵌至 $(INDEX_HTML)..."
@# 建立一個臨時檔案,避免 cross-platform sed -i 的相容性問題
@awk ' \
/<script src="\.\/data\/data\.js"><\/script>/ { \
print "<script>"; \
while ((getline line < "$(COMBINED_JS)") > 0) { print line } \
print "</script>"; \
next \
} \
{ print } \
' $(INDEX_HTML) > $(INDEX_HTML).tmp
@mv $(INDEX_HTML).tmp $(INDEX_HTML)
# 如果真的有需要手動完整清空時才使用的指令
clean:
rm -rf $(DATA_DIR)
@echo "已清理下載的資料。"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment