diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoEscalar.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoEscalar.kt deleted file mode 100644 index 74c9051fc9cd120793d27c4fab8c02bc58415551..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoEscalar.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.ellegadodepintia.exploradoresDePintia.model.efecto - -import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo -import com.example.ellegadodepintia.exploradoresDePintia.model.GameState - - -class EfectoEscalar() : Efecto(100) { - override fun ejecutar(): String { - if (GameState.jugador.atributos[Atributo.Energia]!!<2){ - return "No tienes energÃa suficiente para intentar escapar escalando. Necesitas al menos 2 puntos" - }else{ - GameState.jugador.actualizarAtributo(Atributo.Energia, -2) - if ((1..100).random() <= 40){ - GameState.eventoActual.actualizarFinalizado(true) - return "Logras escalar la montaña de piedras y escapar. El esfuerzo no ha sido en vano" - }else{ - return "Al escalar la montaña de piedras, sufres un resbalo y vuelves a caer, gastando inútilmente energÃa" - } - } - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoExplorar.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoExplorar.kt deleted file mode 100644 index 202bfdae126f4289103656b5af3ee2fc62f1961c..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoExplorar.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.example.ellegadodepintia.exploradoresDePintia.model.efecto - -import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo -import com.example.ellegadodepintia.exploradoresDePintia.model.GameState - -class EfectoExplorar() : Efecto(100) { - override fun ejecutar(): String { - if(GameState.jugador.atributos[Atributo.Investigacion]!!<1){ - return "No tienes suficientes puntos de investigación para explorar" - }else{ - GameState.jugador.actualizarAtributo(Atributo.Investigacion, -1) - if ((1..100).random() <= 50){ - GameState.eventoActual.actualizarFinalizado(true) - return "Has encontrado un viejo mapa que muestra un camino para rodearlo. Has logrado escapar" - }else{ - return "Has explorado cuidadosamente, pero por ahora no has encontrado nada útil para sortear el derrumbe." - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoFuerzaBruta.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoFuerzaBruta.kt deleted file mode 100644 index 118fd34315ac4d8fb3762a1d5e704f4734fc7bb6..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoFuerzaBruta.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.ellegadodepintia.exploradoresDePintia.model.efecto - -import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo -import com.example.ellegadodepintia.exploradoresDePintia.model.GameState - -class EfectoFuerzaBruta() : Efecto(100) { - override fun ejecutar(): String { - GameState.jugador.actualizarAtributo(Atributo.Vida, -1) - if ((1..100).random() <= 25){ - GameState.eventoActual.actualizarFinalizado(true) - return "Con un esfuerzo descomunal, logras mover las piedras con tus manos y escapar, haciendote daño en el acto" - }else{ - return "A pesar de tu esfuerzo, no logras escapar y sigues atrapado. Has sufrido daño" - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoPico.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoPico.kt deleted file mode 100644 index fce4167be5dac4befe26629e908736a0459dd558..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoPico.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.ellegadodepintia.exploradoresDePintia.model.efecto - -import com.example.ellegadodepintia.exploradoresDePintia.model.GameState - - -class EfectoPico() : Efecto(100) { - override fun ejecutar(): String { - val tienePico = GameState.jugador.inventario.removeIf { it.nombre == "Pico Vacceo" } - if (tienePico){ - GameState.eventoActual.actualizarFinalizado(true) - return "Has usado el pico de tu inventario. Has logrado escapar" - }else{ - return "No tienes el pico en tu inventario" - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt new file mode 100644 index 0000000000000000000000000000000000000000..b812abc1d013abfece3a743fe7587d92ef5390f1 --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt @@ -0,0 +1,29 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.efecto + +import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState + + +class EfectoResolverTrampaConAtributo( + probabilidadExito: Int, + private val atributo: Atributo, + private val coste: Int, + private val stringLogrado: String, + private val stringFallo: String) : Efecto(probabilidadExito) { + override fun ejecutar(): String { + if (atributo == Atributo.Energia && GameState.jugador.atributos[Atributo.Energia]!!<coste){ + return "No tienes energÃa suficiente para intentar escapar escalando. Necesitas al menos $coste puntos" + }else if(atributo == Atributo.Investigacion && GameState.jugador.atributos[Atributo.Investigacion]!!<coste) { + return "No tienes suficientes puntos de investigación para explorar" + }else{ + GameState.jugador.actualizarAtributo(atributo, -coste) + return if ((1..100).random() <= probabilidadExito){ + GameState.eventoActual.actualizarFinalizado(true) + stringLogrado + }else{ + stringFallo + } + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoUtilizarObjetoUtil.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoUtilizarObjetoUtil.kt new file mode 100644 index 0000000000000000000000000000000000000000..3e84468cc9f31353c2729209a5fe284773f1b1c3 --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoUtilizarObjetoUtil.kt @@ -0,0 +1,16 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.efecto + +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState + + +class EfectoUtilizarObjetoUtil(private val nombreObjeto: String) : Efecto(100) { + override fun ejecutar(): String { + val tieneObjeto = GameState.jugador.inventario.removeIf { it.nombre == nombreObjeto } + if (tieneObjeto){ + GameState.eventoActual.actualizarFinalizado(true) + return "Has usado el objeto $nombreObjeto de tu inventario. Has logrado escapar" + }else{ + return "No tienes el $nombreObjeto en tu inventario" + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TrampaFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TrampaFactory.kt index 45d6bc7cc3cea724048f83641d3a6a7177c50f83..fd7d74a8173a330032d4305d862eb3a665944b06 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TrampaFactory.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TrampaFactory.kt @@ -3,31 +3,49 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion -import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoEscalar -import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoExplorar -import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoFuerzaBruta -import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoPico +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoResolverTrampaConAtributo +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoUtilizarObjetoUtil class TrampaFactory : EventoFactory { private val trampasMap = mapOf( "Un estruendoso derrumbe de piedras bloquea el camino, dejando un montón de rocas caÃdas que impiden tu avance." to Pair( R.drawable.asi_exploradores_trampa_piedras, listOf( Opcion( - descripcion = "Fuerza Bruta", + descripcion = "Mover", atributoRequerida = Atributo.Vida, - EfectoFuerzaBruta() + EfectoResolverTrampaConAtributo( + 25, + Atributo.Vida, + 1, + "Con un esfuerzo descomunal, logras mover las piedras con tus manos y escapar, haciendote daño en el acto", + "A pesar de tu esfuerzo, no logras escapar y sigues atrapado. Has sufrido daño" + ) ), Opcion( descripcion = "Picar", atributoRequerida = Atributo.Nula, - EfectoPico() + EfectoUtilizarObjetoUtil( + nombreObjeto = "Pico Vacceo" + ) ), Opcion( descripcion = "Explorar", atributoRequerida = Atributo.Investigacion, - EfectoExplorar() + EfectoResolverTrampaConAtributo( + 50, + Atributo.Investigacion, + 1, + "Has encontrado un viejo mapa que muestra un camino para rodearlo. Has logrado escapar.", + "Has explorado cuidadosamente, pero por ahora no has encontrado nada útil para sortear el derrumbe." + ) ), Opcion( descripcion = "Escalar", atributoRequerida = Atributo.Energia, - EfectoEscalar() + EfectoResolverTrampaConAtributo( + 40, + Atributo.Energia, + 2, + "Logras escalar la montaña de piedras y escapar. El esfuerzo no ha sido en vano", + "Al escalar la montaña de piedras, sufres un resbalo y vuelves a caer, gastando inútilmente energÃa" + ) ) ) ),