diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef36cd2de3a14ddddf25aa9f5d4e95731e18..2159e853647dc794a0b2787150f89d2bdea8f8d1 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -2,7 +2,7 @@
 <project version="4">
   <component name="deploymentTargetSelector">
     <selectionStates>
-      <SelectionState runConfigName="app">
+      <SelectionState runConfigName="MainActivity">
         <option name="selectionMode" value="DROPDOWN" />
       </SelectionState>
     </selectionStates>
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt
index d9e365369cf31d68c616e9011fff40c08548cd40..06a8b37a8b082a5b50b850808a442004ad73b2af 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt
@@ -13,6 +13,7 @@ import androidx.activity.result.ActivityResultLauncher
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.appcompat.app.AppCompatActivity
 import com.example.ellegadodepintia.R
+import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
 import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
 
 import com.example.ellegadodepintia.exploradoresDePintia.model.GeneradorDeEventos
@@ -29,12 +30,13 @@ class ExploradoresDePintia : AppCompatActivity() {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_exploradores_de_pintia)
 
-        startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
-            if (result.resultCode == Activity.RESULT_OK) {
-                val mensajeResultado = result.data?.getStringExtra("resultado")
-                println("Volvemos del mini-juego: $mensajeResultado")
+        startForResult =
+            registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+                if (result.resultCode == Activity.RESULT_OK) {
+                    val mensajeResultado = result.data?.getStringExtra("resultado")
+                    println("Volvemos del mini-juego: $mensajeResultado")
+                }
             }
-        }
 
         GameState.fragmentManager = supportFragmentManager
 
