feat(ui): Tie selection
Added a minimal ui for the tie selection. Tie selection gets sent to the server via websocket and gets response from it.
This commit is contained in:
@@ -27,6 +27,7 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
|
|||||||
case _ =>
|
case _ =>
|
||||||
}
|
}
|
||||||
websocketActor.foreach(_.solveRequests())
|
websocketActor.foreach(_.solveRequests())
|
||||||
|
println("EVENT which will get transmitted to client:" + event.id)
|
||||||
websocketActor.foreach(_.transmitEventToClient(event))
|
websocketActor.foreach(_.transmitEventToClient(event))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,6 +74,15 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
|
|||||||
case None =>
|
case None =>
|
||||||
println("Card Index not found or is not a number.")
|
println("Card Index not found or is not a number.")
|
||||||
}
|
}
|
||||||
|
case "PickTie" =>
|
||||||
|
val maybeCardIndex: Option[Int] = (data \ "cardIndex").asOpt[Int]
|
||||||
|
maybeCardIndex match {
|
||||||
|
case Some(index) =>
|
||||||
|
val session = gameLobby.getUserSession(user.id)
|
||||||
|
gameLobby.selectTie(session, index)
|
||||||
|
case None =>
|
||||||
|
println("Card Index not found or is not a number.")
|
||||||
|
}
|
||||||
case "KickPlayer" =>
|
case "KickPlayer" =>
|
||||||
val maybePlayerId: Option[String] = (data \ "playerId").asOpt[String]
|
val maybePlayerId: Option[String] = (data \ "playerId").asOpt[String]
|
||||||
maybePlayerId match {
|
maybePlayerId match {
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ class UserWebsocketActor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
def transmitEventToClient(event: SimpleEvent): Unit = {
|
def transmitEventToClient(event: SimpleEvent): Unit = {
|
||||||
|
println("This event is getting transmitted to client (INSIDE transmitEventToClient")
|
||||||
transmitJsonToClient(WebsocketEventMapper.toJson(event, session))
|
transmitJsonToClient(WebsocketEventMapper.toJson(event, session))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ object WebsocketEventMapper {
|
|||||||
|
|
||||||
// Register all custom mappers here
|
// Register all custom mappers here
|
||||||
registerCustomMapper(ReceivedHandEventMapper)
|
registerCustomMapper(ReceivedHandEventMapper)
|
||||||
registerCustomMapper(GameStateEventMapper)
|
//registerCustomMapper(GameStateEventMapper)
|
||||||
registerCustomMapper(CardPlayedEventMapper)
|
registerCustomMapper(CardPlayedEventMapper)
|
||||||
registerCustomMapper(NewRoundEventMapper)
|
registerCustomMapper(NewRoundEventMapper)
|
||||||
registerCustomMapper(NewTrickEventMapper)
|
registerCustomMapper(NewTrickEventMapper)
|
||||||
@@ -50,10 +50,13 @@ object WebsocketEventMapper {
|
|||||||
|
|
||||||
def toJson(obj: SimpleEvent, session: UserSession): JsValue = {
|
def toJson(obj: SimpleEvent, session: UserSession): JsValue = {
|
||||||
val data: Option[JsValue] = if (specialMappers.contains(obj.id)) {
|
val data: Option[JsValue] = if (specialMappers.contains(obj.id)) {
|
||||||
|
println("TEST1")
|
||||||
Some(specialMappers(obj.id).toJson(obj, session))
|
Some(specialMappers(obj.id).toJson(obj, session))
|
||||||
}else {
|
}else {
|
||||||
|
println("TEST2")
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
println(s"This is getting sent to client: EVENT: ${obj.id}, STATE: ${session.gameLobby.getLogic.getCurrentState.toString}, STATEDATA: ${stateToJson(session)}, DATA: ${data}")
|
||||||
Json.obj(
|
Json.obj(
|
||||||
"id" -> ("request-" + java.util.UUID.randomUUID().toString),
|
"id" -> ("request-" + java.util.UUID.randomUUID().toString),
|
||||||
"event" -> obj.id,
|
"event" -> obj.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user