From 5db7a8c78da09e7d5f7454ba019d39be04d8795e Mon Sep 17 00:00:00 2001 From: Mistivia Date: Sat, 8 Feb 2025 16:43:20 +0800 Subject: version 0.1 --- .gitignore | 2 + README.md | 2 +- data/build-card-info.py | 31 ++++++++++++ data/build.sh | 5 ++ src/components/CardThumb.svelte | 20 +++++--- src/components/MainPanel.svelte | 58 +++++++++++++++++++--- src/components/RightPanel.svelte | 37 +++++++------- src/control/deck.js | 103 +++++++++++++++++++++++++++++++++++++-- src/control/search.js | 69 +++++++++++++++++++++++++- src/data/cardDb.js | 1 + 10 files changed, 290 insertions(+), 38 deletions(-) create mode 100644 data/build-card-info.py create mode 100644 data/build.sh create mode 100644 src/data/cardDb.js diff --git a/.gitignore b/.gitignore index d600b6c..cbafefa 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ dist-ssr *.sln *.sw? +data/cards.json + diff --git a/README.md b/README.md index fdfbbc5..f7a4094 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 游戏王卡组编辑器 -开发中,未完成 +Demo: [ygodeck.mistivia.com](https://ygodeck.mistivia.com) ## 截图 diff --git a/data/build-card-info.py b/data/build-card-info.py new file mode 100644 index 0000000..9e9669f --- /dev/null +++ b/data/build-card-info.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +import json + +j = None +with open('cards.json') as fp: + j = json.load(fp) + +outData = dict() + +def convert(card): + newCard = dict() + newCard['names'] = [] + for namek in ['cn_name', 'sc_name', 'md_name', 'nwbbs_n', \ + 'cnocg_n', 'jp_ruby', 'jp_name', 'en_name']: + if namek in card and len(card[namek]) > 0: + newCard['names'].append(card[namek]) + newCard['isExtra'] = False + for t in ['超量', '链接', '同调', '融合']: + if t in card['text']['types']: + newCard['isExtra'] = True + newCard['cid'] = card['cid'] + return newCard + +for k in j: + outData[j[k]['id']] = convert(j[k]) + +outStr = 'export const cardDb = ' + json.dumps(outData) + ';' + +with open('../src/data/cardDb.js', 'w') as fp: + fp.write(outStr) diff --git a/data/build.sh b/data/build.sh new file mode 100644 index 0000000..7ae5351 --- /dev/null +++ b/data/build.sh @@ -0,0 +1,5 @@ +curl https://ygocdb.com/api/v0/cards.zip -o cards.zip +unzip cards.zip +rm cards.zip +python3 build-card-info.py + diff --git a/src/components/CardThumb.svelte b/src/components/CardThumb.svelte index c2fefc8..4c41f2d 100644 --- a/src/components/CardThumb.svelte +++ b/src/components/CardThumb.svelte @@ -1,21 +1,27 @@ - {#if id} yugioh card {id} {/if} diff --git a/src/components/MainPanel.svelte b/src/components/MainPanel.svelte index 5cef824..f9f0d74 100644 --- a/src/components/MainPanel.svelte +++ b/src/components/MainPanel.svelte @@ -1,6 +1,6 @@ @@ -52,35 +93,36 @@
+

主卡组({$deck.main.length})

-
+
e.preventDefault()} ondrop={(e)=>onDrop("main", e)} class="card-grid main-deck"> {#each $deck.main as card}
- +
{/each}

额外卡组({$deck.extra.length})

-
+
e.preventDefault()} ondrop={(e)=>onDrop("extra", e)} class="card-grid extra-deck"> {#each $deck.extra as card}
- +
{/each}

副卡组({$deck.side.length})

-
+
e.preventDefault()} ondrop={(e)=>onDrop("side", e)} class="card-grid side-deck"> {#each $deck.side as card}
- +
{/each}
diff --git a/src/components/RightPanel.svelte b/src/components/RightPanel.svelte index 062e33c..03cc272 100644 --- a/src/components/RightPanel.svelte +++ b/src/components/RightPanel.svelte @@ -1,31 +1,34 @@ -
+
e.preventDefault()} ondrop={onDrop}>
- {#if $resultCards.length > 0} -
- {#each $resultCards as card} -
- -
- {card.name} - {/each} -
- {/if} + {#each $showingCards as card} +
+
+ +
+ {card.name} +
+ {/each}