feat(game): implement tie resolution and enhance player interaction

43 [Subtask] UI looks better and improved
This commit is contained in:
2025-11-12 11:44:34 +01:00
parent c45fb0caf3
commit ca1c7bd2ac
5 changed files with 93 additions and 70 deletions

View File

@@ -5,7 +5,7 @@
<div class="ingame-stage blur-sides">
<div class="container py-4">
<div class="row justify-content-center">
<div class="col-12 col-md-10 col-lg-8">
<div class="col-12">
<div class="card shadow-sm">
<div class="card-header text-center">
<h3 class="mb-0">Select Trump Suit</h3>
@@ -16,66 +16,50 @@
You (@player.toString) won the last round. Choose the trump suit for the next round.
</div>
<form method="post" action="@routes.IngameController.playTrump(gameId)">
<div class="row row-cols-2 row-cols-sm-4 g-3">
<div class="col">
<button class="btn btn-outline-dark w-100 h-100 py-3" type="submit" name="trump" value="0" aria-label="Spades">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Spades))
<div class="mt-2">Spades</div>
<div class="row justify-content-center col-auto mb-5">
<div class="col-auto handcard">
<form action="@routes.IngameController.playTrump(gameId)" method="post">
<input type="hidden" name="cardId" value="0" />
<button type="submit" class="btn btn-outline-light p-0 border-0 shadow-none" name="trump" value="0" style="border-radius: 6px">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Spades)) width="120px" style="border-radius: 6px"/>
</button>
</div>
<div class="col">
<button class="btn btn-outline-danger w-100 h-100 py-3" type="submit" name="trumpSuit" value="1" aria-label="Hearts">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Hearts))
<div class="mt-2">Hearts</div>
</button>
</div>
<div class="col">
<button class="btn btn-outline-warning w-100 h-100 py-3" type="submit" name="trumpSuit" value="2" aria-label="Diamonds">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Diamonds))
<div class="mt-2">Diamonds</div>
</button>
</div>
<div class="col">
<button class="btn btn-outline-secondary w-100 h-100 py-3" type="submit" name="trumpSuit" value="3" aria-label="Clubs">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Clubs))
<div class="mt-2">Clubs</div>
</button>
</div>
</form>
</div>
</form>
<div class="col-auto handcard">
<form action="@routes.IngameController.playTrump(gameId)" method="post">
<input type="hidden" name="cardId" value="1" />
<button type="submit" class="btn btn-outline-light p-0 border-0 shadow-none" name="trump" value="1" style="border-radius: 6px">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Hearts)) width="120px" style="border-radius: 6px"/>
</button>
</form>
</div>
<div class="col-auto handcard">
<form action="@routes.IngameController.playTrump(gameId)" method="post">
<input type="hidden" name="cardId" value="2" />
<button type="submit" class="btn btn-outline-light p-0 border-0 shadow-none" name="trump" value="2" style="border-radius: 6px">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Diamonds)) width="120px" style="border-radius: 6px"/>
</button>
</form>
</div>
<div class="col-auto handcard">
<form action="@routes.IngameController.playTrump(gameId)" method="post">
<input type="hidden" name="cardId" value="3" />
<button type="submit" class="btn btn-outline-light p-0 border-0 shadow-none" name="trump" value="3" style="border-radius: 6px">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Clubs)) width="120px" style="border-radius: 6px"/>
</button>
</form>
</div>
</div>
<div class="row justify-content-center" id="card-slide">
@for(i <- player.currentHand().get.cards.indices) {
<div class="col-auto" style="border-radius: 6px">
@util.WebUIUtils.cardtoImage(player.currentHand().get.cards(i)) width="120px" style="border-radius: 6px"/>
</div>
}
</div>
} else {
<div class="alert alert-warning" role="alert" aria-live="polite">
@player.toString is choosing a trumpsuit. The new round will start once a suit is picked.
</div>
<div class="text-center">
<div class="row row-cols-2 row-cols-sm-4 g-3">
<div class="col">
<div class="btn btn-outline-dark disabled w-100 h-100 py-3" aria-disabled="true">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Spades))
<div class="mt-2">Spades</div>
</div>
</div>
<div class="col">
<div class="btn btn-outline-danger disabled w-100 h-100 py-3" aria-disabled="true">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Hearts))
<div class="mt-2">Hearts</div>
</div>
</div>
<div class="col">
<div class="btn btn-outline-warning disabled w-100 h-100 py-3" aria-disabled="true">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Diamonds))
<div class="mt-2">Diamonds</div>
</div>
</div>
<div class="col">
<div class="btn btn-outline-secondary disabled w-100 h-100 py-3" aria-disabled="true">
@util.WebUIUtils.cardtoImage(de.knockoutwhist.cards.Card(de.knockoutwhist.cards.CardValue.Ace, de.knockoutwhist.cards.Suit.Clubs))
<div class="mt-2">Clubs</div>
</div>
</div>
</div>
@logic.getCurrentMatch.get.roundlist.last.winner.get.name is choosing a trumpsuit. The new round will start once a suit is picked.
</div>
}
</div>