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"
+                    )
                 )
             )
         ),