Habilitada opcion para ignorar una oportunidad

master
Araozu 2020-10-06 12:48:13 -05:00
parent 2d6bde36c9
commit 83ec3d80e5
4 changed files with 37 additions and 1 deletions

View File

@ -82,4 +82,9 @@ object GestorJuegos {
juego.manejarDescarte(idUsuario, carta) juego.manejarDescarte(idUsuario, carta)
} }
suspend fun manejarIgnorarOportunidad(idJuego: String, idUsuario: String) {
val juego = juegos[idJuego]!!
juego.ignorarOportunidadSeq(idUsuario)
}
} }

View File

@ -9,6 +9,8 @@ val gson = Gson()
data class DatosDescarte(val idJuego: String, val idUsuario: String, val carta: Int) data class DatosDescarte(val idJuego: String, val idUsuario: String, val carta: Int)
data class DatosIgnorarOportunidad(val idJuego: String, val idUsuario: String)
fun Routing.juegows() { fun Routing.juegows() {
webSocket("/juego") { webSocket("/juego") {
@ -25,6 +27,10 @@ fun Routing.juegows() {
val datos = gson.fromJson(sol.datos, DatosDescarte::class.java) val datos = gson.fromJson(sol.datos, DatosDescarte::class.java)
GestorJuegos.manejarDescarte(datos.idJuego, datos.idUsuario, datos.carta) 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)
}
} }
} }
} }

View File

@ -178,4 +178,30 @@ class Juego(val usuarios: ArrayList<Pair<String, Boolean>>) {
} }
} }
suspend fun ignorarOportunidadSeq(idUsuario: String) {
var aunHayOportunidades = false
for ((id, mano) in manos) {
// Eliminar oportunidad del usuario
if (id == idUsuario) {
mano.oportunidades = arrayListOf()
continue
}
// Si algun otro jugador tiene una oportunidad
if (mano.oportunidades.isNotEmpty()) {
aunHayOportunidades = true
}
}
// Si no quedan oportunidades cambiar el turno al sig jugador
if (!aunHayOportunidades) {
cambiarTurnoSigJugadorConsecutivo()
gestorDora!!.actualizarDoraCerrado()
}
// Enviar los nuevos datos
enviarDatosATodos()
}
} }

View File

@ -4,5 +4,4 @@ interface Oportunidad {
val cartaDescartada: Int val cartaDescartada: Int
val nombreOportunidad: String val nombreOportunidad: String
} }