1 Commits

Author SHA1 Message Date
372f20ca6c feat(game)!: Add winner display and return to lobby functionality 2025-11-19 22:37:47 +01:00
4 changed files with 12 additions and 3 deletions

View File

@@ -34,6 +34,7 @@ trait GameLogic extends EventHandler with SnapshottingGameLogic {
def getCurrentRound: Option[Round]
def getCurrentTrick: Option[Trick]
def getCurrentPlayer: Option[AbstractPlayer]
def getWinner: Option[AbstractPlayer]
def getTrumpPlayer: Option[AbstractPlayer]
def getPlayerQueue: Option[CustomPlayerQueue[AbstractPlayer]]

View File

@@ -198,7 +198,7 @@ final class BaseGameLogic(val config: Configuration) extends EventHandler with G
).map(rp => rp.amountOfTricks).sum))
invoke(DelayEvent(2000))
if (roundResult.notTricked.nonEmpty) {
if (roundResult.notTricked.nonEmpty && !resultingRound.firstRound) {
if (matchImpl.dogLife) {
invoke(ShowPlayersOutEvent(roundResult.notTricked))
invoke(DelayEvent(2000))
@@ -319,6 +319,14 @@ final class BaseGameLogic(val config: Configuration) extends EventHandler with G
override def getCurrentPlayer: Option[AbstractPlayer] = currentPlayer
override def getPlayerQueue: Option[CustomPlayerQueue[AbstractPlayer]] = playerQueue
override def getWinner: Option[AbstractPlayer] = {
if (currentMatch.isEmpty) throw new IllegalStateException("No current match set")
val matchImpl = currentMatch.get
if (!matchImpl.isOver) return None
Some(matchImpl.playersIn.head)
}
override def getTrumpPlayer: Option[AbstractPlayer] = {
if (currentMatch.isEmpty) throw new IllegalStateException("No current match set")
val matchImpl = currentMatch.get

View File

@@ -17,7 +17,7 @@ object MatchUtil {
}
def dogNeedsToPlay(matchImpl: Match, roundImpl: Round): Boolean = {
remainingRounds(matchImpl, roundImpl) == 1
remainingRounds(matchImpl, roundImpl) <= 1
}
}

View File

@@ -5,7 +5,7 @@ import de.knockoutwhist.utils.events.{EventListener, SimpleEvent}
object DelayHandler extends EventListener {
private[knockoutwhist] var activateDelay: Boolean = false
private[knockoutwhist] var activateDelay: Boolean = true
override def listen(event: SimpleEvent): Unit = {
event match {