From 5eb0eac39e7582b7e32ae3d35ec00f1e7a45a4ea Mon Sep 17 00:00:00 2001 From: LQ63 Date: Thu, 4 Dec 2025 01:32:17 +0100 Subject: [PATCH 1/4] feat(api): Vue Changed ingame JQuery to Vue Components, Started changing lobby to vue components --- .../app/views/ingame/ingame.scala.html | 117 +-- .../app/views/lobby/lobby.scala.html | 132 +-- knockoutwhistweb/app/views/main.scala.html | 2 + knockoutwhistweb/public/javascripts/events.js | 868 +++++++++++++----- .../public/javascripts/interact.js | 68 +- 5 files changed, 693 insertions(+), 494 deletions(-) diff --git a/knockoutwhistweb/app/views/ingame/ingame.scala.html b/knockoutwhistweb/app/views/ingame/ingame.scala.html index 7c342e2..b2b39b8 100644 --- a/knockoutwhistweb/app/views/ingame/ingame.scala.html +++ b/knockoutwhistweb/app/views/ingame/ingame.scala.html @@ -8,123 +8,29 @@
-
-

Current Player

- @if(gamelobby.getLogic.getCurrentPlayer.isDefined) { -

@gamelobby.getLogic.getCurrentPlayer.get.name

- }else { -

---

- } - @if(gamelobby.getLogic.getPlayerQueue.isDefined && gamelobby.getLogic.getCurrentMatch && !TrickUtil.isOver(gamelobby.getLogic.getCurrentMatch.get, gamelobby.getLogic.getPlayerQueue.get)) { -

Next Players

-
- @for(nextplayer <- gamelobby.getLogic.getPlayerQueue.get.duplicate()) { -

@nextplayer @if(nextplayer.isInDogLife) { - 🐶 - }

- } -
- } else { - -
- -
- } -
+
-
-

Tricks Won

- -
-
PLAYER
-
TRICKS
-
- - @if(gamelobby.getLogic.getPlayerQueue.isDefined) { - @for(player <- gamelobby.getLogic.getPlayerQueue.get.toList.sortBy { p => - -(gamelobby.getLogic.getCurrentRound.get.tricklist.filter { trick => trick.winner.contains(p) }.size) - }) { -
-
@player.name
-
- @(gamelobby.getLogic.getCurrentRound.get.tricklist.filter { trick => trick.winner.contains(player) }.size) -
-
- } - }else{ -
-
- } -
-
- @if(gamelobby.getLogic.getCurrentTrick.isEmpty || gamelobby.getLogic.getCurrentTrick.get.cards.isEmpty) { -
-
- } else { - @for((cardplayed, player) <- gamelobby.getLogic.getCurrentTrick.get.cards) { -
-
-
- @util.WebUIUtils.cardtoImage(cardplayed) width="100%"/> -
-
- @player -
-
-
- } - } -
+
+ + +
+
-
-

Trumpsuit

- @if(gamelobby.getLogic.getCurrentRound.isEmpty) { -

No Trumpsuit

- }else { -

@gamelobby.getLogic.getCurrentRound.get.trumpSuit

- } -
First Card
-
- @if(gamelobby.getLogic.getCurrentTrick.isDefined && gamelobby.getLogic.getCurrentTrick.get.firstCard.isDefined) { - @util.WebUIUtils.cardtoImage(gamelobby.getLogic.getCurrentTrick.get.firstCard.get) - width="80px"/> - } else { - @views.html.render.card.apply("images/cards/1B.png")("Blank Card") width="80px"/> - } -
-
+ +
+ +
-
- @if(player.currentHand().isEmpty || player.currentHand().get.cards.isEmpty) { - - } else { - @for(i <- player.currentHand().get.cards.indices) { -
-
- @util.WebUIUtils.cardtoImage(player.currentHand().get.cards(i)) width="120px" style="border-radius: 6px"/> -
- @if(player.isInDogLife) { -
- -
- } -
- } - } -
+
@@ -132,4 +38,5 @@ diff --git a/knockoutwhistweb/app/views/lobby/lobby.scala.html b/knockoutwhistweb/app/views/lobby/lobby.scala.html index 769f3e8..e9f90a8 100644 --- a/knockoutwhistweb/app/views/lobby/lobby.scala.html +++ b/knockoutwhistweb/app/views/lobby/lobby.scala.html @@ -1,102 +1,38 @@ @(user: Option[model.users.User], gamelobby: logic.game.GameLobby) +@import play.api.libs.json._ +
-
- - - - - - - -
-
-
-
-
- Lobby-Name: @gamelobby.name -
-
Exit
-
-
-
-
-
-
- Players: @gamelobby.getPlayers.size / @gamelobby.maxPlayers
-
-
-
- @if((gamelobby.getUserSession(user.get.id).host)) { -
- @for(playersession <- gamelobby.getPlayers.values) { -
-
- Profile -
- @if(playersession.id == user.get.id) { -
@playersession.name (You)
- Remove - } else { -
@playersession.name
-
- Remove
- } -
-
-
- } -
-
-
Start Game
-
- } else { -
- @for(playersession <- gamelobby.getPlayers.values) { -
- Profile -
- @if(playersession.id == user.get.id) { -
@playersession.name (You)
- } else { -
@playersession.name
- } -
-
-
- } -
-
-

Waiting for the host to start the game...

-
- Loading... -
-
- } -
-
-
\ No newline at end of file diff --git a/knockoutwhistweb/app/views/main.scala.html b/knockoutwhistweb/app/views/main.scala.html index a24d416..c7e35ec 100644 --- a/knockoutwhistweb/app/views/main.scala.html +++ b/knockoutwhistweb/app/views/main.scala.html @@ -20,6 +20,7 @@ + @@ -27,6 +28,7 @@ +
@* And here's where we render the `Html` object containing * the page content. *@ @content diff --git a/knockoutwhistweb/public/javascripts/events.js b/knockoutwhistweb/public/javascripts/events.js index 09af240..e968857 100644 --- a/knockoutwhistweb/public/javascripts/events.js +++ b/knockoutwhistweb/public/javascripts/events.js @@ -1,162 +1,498 @@ var canPlayCard = false; - -function alertMessage(message) { - let newHtml = ''; - const alertId = `alert-${Date.now()}`; - const fadeTime = 500; - const duration = 5000; - newHtml += ` -
-