diff --git a/frontend/src/components/CardDeckShowcase.svelte b/frontend/src/components/CardDeckShowcase.svelte new file mode 100644 index 0000000..f2197a8 --- /dev/null +++ b/frontend/src/components/CardDeckShowcase.svelte @@ -0,0 +1,29 @@ + + + diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json index f8a9941..32e884f 100644 --- a/frontend/src/i18n/de.json +++ b/frontend/src/i18n/de.json @@ -69,7 +69,13 @@ "player_name": "Spielername", "status": "Status", "host": "Host", - "you": "Du" + "you": "Du", + "player": "Spieler", + "return_to_game": "Zurück zum Spiel", + "selected_card_deck": "Ausgewähltes Kartendeck:", + "change_card_deck": "Ändern", + "choose_card_deck": "Auswählen", + "card_deck_modal": "Wähle ein Kartendeck aus" }, "end_screen": { "game_has_ended": "Das Spiel ist vorbei", diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index 8b896d7..1b7b5c3 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -71,7 +71,11 @@ "host": "Host", "you": "You", "player": "Player", - "return_to_game": "Return to game" + "return_to_game": "Return to game", + "selected_card_deck": "Selected card deck:", + "change_card_deck": "Change", + "choose_card_deck": "Choose", + "card_deck_modal": "Select a card deck" }, "end_screen": { "game_has_ended": "The game has ended", diff --git a/frontend/src/routes/Game.svelte b/frontend/src/routes/Game.svelte index 5a18df4..aac716a 100644 --- a/frontend/src/routes/Game.svelte +++ b/frontend/src/routes/Game.svelte @@ -10,6 +10,11 @@ import { requestJoinRoom } from "../stores/roomStore"; import gameStore from "../stores/gameStore"; + let maxRotationDeg = 20; + let centerDistancePx = 200; + let cardWidth = 100; + let cardHeight = 150; + onMount(async () => { // TODO: check if already connected to room, currently its overwriting the session const params = new URLSearchParams(window.location.search); @@ -51,7 +56,7 @@ {#if $sessionStore.gameState == GameState.Lobby}
- +
{/if} @@ -59,11 +64,11 @@
{#if $gameStore.isLobbyOverlayShown}
- +
{/if} -
+
{:else if $sessionStore.gameState == GameState.Ended} diff --git a/frontend/src/routes/_module.svelte b/frontend/src/routes/_module.svelte index 1f27cd9..f46c237 100644 --- a/frontend/src/routes/_module.svelte +++ b/frontend/src/routes/_module.svelte @@ -65,7 +65,7 @@
-
+
diff --git a/frontend/src/stores/cardDeck.ts b/frontend/src/stores/cardDeck.ts new file mode 100644 index 0000000..659451d --- /dev/null +++ b/frontend/src/stores/cardDeck.ts @@ -0,0 +1,13 @@ +import ClassicCard from "../components/Cards/ClassicCard.svelte"; +import HexV1Card from "../components/Cards/HexV1Card.svelte"; + +interface CardDeck { + id: number; + name: string; + cardComponent: any; +} + +export const CardDecks: CardDeck[] = [ + { id: 0, name: "Classic", cardComponent: ClassicCard }, + { id: 1, name: "HexV1", cardComponent: HexV1Card }, +]; diff --git a/frontend/src/stores/sessionStore.ts b/frontend/src/stores/sessionStore.ts index 7c1a12e..809be5d 100644 --- a/frontend/src/stores/sessionStore.ts +++ b/frontend/src/stores/sessionStore.ts @@ -80,6 +80,10 @@ interface PlayedCardUpdateObj { Card: Card; } +interface SetCardDeckReq { + CardDeckId: number; +} + interface PlayCardReq { CardIndex?: number; CardData: any; @@ -367,6 +371,13 @@ class SessionManager { } } + setCardDeck(id: number) { + let request: SetCardDeckReq = { + CardDeckId: id, + }; + this.sendMessage("SetCardDeck", JSON.stringify(request)); + } + drawCard() { this.sendMessage("DrawCard", ""); } diff --git a/frontend/src/views/Game/Lobby.svelte b/frontend/src/views/Game/Lobby.svelte index 6d40839..cc00282 100644 --- a/frontend/src/views/Game/Lobby.svelte +++ b/frontend/src/views/Game/Lobby.svelte @@ -1,10 +1,12 @@