public ReciclaUAGenNHibernate.EN.ReciclaUA.JuegoEN SiguienteItem(int p_oid, ReciclaUAGenNHibernate.Enumerated.ReciclaUA.TipoContenedorEnum p_tipocontenedor) { /*PROTECTED REGION ID(ReciclaUAGenNHibernate.CP.ReciclaUA_Juego_siguienteItem) ENABLED START*/ IJuegoCAD juegoCAD = null; JuegoCEN juegoCEN = null; JuegoEN juegoEN = null; INivelCAD nivelCAD = null; NivelCEN nivelCEN = null; NivelEN nivelEN = null; try { SessionInitializeTransaction(); juegoCAD = new JuegoCAD(session); juegoCEN = new JuegoCEN(juegoCAD); juegoEN = juegoCAD.BuscarPorId(p_oid); nivelCAD = new NivelCAD(session); nivelCEN = new NivelCEN(nivelCAD); IList <NivelEN> niveles = new List <NivelEN>(); ItemCAD Itemcad = new ItemCAD(session); niveles = nivelCAD.BuscarTodos(0, -1); nivelEN = niveles [juegoEN.NivelActual - 1]; IList <ItemEN> itemsen = Itemcad.BuscarItemsPorNivel(nivelEN.Id); if (itemsen [juegoEN.ItemActual].Material.Contenedor == p_tipocontenedor) { //Acierto juegoEN.Aciertos++; //Decimal penalizacion = 1 / juegoEN.IntentosItemActual; Decimal penalizacion = Decimal.Divide(1, juegoEN.IntentosItemActual); juegoEN.Puntuacion += Decimal.ToDouble(Decimal.Multiply(Convert.ToDecimal(nivelEN.Puntuacion), penalizacion)); juegoEN.IntentosItemActual = 1; if (juegoEN.ItemActual + 1 < itemsen.Count) { juegoEN.ItemActual++; } else { juegoEN.ItemActual = 0; niveles = nivelCAD.BuscarTodos(0, -1); if (juegoEN.NivelActual < niveles.Count) { juegoEN.NivelActual++; } else { juegoEN.Finalizado = true; } } } else { //Fallo juegoEN.Fallos++; juegoEN.IntentosItemActual++; } juegoCAD.Modificar(juegoEN); SessionCommit(); } catch (Exception ex) { SessionRollBack(); throw ex; } finally { SessionClose(); } return(juegoEN); /*PROTECTED REGION END*/ }
public void SiguienteItem(int p_oid, ReciclaUAGenNHibernate.Enumerated.ReciclaUA.TipoContenedorEnum p_tipocontenedor) { /*PROTECTED REGION ID(ReciclaUAGenNHibernate.CEN.ReciclaUA_Juego_siguienteItem) ENABLED START*/ JuegoCAD Juegocad = new JuegoCAD(); JuegoEN juegoen = Juegocad.BuscarPorId(p_oid); ItemCAD Itemcad = new ItemCAD(); IList <ItemEN> itemsen = Itemcad.BuscarItemsPorNivel(juegoen.NivelActual.Id); if (itemsen [juegoen.ItemActual].Material.Contenedor == p_tipocontenedor) { //Acierto juegoen.Aciertos++; double penalizacion = 1 / juegoen.IntentosItemActual; /* * if (juegoen.IntentosItemActual == 1) { * penalizacion = 1; * } * else if (juegoen.IntentosItemActual == 2) { * penalizacion = 0.75; * } * else if (juegoen.IntentosItemActual == 3) { * penalizacion = 0.5; * } * else{ * penalizacion = 0.25; * } */ juegoen.Puntuacion += Convert.ToInt32(juegoen.NivelActual.Puntuacion * penalizacion); juegoen.IntentosItemActual = 1; if (juegoen.ItemActual < itemsen.Count) { juegoen.ItemActual++; } else { juegoen.ItemActual = 0; } //Obtener siguente nivel //juegoen.NivelActual++; //Si No existe siguiente nivel //juegoen.Finalizado = true; } else { //Fallo juegoen.Fallos++; juegoen.IntentosItemActual++; } Juegocad.Modificar(juegoen); /*PROTECTED REGION END*/ }