feat: GameState to Title Mapping BAC-1 (#92)

Reviewed-on: #92
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
This commit is contained in:
2025-12-01 19:13:32 +01:00
committed by Janis
parent 0037820905
commit 6e17328846
4 changed files with 19 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ import play.api.*
import play.api.libs.json.{JsValue, Json} import play.api.libs.json.{JsValue, Json}
import play.api.mvc.* import play.api.mvc.*
import play.twirl.api.Html import play.twirl.api.Html
import util.GameUtil
import java.util.UUID import java.util.UUID
import javax.inject.* import javax.inject.*
@@ -33,7 +34,7 @@ class IngameController @Inject()(
IngameController.returnInnerHTML(g, g.logic.getCurrentState, request.user) IngameController.returnInnerHTML(g, g.logic.getCurrentState, request.user)
} }
if (results.isSuccess) { if (results.isSuccess) {
Ok(views.html.main("In-Game - Knockout Whist")(results.get)) Ok(views.html.main("Knockout Whist - " + GameUtil.stateToTitle(g.logic.getCurrentState))(results.get))
} else { } else {
InternalServerError(results.failed.get.getMessage) InternalServerError(results.failed.get.getMessage)
} }

View File

@@ -1,5 +1,8 @@
package util package util
import de.knockoutwhist.control.GameState
import de.knockoutwhist.control.GameState.{FinishedMatch, InGame, Lobby, MainMenu, SelectTrump, TieBreak}
import scala.util.Random import scala.util.Random
object GameUtil { object GameUtil {
@@ -26,4 +29,15 @@ object GameUtil {
code.toString() code.toString()
} }
def stateToTitle(gameState: GameState): String = {
gameState match {
case Lobby => "Lobby"
case MainMenu => "Main Menu"
case InGame => "In Game"
case SelectTrump => "Select Trump"
case TieBreak => "Tie Break"
case FinishedMatch => "Finished Match"
}
}
} }

View File

@@ -4,6 +4,7 @@ import controllers.IngameController
import de.knockoutwhist.events.global.GameStateChangeEvent import de.knockoutwhist.events.global.GameStateChangeEvent
import model.sessions.UserSession import model.sessions.UserSession
import play.api.libs.json.{JsObject, Json} import play.api.libs.json.{JsObject, Json}
import util.GameUtil
object GameStateEventMapper extends SimpleEventMapper[GameStateChangeEvent] { object GameStateEventMapper extends SimpleEventMapper[GameStateChangeEvent] {
@@ -11,7 +12,7 @@ object GameStateEventMapper extends SimpleEventMapper[GameStateChangeEvent] {
override def toJson(event: GameStateChangeEvent, session: UserSession): JsObject = { override def toJson(event: GameStateChangeEvent, session: UserSession): JsObject = {
Json.obj( Json.obj(
//Title "title" -> ("Knockout Whist - " + GameUtil.stateToTitle(event.newState)),
"content" -> IngameController.returnInnerHTML(session.gameLobby, event.newState, session.user).toString "content" -> IngameController.returnInnerHTML(session.gameLobby, event.newState, session.user).toString
) )
} }