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 19a0658..3e7bdcf 100644 --- a/knockoutwhistweb/public/javascripts/events.js +++ b/knockoutwhistweb/public/javascripts/events.js @@ -126,8 +126,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 => { @@ -140,7 +140,9 @@ function trickEndEvent(eventData) { ` }); + alertMessage(`${winner} won the trick!`) tricktable.html(newHtml); + } function newTrickEvent() { const firstCardContainer = $('#first-card-container'); @@ -305,7 +307,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) @@ -318,5 +324,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