diff --git a/TableturfBattleClient/index.html b/TableturfBattleClient/index.html index b13951f..f2925d3 100644 --- a/TableturfBattleClient/index.html +++ b/TableturfBattleClient/index.html @@ -283,6 +283,7 @@

Deck

+ @@ -337,14 +338,14 @@
- -

Select a stage.

-
-
- -
-
+ +

Select a stage.

+
+
+ +
+
diff --git a/TableturfBattleClient/src/Pages/DeckEditPage.ts b/TableturfBattleClient/src/Pages/DeckEditPage.ts index 0a3fb4b..765f283 100644 --- a/TableturfBattleClient/src/Pages/DeckEditPage.ts +++ b/TableturfBattleClient/src/Pages/DeckEditPage.ts @@ -40,6 +40,7 @@ function editDeck() { deckEditUpdateSize(); cardList.clearFilter(); + editingDeck = true; showPage('deckEdit'); } @@ -177,6 +178,7 @@ function stopEditingDeck() { deckModified = false; window.removeEventListener('beforeunload', onBeforeUnload_deckEditor); } + editingDeck = false; } function onBeforeUnload_deckEditor(e: BeforeUnloadEvent) { @@ -199,10 +201,18 @@ function addTestStage(stage: Stage) { clearChildren(testDeckList); testDeckCardButtons.splice(0); - for (const el of deckEditCardButtons) { - const card = (el as CardButton).card; - if (card) { - addTestDeckCard(card); + if (editingDeck) { + for (const el of deckEditCardButtons) { + const card = (el as CardButton).card; + if (card) { + addTestDeckCard(card); + } + } + } else if (selectedDeck) { + for (const cardNumber of selectedDeck.cards) { + if (cardNumber > 0 && cardNumber <= cardDatabase.cards!.length) { + addTestDeckCard(cardDatabase.get(cardNumber)); + } } } diff --git a/TableturfBattleClient/src/Pages/DeckListPage.ts b/TableturfBattleClient/src/Pages/DeckListPage.ts index d0886e4..96c839f 100644 --- a/TableturfBattleClient/src/Pages/DeckListPage.ts +++ b/TableturfBattleClient/src/Pages/DeckListPage.ts @@ -9,6 +9,7 @@ const addDeckControls = document.getElementById('addDeckControls')!; const newDeckButton = document.getElementById('newDeckButton') as HTMLButtonElement; const importDeckButton = document.getElementById('importDeckButton') as HTMLButtonElement; const deckEditButton = document.getElementById('deckEditButton') as HTMLButtonElement; +const deckListTestButton = document.getElementById('deckListTestButton') as HTMLButtonElement; const deckExportButton = document.getElementById('deckExportButton') as HTMLButtonElement; const deckRenameButton = document.getElementById('deckRenameButton') as HTMLButtonElement; const deckCopyButton = document.getElementById('deckCopyButton') as HTMLButtonElement; @@ -133,6 +134,12 @@ deckImportForm.addEventListener('submit', e => { deckEditButton.addEventListener('click', editDeck); +deckListTestButton.addEventListener('click', _ => { + for (const button of testStageButtons) + button.checked = false; + testStageSelectionDialog.showModal(); +}); + function selectDeck() { clearChildren(deckCardListView); if (selectedDeck == null) return; diff --git a/TableturfBattleClient/src/Pages/GamePage.ts b/TableturfBattleClient/src/Pages/GamePage.ts index 2a7acd6..fc55941 100644 --- a/TableturfBattleClient/src/Pages/GamePage.ts +++ b/TableturfBattleClient/src/Pages/GamePage.ts @@ -326,7 +326,7 @@ testUndoButton.addEventListener('click', _ => { }); testBackButton.addEventListener('click', _ => { - showPage('deckEdit'); + showPage(editingDeck ? 'deckEdit' : 'deckList'); }); testDeckButton.input.addEventListener('input', _ => { diff --git a/TableturfBattleClient/src/app.ts b/TableturfBattleClient/src/app.ts index e1cd3c9..c7a636b 100644 --- a/TableturfBattleClient/src/app.ts +++ b/TableturfBattleClient/src/app.ts @@ -12,6 +12,7 @@ let canPushState = isSecureContext && location.protocol != 'file:'; const decks: Deck[] = [ new Deck('Starter Deck', [ 6, 34, 159, 13, 45, 137, 22, 52, 141, 28, 55, 103, 40, 56, 92 ], true) ]; let selectedDeck: Deck | null = null; +let editingDeck = false; let deckModified = false; function delay(ms: number, abortSignal?: AbortSignal) {