@@ -77,8 +79,21 @@ class ExploradoresDePintia : AppCompatActivity() {
         if (requestCode == 100 && resultCode == RESULT_OK) {
             val resultado = data?.getStringExtra("resultado")
             Toast.makeText(this, resultado, Toast.LENGTH_SHORT).show()
-            // Aquí puedes realizar acciones según el resultado
+
+        } else if (requestCode == 102 && resultCode == RESULT_OK) {
+            val puntuacion = data?.getStringExtra("PUNTUACION")!!.toInt()
+            GameState.jugador.actualizarAtributo(Atributo.Energia, puntuacion/3)
+            GameState.jugador.actualizarAtributo(Atributo.Vida, puntuacion/3)
+
+        } else if (requestCode == 103 && resultCode == RESULT_OK) {
+            val tiempo = data?.getStringExtra("TIEMPO")!!.toInt()
+            if (tiempo >= 1000){
+                GameState.jugador.actualizarMonedas(GameState.jugador.monedas.plus(tiempo/1000))
+            }else{
+                GameState.jugador.actualizarAtributo(Atributo.Energia, -GameState.jugador.atributos[Atributo.Energia]!!/2)
+            }
         }
+
     }
 
 
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt
index eff38d902fd9b6f53c88cd3962bf21213bd642d2..1c02b59aaa031a1921e3a1fca3f59db89384d848 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt
@@ -11,7 +11,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.Eve
 
 
 object GeneradorDeEventos {
-    private const val CANTIDAD = 6 // Numero de eventos generados
+    private const val CANTIDAD = 7 // Numero de eventos generados
     private var eventos = ArrayList<Evento>()
 
     private fun crearEvento(): Evento {
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt
index 861ae25d2d00f12f18c912956bcc3d4167fbb8ac..73b554ef2458a53274d89ddfe61c06498609e26a 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt
@@ -102,6 +102,12 @@ class Jugador {
 
     fun actualizarAtributo(atributo: Atributo, valor: Int) {
         atributos[atributo] = atributos[atributo]!!.plus(valor)
+        if (atributo == Atributo.Vida && atributos[atributo]!! >= vidaMax){
+            atributos[atributo] = vidaMax
+        }
+        if (atributo == Atributo.Energia && atributos[atributo]!! >= energiaMax){
+            atributos[atributo] = energiaMax
+        }
         notifyObservers()
         if (atributo == Atributo.Vida && atributos[atributo]!! <= 0) {
             "¡Has sido derrotado!".also {
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/TipoEvento.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/TipoEvento.kt
index 41b62f9b94168f9144e5914b7ac1e470b5a983e3..26c05d22aeeeb2011724a30f27923d894a8347b3 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/TipoEvento.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/TipoEvento.kt
@@ -6,6 +6,8 @@ enum class TipoEvento {
     Tienda,
     Trampa,
     Riesgo,
+    Descanso,
+    Ladron,
     /*Trampa,
     Aliado,
     Misterio,
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoLadron.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoLadron.kt
new file mode 100644
index 0000000000000000000000000000000000000000..61cf2705db9981242b249ec318decd0519db75b6
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoLadron.kt
@@ -0,0 +1,18 @@
+package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
+
+import android.content.Intent
+import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
+import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context
+import com.example.ellegadodepintia.minijuego3.Minijuego3
+
+class EfectoLadron() : Efecto(100) {
+    override fun ejecutar(): String {
+
+        val intent = Intent(context, Minijuego3::class.java)
+        context!!.startActivityForResult(intent, 103)
+
+        GameState.eventoActual.actualizarFinalizado(true)
+        return "Si has logrado completar el minijuego, habrás obtenido monedas. En otro caso, tu energía se ha reducido a la mitad"
+
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoNubeVaccea.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoNubeVaccea.kt
new file mode 100644
index 0000000000000000000000000000000000000000..7c077fbc1de8a7da65e5c782658a52f26498b66b
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoNubeVaccea.kt
@@ -0,0 +1,24 @@
+package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
+
+import android.content.Intent
+import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
+import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
+import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context
+import com.example.ellegadodepintia.minijuego2.Minijuego2
+
+
+class EfectoNubeVaccea() : Efecto(100) {
+    override fun ejecutar(): String {
+        if (GameState.jugador.atributos[Atributo.Energia] == GameState.jugador.energiaMax &&
+            GameState.jugador.atributos[Atributo.Vida] == GameState.jugador.vidaMax){
+            return "Tienes la vida y la energía al máximo. ¡No necesitas descansar!"
+        }
+
+        val intent = Intent(context, Minijuego2::class.java)
+        context!!.startActivityForResult(intent, 102)
+
+        GameState.eventoActual.actualizarFinalizado(true)
+        return "Has descansado"
+
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt
new file mode 100644
index 0000000000000000000000000000000000000000..20f6e438be2a7feaa632d5f94736289f3e302e54
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt
@@ -0,0 +1,51 @@
+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.EfectoIgnorar
+import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoNubeVaccea
+
+class DescansoFactory : EventoFactory {
+    private val descansosMap = mapOf(
+        "Llegaste a un campamento vacceo, con un gran fuego en el centro y chozas hechas de madera y barro. Aquí puedes descansar, recuperar energía y estar listo para nuevas aventuras." to Pair(
+            R.drawable.asi_exploradores_campamento, listOf(
+                Opcion(
+                    descripcion = "Descansar",
+                    atributoRequerida = Atributo.Energia,
+                    EfectoNubeVaccea()
+
+                ), Opcion(
+                    descripcion = "Continuar",
+                    atributoRequerida = Atributo.Nula,
+                    EfectoIgnorar(100)
+                )
+            )
+        )
+    )
+
+    override fun generarDescripcion(): String {
+        return descansosMap.keys.random()
+    }
+
+    override fun generarOpciones(descripcion: String): MutableList<Opcion> {
+        return descansosMap[descripcion]?.second?.toMutableList()
+            ?: mutableListOf()
+    }
+
+    override fun generarImagen(descripcion: String): Int {
+        return descansosMap[descripcion]?.first!!
+    }
+
+    override fun generarEvento(): EventoDescanso {
+        val descripcion = generarDescripcion()
+        return EventoDescanso(
+            descripcion = descripcion,
+            dificultad = 0,
+            opciones = generarOpciones(descripcion),
+            imagen = generarImagen(descripcion),
+            resistenciaMax = (2..8).random(),
+            finalizado = false
+        )
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt
new file mode 100644
index 0000000000000000000000000000000000000000..d30a839cc13c4ebba9023266ef6ccd4bbd4b473c
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt
@@ -0,0 +1,11 @@
+package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
+
+import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
+
+class EventoDescanso(
+    override val descripcion: String,
+    override val dificultad: Int,
+    override val opciones: MutableList<Opcion>,
+    override val imagen: Int, resistenciaMax: Int,
+    override var finalizado: Boolean,
+) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt
index e9a3c8c2c06985cd07dfaaf65f2f62a293ecc982..706bc854eb935e0ca7364b31d88f2d20d5835fd0 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt
@@ -13,16 +13,20 @@ object EventoFactorySelector {
             TipoEvento.Tienda -> TiendaFactory()
             TipoEvento.Trampa -> TrampaFactory()
             TipoEvento.Riesgo -> RiesgoFactory()
+            TipoEvento.Descanso -> DescansoFactory()
+            TipoEvento.Ladron -> LadronFactory()
         }
     }
 
     private fun seleccionarTipoEventoConProbabilidades(): TipoEvento {
         val probabilidades = mapOf(
-            TipoEvento.Reliquia to 0.3,
+            TipoEvento.Reliquia to 0.2,
             TipoEvento.Tienda to 0.1,
+            TipoEvento.Riesgo to 0.2,
             TipoEvento.Trampa to 0.1,
             TipoEvento.Combate to 0.2,
-            TipoEvento.Riesgo to 0.3,
+            TipoEvento.Descanso to 0.1,
+            TipoEvento.Ladron to 0.1
         )
 
         val acumulado = probabilidades.entries.fold(mutableListOf<Pair<Double, TipoEvento>>()) { acc, entry ->
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoLadron.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoLadron.kt
new file mode 100644
index 0000000000000000000000000000000000000000..369fb039c0eb982644bc36f46f3a1c98d58fddd6
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoLadron.kt
@@ -0,0 +1,11 @@
+package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
+
+import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
+
+class EventoLadron(
+    override val descripcion: String,
+    override val dificultad: Int,
+    override val opciones: MutableList<Opcion>,
+    override val imagen: Int, resistenciaMax: Int,
+    override var finalizado: Boolean,
+) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/LadronFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/LadronFactory.kt
new file mode 100644
index 0000000000000000000000000000000000000000..c7e2b62ca52289a6a74d51b12b52367e106494ae
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/LadronFactory.kt
@@ -0,0 +1,46 @@
+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.EfectoLadron
+
+class LadronFactory : EventoFactory {
+    private val ladronesMap = mapOf(
+        "Un ladrón de vasijas aparece y te desafía a un juego: ¡vence en el reto de cartas o se llevará tu tesoro!" to Pair(
+            R.drawable.asi_exploradores_ladron, listOf(
+                Opcion(
+                    descripcion = "Jugar",
+                    atributoRequerida = Atributo.Nula,
+                    EfectoLadron()
+                )
+            )
+        )
+    )
+
+    override fun generarDescripcion(): String {
+        return ladronesMap.keys.random()
+    }
+
+    override fun generarOpciones(descripcion: String): MutableList<Opcion> {
+        return ladronesMap[descripcion]?.second?.toMutableList()
+            ?: mutableListOf()
+    }
+
+    override fun generarImagen(descripcion: String): Int {
+        return ladronesMap[descripcion]?.first!!
+    }
+
+    override fun generarEvento(): EventoLadron {
+        val descripcion = generarDescripcion()
+        return EventoLadron(
+            descripcion = descripcion,
+            dificultad = 0,
+            opciones = generarOpciones(descripcion),
+            imagen = generarImagen(descripcion),
+            resistenciaMax = (2..8).random(),
+            finalizado = false
+        )
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
index c554c42ab43e8e18dd0a26cb55144ae8dfc6cc0b..d2ed23e353a2beb7e8549b890a04beb711709c17 100644
--- a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt
@@ -1,5 +1,6 @@
 package com.example.ellegadodepintia.minijuego2
 
+import android.content.Intent
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
@@ -248,21 +249,29 @@ class Minijuego2 : AppCompatActivity() {
     private fun detenerJuego() {
         jugando = false
         soundManager.stopSound()
-        soundManager.playSound(R.raw.sound_over,100)
+        soundManager.playSound(R.raw.sound_over, 100)
+
         protagonista.clearAnimation()
         val animacionMuerte = AnimationUtils.loadAnimation(this, R.anim.caida)
-        obstacleTimer?.let { handler.removeCallbacks(it) } // Detener el temporizador de obstáculos
         protagonista.startAnimation(animacionMuerte)
-        protagonista.visibility = View.GONE
-        botonReinicio.visibility = View.VISIBLE // Mostrar botón de reinicio
+
+        // Mostrar botón de reinicio
+        botonReinicio.visibility = View.VISIBLE
         val animacion = AnimationUtils.loadAnimation(this, R.anim.animatitu)
         botonReinicio.startAnimation(animacion)
+
+        // Configurar el comportamiento del botón de reinicio
         botonReinicio.setOnClickListener {
-            botonReinicio.clearAnimation()
-            reiniciarJuego()
+            // Devuelve la puntuación actual y finaliza la actividad
+            val resultadoIntent = Intent()
+            resultadoIntent.putExtra("PUNTUACION", puntuacion.toString())
+            setResult(RESULT_OK, resultadoIntent)
+            finish()
         }
     }
 
+
+    /*
     private fun reiniciarJuego() {
         // Reiniciar variables del juego
         puntuacion = 0
@@ -275,7 +284,7 @@ class Minijuego2 : AppCompatActivity() {
         }
         botonReinicio.visibility = View.GONE // Ocultar botón de reinicio
         iniciarJuego() // Reiniciar el juego
-    }
+    }*/
 
     private fun moverFondo() {
         // Mueve ambos fondos hacia la izquierda
diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt
index e5f78cc9118ca0613eca5445def586788fff1e2b..fdc839e12f7f580d5b53e9cdea6aa94ddc3eefd4 100644
--- a/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt
@@ -18,7 +18,6 @@ import android.animation.AnimatorListenerAdapter
 import android.animation.ValueAnimator
 import android.graphics.ColorMatrix
 import android.graphics.ColorMatrixColorFilter
-import com.example.ellegadodepintia.MapActivity
 import com.example.ellegadodepintia.R
 import com.example.ellegadodepintia.soundManager.SoundManager
 
@@ -35,7 +34,7 @@ class Minijuego3 : AppCompatActivity() {
     private var segundaCarta: Carta? = null
     private var procesandose = false
     private var cuentraAtras: CountDownTimer? = null
-    private var tiempoRestante: Long = 45000 // 1 minuto en milisegundos
+    private var tiempoRestante: Long = 25000 // 1 minuto en milisegundos
     private var tiempoCorriendo = false
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -190,7 +189,7 @@ class Minijuego3 : AppCompatActivity() {
     }
 
     private fun sumarTiempo() {
-        tiempoRestante += 5000
+        tiempoRestante += 2000
         actualizarContador()
         iniciarCronometro()
     }
@@ -199,8 +198,10 @@ class Minijuego3 : AppCompatActivity() {
         Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show()
         botonVolver.visibility = ImageView.VISIBLE
         botonVolver.setOnClickListener{
-            val intent = Intent(this@Minijuego3, MapActivity::class.java)
-            startActivity(intent)
+            val resultadoIntent = Intent()
+            resultadoIntent.putExtra("TIEMPO", tiempoRestante.toString())
+            println(tiempoRestante)
+            setResult(RESULT_OK, resultadoIntent)
             finish()
         }
         gridLayout.removeAllViews()
diff --git a/app/src/main/res/drawable/asi_exploradores_campamento.png b/app/src/main/res/drawable/asi_exploradores_campamento.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcfdf8fab44ae57cb82d102faaf535be81fd9635
Binary files /dev/null and b/app/src/main/res/drawable/asi_exploradores_campamento.png differ
diff --git a/app/src/main/res/drawable/asi_exploradores_ladron.png b/app/src/main/res/drawable/asi_exploradores_ladron.png
new file mode 100644
index 0000000000000000000000000000000000000000..8065f5945c3eb702de134d3667fe6c308b122e5e
Binary files /dev/null and b/app/src/main/res/drawable/asi_exploradores_ladron.png differ