package dev.araozu import com.google.gson.Gson import io.ktor.http.cio.websocket.* import io.ktor.routing.* import io.ktor.websocket.* val gson = Gson() data class DatosDescarte(val idJuego: String, val idUsuario: String, val carta: Int) data class DatosIgnorarOportunidad(val idJuego: String, val idUsuario: String) data class DatosLlamarSeq( val idJuego: String, val idUsuario: String, val cartaDescartada: Int, val combinacion: Pair ) fun Routing.juegows() { webSocket("/juego") { for (frame in incoming) when (frame) { is Frame.Text -> { val sol = gson.fromJson(frame.readText(), Conexion::class.java) when (sol.operacion) { "conectar" -> { val datos = gson.fromJson(sol.datos, ConexionNueva::class.java) GestorJuegos.conectarASala(datos.idJuego, datos.idUsuario, this) } "descarte" -> { val datos = gson.fromJson(sol.datos, DatosDescarte::class.java) GestorJuegos.manejarDescarte(datos.idJuego, datos.idUsuario, datos.carta) } "ignorar_oportunidad" -> { val datos = gson.fromJson(sol.datos, DatosIgnorarOportunidad::class.java) GestorJuegos.manejarIgnorarOportunidad(datos.idJuego, datos.idUsuario) } "llamar_seq" -> { val datos = gson.fromJson(sol.datos, DatosLlamarSeq::class.java) GestorJuegos.manejarLlamarSeq( datos.idJuego, datos.idUsuario, datos.cartaDescartada, datos.combinacion ) } } } } } }