Co-authored-by: TeamCity <teamcity@service.local> Reviewed-on: #86 Reviewed-by: lq64 <lq@blackhole.local>
36 lines
911 B
Scala
36 lines
911 B
Scala
package util.mapper
|
|
|
|
import de.knockoutwhist.events.global.TurnEvent
|
|
import de.knockoutwhist.player.AbstractPlayer
|
|
import model.sessions.UserSession
|
|
import play.api.libs.json.{JsArray, JsObject, Json}
|
|
|
|
object TurnEventMapper extends SimpleEventMapper[TurnEvent] {
|
|
|
|
override def id: String = "TurnEvent"
|
|
|
|
override def toJson(event: TurnEvent, session: UserSession): JsObject = {
|
|
val nextPlayers = if (session.gameLobby.logic.getPlayerQueue.isEmpty) {
|
|
Json.arr()
|
|
} else {
|
|
val queue = session.gameLobby.logic.getPlayerQueue.get
|
|
JsArray(
|
|
queue.duplicate().map(player => mapPlayer(player)).toList
|
|
)
|
|
}
|
|
|
|
Json.obj(
|
|
"currentPlayer" -> mapPlayer(event.player),
|
|
"nextPlayers" -> nextPlayers
|
|
)
|
|
}
|
|
|
|
private def mapPlayer(player: AbstractPlayer): JsObject = {
|
|
Json.obj(
|
|
"name" -> player.name,
|
|
"dog" -> player.isInDogLife
|
|
)
|
|
}
|
|
|
|
}
|