From a13b2290833f635453622ed330cc3895950ffcdb Mon Sep 17 00:00:00 2001 From: Mistivia Date: Fri, 21 Feb 2025 23:04:36 +0800 Subject: add banlist --- src/card_db.js | 19 ++++ src/components/card_thumb.svelte | 77 ++++++++++++--- src/components/main_panel.svelte | 25 ++++- src/components/right_panel.svelte | 6 +- src/deck.js | 43 +++++++-- src/ocg_banlist.json | 195 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 338 insertions(+), 27 deletions(-) create mode 100644 src/ocg_banlist.json diff --git a/src/card_db.js b/src/card_db.js index b9b991f..5660ff3 100644 --- a/src/card_db.js +++ b/src/card_db.js @@ -1,5 +1,23 @@ +import ocgBanList from "./ocg_banlist.json"; + let cardDb = {}; let altId = {}; +let banList = { + none: { + ban: [], + limit: [], + semiLimit: [], + }, + ocg: ocgBanList, +}; + +function cardLimit(id, env) { + let lst = banList[env]; + if (lst.ban.includes(id)) return 0; + if (lst.limit.includes(id)) return 1; + if (lst.semiLimit.includes(id)) return 2; + return 3; +} function setCardDb(d) { cardDb = d; @@ -22,4 +40,5 @@ export { setCardDb, getAltId, setAltId, + cardLimit, }; diff --git a/src/components/card_thumb.svelte b/src/components/card_thumb.svelte index 8e701ea..e68a37e 100644 --- a/src/components/card_thumb.svelte +++ b/src/components/card_thumb.svelte @@ -1,9 +1,8 @@ {#if id} - yugioh card {id} + yugioh card {id} + {#if limitNum === 1 || limitNum == 2} +
{limitNum}
+ {:else if limitNum === 0} +
+ {/if} {/if} diff --git a/src/components/main_panel.svelte b/src/components/main_panel.svelte index 2db7a34..1c55d49 100644 --- a/src/components/main_panel.svelte +++ b/src/components/main_panel.svelte @@ -1,6 +1,7 @@ @@ -84,6 +87,11 @@ + +
@@ -91,7 +99,7 @@
e.preventDefault()} ondrop={(e)=>onDrop("main", e, -1)} class="card-grid main-deck"> {#each $deck.main as card, i}
e.preventDefault()} ondrop={(e)=>onDrop("main", e, i)}> - +
{/each}
@@ -101,7 +109,7 @@
e.preventDefault()} ondrop={(e)=>onDrop("extra", e, -1)} class="card-grid extra-deck"> {#each $deck.extra as card, i}
e.preventDefault()} ondrop={(e)=>onDrop("extra", e, i)}> - +
{/each}
@@ -111,7 +119,7 @@
e.preventDefault()} ondrop={(e)=>onDrop("side", e, -1)} class="card-grid side-deck"> {#each $deck.side as card, i}
e.preventDefault()} ondrop={(e)=>onDrop("side", e, i)}> - +
{/each}
@@ -142,6 +150,14 @@ cursor: pointer; } + +.select-format { + padding: 8px 8px; + margin-right: 10px; + cursor: pointer; + font-size: 1.1em; +} + .deck-group { margin-bottom: 30px; } @@ -163,6 +179,7 @@ } .card-grid-thumb { + position: relative; aspect-ratio: 1/1.4; border-radius: 5px; } diff --git a/src/components/right_panel.svelte b/src/components/right_panel.svelte index 816687e..9863d97 100644 --- a/src/components/right_panel.svelte +++ b/src/components/right_panel.svelte @@ -1,7 +1,8 @@