diff --git a/knockoutwhistweb/app/util/mapper/RoundEndEventMapper.scala b/knockoutwhistweb/app/util/mapper/RoundEndEventMapper.scala new file mode 100644 index 0000000..33ac58f --- /dev/null +++ b/knockoutwhistweb/app/util/mapper/RoundEndEventMapper.scala @@ -0,0 +1,20 @@ +package util.mapper + +import controllers.routes +import de.knockoutwhist.events.global.RoundEndEvent +import model.sessions.UserSession +import play.api.libs.json.{JsObject, Json} + +object RoundEndEventMapper extends SimpleEventMapper[RoundEndEvent] { + + override def id: String = "RoundEndEvent" + + override def toJson(event: RoundEndEvent, session: UserSession): JsObject = { + + Json.obj( + "player" -> event.winner.name, + "tricks" -> event.amountOfTricks + ) + } + +} diff --git a/knockoutwhistweb/public/javascripts/events.js b/knockoutwhistweb/public/javascripts/events.js index ea88b70..b796bf8 100644 --- a/knockoutwhistweb/public/javascripts/events.js +++ b/knockoutwhistweb/public/javascripts/events.js @@ -128,8 +128,8 @@ function trickEndEvent(eventData) { } ) const playerorder = players.sort((playerA, playerB) => { - const countA = playercounts.get(playerA.name) || 0; - const countB = playercounts.get(playerB.name) || 0; + const countA = playercounts.get(playerA) || 0; + const countB = playercounts.get(playerB) || 0; return countB - countA; }); playerorder.forEach( player => { @@ -142,7 +142,9 @@ function trickEndEvent(eventData) { ` }); + alertMessage(`${winner} won the trick!`) tricktable.html(newHtml); + } function newTrickEvent() { const firstCardContainer = $('#first-card-container'); @@ -309,7 +311,11 @@ function receiveTurnEvent(eventData) { nextPlayersContainer.html(nextPlayersHtml); } } - +function receiveRoundEndEvent(eventData) { + const player = eventData.player + const tricks = eventData.tricks + alertMessage(`${player} won this round with ${tricks} tricks!`) +} onEvent("ReceivedHandEvent", receiveHandEvent) onEvent("GameStateChangeEvent", receiveGameStateChange) onEvent("NewRoundEvent", newRoundEvent) @@ -322,5 +328,6 @@ onEvent("LeftEvent", receiveGameStateChange) onEvent("KickEvent", receiveKickEvent) onEvent("SessionClosed", receiveSessionClosedEvent) onEvent("TurnEvent", receiveTurnEvent) +onEvent("RoundEndEvent", receiveRoundEndEvent) globalThis.alertMessage = alertMessage \ No newline at end of file