public clsMensajeBase recibirMensaje(string mensaje) { clsMensajeBase convertido = JsonConvert.DeserializeObject <clsMensajeBase>(mensaje); switch (convertido.Tipo) { case "MENSAJE_PARTIDA": clsMensajePartida retorno1 = JsonConvert.DeserializeObject <clsMensajePartida>(mensaje); return(retorno1); case "MENSAJE_JUEGO": clsMensajeJuego retorno2 = JsonConvert.DeserializeObject <clsMensajeJuego>(mensaje); return(retorno2); case "MENSAJE_PERDEDOR": clsMensajePerdedor retorno3 = JsonConvert.DeserializeObject <clsMensajePerdedor>(mensaje); return(retorno3); case "MENSAJE_GANADOR": clsMensajeGanador retorno4 = JsonConvert.DeserializeObject <clsMensajeGanador>(mensaje); return(retorno4); case "MENSAJE_TIMER": clsMensajeTimer retorno5 = JsonConvert.DeserializeObject <clsMensajeTimer>(mensaje); return(retorno5); case "MENSAJE_FIN_PARTIDA": clsMensajeFinPartida retorno6 = JsonConvert.DeserializeObject <clsMensajeFinPartida>(mensaje); return(retorno6); default: return(convertido); } }
private void controlaFallo(clsMensajeJuego mensaje, String nombre) { if (juego.Jugadores.ElementAt(juego.BuscaIndiceJugador(nombre)).FueraDeJuego) { clsMensajePerdedor msjPerdedor = new clsMensajePerdedor(); EnviarAUno(nombre, msjPerdedor); } else { if (mensaje.Retorno.Equals("FALLO")) { EnviarAUno(nombre, mensaje); } else { if (juego.Ganador != null) { EnviarATodos(juego.Ganador); Thread.Sleep(5000); t.Abort(); if (cantidadRondas < 2) { reiniciaRonda(); cantidadRondas++; } else { clsMensajeFinPartida msjFinPartida = new clsMensajeFinPartida(); EnviarATodos(msjFinPartida); clsServer server = new clsServer(); } } else { EnviarATodos(mensaje); } } } }