diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 92ef36bae55d477e1868e24402b11d36fcf75f0c..a6e64bbb1bd96a794b6dc89cf937808671f286f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,7 @@
         <activity android:name=".minijuegoReparacion.MinijuegoReparacion" android:exported="true"/>
         <activity android:name=".exploradoresDePintia.Resumen" android:exported="true"/>
         <activity android:name=".TabernaActivity" android:exported="true"/>
+        <activity android:name=".TiendaActivity" android:exported="true"/>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt
index e78b901e8890527bfcf4e095ffd8c0b1ea2ef8d1..13553b83c27286554208f21d74dc692545cddaa8 100644
--- a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt
@@ -42,5 +42,11 @@ class MapActivity : AppCompatActivity() {
             val intent = Intent(this, TabernaActivity::class.java)
             startActivity(intent)
         }
+
+        val tienda = findViewById<ImageButton>(R.id.botonTienda)
+        tienda.setOnClickListener {
+            val intent = Intent(this, TiendaActivity::class.java)
+            startActivity(intent)
+        }
     }
 }
diff --git a/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..6db47be7ebcc82c8de5735fdc5dbc04d78e13b9c
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt
@@ -0,0 +1,29 @@
+package com.example.ellegadodepintia
+
+import android.os.Bundle
+import android.widget.ImageView
+import androidx.appcompat.app.AppCompatActivity
+import com.example.ellegadodepintia.repositorios.RepositorioObjetos
+
+class TiendaActivity : AppCompatActivity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_tienda)
+
+        val objetos = RepositorioObjetos.obtenerObjetosAleatoriosTienda(6)
+
+        //TODO hay que hacer que dependiendo del nivel de la ciudad haga más cosas
+        val slots = listOf(
+            findViewById<ImageView>(R.id.slot01),
+            findViewById(R.id.slot02),
+            findViewById(R.id.slot03),
+            findViewById(R.id.slot04),
+            findViewById(R.id.slot05),
+            findViewById(R.id.slot06)
+        )
+
+        slots.forEachIndexed { index, slot ->
+            slot.setImageResource(objetos[index].imagen)
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt
index fbb32fcd3dd2ed23c9247f5a75534eb476dde613..69233420502f012d1673c5044527a4f0b210a3b2 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt
@@ -2,13 +2,18 @@ package com.example.ellegadodepintia.exploradoresDePintia
 
 import android.animation.AnimatorSet
 import android.animation.ObjectAnimator
+import android.app.Activity
 import android.content.Intent
 import android.os.Bundle
+import android.view.View
+import android.view.ViewGroup
 import android.view.animation.AccelerateDecelerateInterpolator
 import android.widget.Button
 import android.widget.ImageView
 import android.widget.ProgressBar
 import android.widget.TextView
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts
 import androidx.appcompat.app.AppCompatActivity
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -17,20 +22,42 @@ 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.objeto.ObjetoDeValor
+import com.example.ellegadodepintia.repositorios.RepositorioJugador
+import com.example.ellegadodepintia.ruleta.Ruleta
 
 class Resumen : AppCompatActivity() {
+    private lateinit var startForResult: ActivityResultLauncher<Intent>
+    private var gananciaTotal = 0
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_resumen_partida)
-        if(GameState.jugador.atributos[Atributo.Vida]!! <= 0){
+
+        startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+            if (result.resultCode == Activity.RESULT_OK) {
+                val mensajeResultado = result.data?.getStringExtra("resultado")!!.toInt()
+                println(mensajeResultado)
+                val textoResumen = findViewById<TextView>(R.id.textoResumen)
+                "Ha susado el ticker para generar aun más monedas. Enhorabuena, has conseguido $mensajeResultado monedas.".also {
+                    textoResumen.text = it
+                }
+                GameState.jugador.monedas+=mensajeResultado-gananciaTotal
+                GameState.jugador.monedas.toString()
+                    .also { findViewById<TextView>(R.id.moneyText).text = it }
+                RepositorioJugador.setMonedas(GameState.jugador.monedas)
+                findViewById<Button>(R.id.botonRuleta).visibility = View.GONE
+
+            }
+        }
+
+
+        if (GameState.jugador.atributos[Atributo.Vida]!! <= 0) {
             mostrarDerrota()
         } else {
             calcularGanancias()
         }
         GameState.jugador.monedas.toString()
             .also { findViewById<TextView>(R.id.moneyText).text = it }
-
         val continuarButton = findViewById<Button>(R.id.botonContinuar)
         continuarButton.setOnClickListener {
             val intent = Intent(this, MapActivity::class.java)
@@ -43,11 +70,13 @@ class Resumen : AppCompatActivity() {
         barraVida.progress = GameState.jugador.atributos[Atributo.Vida]!!
     }
 
-    private fun mostrarDerrota(){
+    private fun mostrarDerrota() {
         val textoResumen = findViewById<TextView>(R.id.textoResumen)
         val imagenProtagonista = findViewById<ImageView>(R.id.imagenProtagonista)
 
-        "El investigador ha sido derrotado, ha perdido todos sus objetos del inventario".also { textoResumen?.text = it }
+        "El investigador ha sido derrotado, ha perdido todos sus objetos del inventario".also {
+            textoResumen?.text = it
+        }
         imagenProtagonista?.setImageResource(R.drawable.protagonista_die_06)
 
     }
@@ -60,7 +89,8 @@ class Resumen : AppCompatActivity() {
         var nObjetosValor = 0
         textoResumen?.text = ""
 
-        val movimientoLateral = ObjectAnimator.ofFloat(imagenProtagonista, "translationX", -100f, 100f)
+        val movimientoLateral =
+            ObjectAnimator.ofFloat(imagenProtagonista, "translationX", -100f, 100f)
         movimientoLateral.duration = 1500
         movimientoLateral.repeatCount = ObjectAnimator.INFINITE
         movimientoLateral.repeatMode = ObjectAnimator.REVERSE
@@ -79,6 +109,7 @@ class Resumen : AppCompatActivity() {
         for (objeto in GameState.jugador.inventario) {
             if (objeto is ObjetoDeValor) {
                 nObjetosValor++
+                gananciaTotal += objeto.coste
                 objetosDeValor.add(objeto)
                 objeto.usar()
             }
@@ -88,12 +119,26 @@ class Resumen : AppCompatActivity() {
 
 
         if (nObjetosValor == 0) {
-            "El investigador no ha conseguido ningún objeto de valor".also { textoResumen?.text = it }
+            "El investigador no ha conseguido ningún objeto de valor".also {
+                textoResumen?.text = it
+            }
         } else {
-            "${textoResumen.text} Enhorabuena, has conseguido ${nObjetosValor*20} monedas.".also {
+            "${textoResumen.text} Enhorabuena, has conseguido $gananciaTotal monedas.".also {
                 textoResumen.text = it
             }
-
+            val botonRuleta = findViewById<Button>(R.id.botonRuleta)
+            val tieneTicket = GameState.jugador.inventario.any { it.nombre == "Ticket" }
+            println(tieneTicket)
+            if (!tieneTicket) {
+                (botonRuleta.parent as? ViewGroup)?.removeView(botonRuleta)
+            } else {
+                botonRuleta.visibility = View.VISIBLE
+                botonRuleta.setOnClickListener {
+                    val intent = Intent(this, Ruleta::class.java)
+                    intent.putExtra("PUNTUACION_ACTUAL", gananciaTotal)
+                    startForResult.launch(intent)
+                }
+            }
         }
     }
 }
\ No newline at end of file
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 2b016ae3c781f30e0a5ee18bd9b07233b046fd56..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
@@ -34,6 +34,14 @@ class Jugador {
         atributos[Atributo.Investigacion] = 1
         atributos[Atributo.Energia] = 10
 
+        inventario.add(
+            ObjetoUtilidad(
+                nombre = "Ticket",
+                descripcion = "Representa una invitación a un evento relacionado con la cultura vaccea, como una feria arqueológica o un festival cultural",
+                imagen = R.drawable.asi_objeto_ticket
+            )
+        )
+
         inventario.add(
             ObjetoEquipable(
                 nombre = "Espada de Hierro",
@@ -101,8 +109,10 @@ class Jugador {
             atributos[atributo] = energiaMax
         }
         notifyObservers()
-        if (atributo == Atributo.Vida && atributos[atributo]!! <= 0){
-            "¡Has sido derrotado!".also { context!!.findViewById<TextView>(R.id.textoResultado).text = it }
+        if (atributo == Atributo.Vida && atributos[atributo]!! <= 0) {
+            "¡Has sido derrotado!".also {
+                context!!.findViewById<TextView>(R.id.textoResultado).text = it
+            }
             cargarAnimacionesMuerteProtagonista()
             Handler(Looper.getMainLooper()).postDelayed({
                 val intent = Intent(context, Resumen::class.java)
@@ -160,7 +170,7 @@ class Jugador {
         notifyObservers()
     }
 
-    fun actualizarMonedas(valor: Int){
+    fun actualizarMonedas(valor: Int) {
         monedas = valor
         notifyObservers()
     }
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt
index 0f002c1bff85210537dd7077ea5109de246d6281..d87dc1537bf73276c0e07047049aa03e1db69e37 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt
@@ -8,7 +8,9 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
 import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto
 import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context
 
-class EfectoRiesgo(private val objetoRecompensa : Objeto, private val dmgRiesgo: Int, private val mensajeRecomensa : String, private val mensajeRiesgo : String) : Efecto(100) {
+class EfectoRiesgo(private val objetoRecompensa : Objeto, private val dmgRiesgo: Int, private val mensajeRecomensa : String, private val mensajeRiesgo : String,
+                   probabilidadExito: Int
+) : Efecto(probabilidadExito) {
 
     override fun ejecutar(): String {
         val resultado = (1..100).random()
@@ -33,7 +35,7 @@ class EfectoRiesgo(private val objetoRecompensa : Objeto, private val dmgRiesgo:
             }
         }, animationDuration.toLong() - 150)
 
-        if (resultado <= 50) {
+        if (resultado <= probabilidadExito) {
             GameState.jugador.conseguirObjeto(objetoRecompensa)
             GameState.eventoActual.actualizarFinalizado(true)
             return mensajeRecomensa
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoRiesgo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoRiesgo.kt
index 60890734e5adbe5247618a1679a533302df2da7c..3f2401b2fea839e91591b050996cacca03be3ef8 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoRiesgo.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoRiesgo.kt
@@ -3,9 +3,23 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
 import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
 
 class EventoRiesgo(
+    val id : Int,
     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
+) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado){
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (other == null || javaClass != other.javaClass) return false
+        other as EventoRiesgo
+
+        return id == other.id
+    }
+
+    override fun hashCode(): Int {
+        return 31 * id.hashCode()
+    }
+}
+
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/ReliquiaFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/ReliquiaFactory.kt
index 93f0c1e3fa45e88d175dd919d5e88afd6a5c1ade..f8ff455ff017a6231533c4d5d5421cfeaafb1001 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/ReliquiaFactory.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/ReliquiaFactory.kt
@@ -7,7 +7,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRepa
 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.objeto.ObjetoDeValor
+import com.example.ellegadodepintia.repositorios.RepositorioObjetos
 
 class ReliquiaFactory : EventoFactory {
     private val reliquiasMap = mapOf(
@@ -29,13 +29,7 @@ class ReliquiaFactory : EventoFactory {
                         "Tras aplicar con cuidado una mezcla de resina especial, consigues unir las piezas del vasito, restaurando su forma original. Has preservado una pieza valiosa de la historia vaccea.",
                         "Al intentar reparar el vasito, accidentalmente lo rompes aún más. Ahora, no solo está dañado, sino que se ha perdido una pieza esencial que no puede ser reconstruida.",
                         1,
-                        ObjetoDeValor(
-                            nombre = "Vasito de barro cocido",
-                            descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
-                            coste = 20,
-                            imagen = R.drawable.asi_exploradores_vasito
-                        )
-
+                        RepositorioObjetos.obtenerObjetoPorNombre("Vasito de barro cocido")!!
                     )
                 ), Opcion(
                     descripcion = "Destruir",
@@ -69,12 +63,7 @@ class ReliquiaFactory : EventoFactory {
                         "Con un toque experto, las partes rotas encajan perfectamente. Has dado nueva vida a una jabonera vaccea, permitiéndote estudiar sus detalles con mayor precisión.",
                         "El intento de reparación es un desastre: la jabonera se rompe aún más, y el símbolo se desintegra. Ahora, solo quedan fragmentos de lo que antes fue una obra de arte.",
                         1,
-                        ObjetoDeValor(
-                            nombre = "Jabonera de cerámica",
-                            descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
-                            coste = 20,
-                            imagen = R.drawable.asi_exploradores_jabonera
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Jabonera de cerámica")!!
                     )
 
                 ), Opcion(
@@ -107,12 +96,7 @@ class ReliquiaFactory : EventoFactory {
                         "Reparas la copa con éxito y descubres un patrón o símbolo oculto bajo las grietas, aportando nueva información sobre su origen o uso.",
                         "El trabajo improvisado falla, y la copa queda aún más dañada o inutilizable, reduciendo su valor cultural o práctico.",
                         1,
-                        ObjetoDeValor(
-                            nombre = "Copa negra con inscripciones",
-                            descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
-                            coste = 20,
-                            imagen = R.drawable.asi_minijuego_3_copa_negra_brunida
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Copa negra con inscripciones")!!
                     )
 
                 ), Opcion(
@@ -145,12 +129,7 @@ class ReliquiaFactory : EventoFactory {
                         "Logras repararla cuidadosamente, las marcas en la cerámica se conecten con un ritual funerario o de veneración, lo que incrementa el valor histórico de la pieza.",
                         "Intentas repararla, pero sin las herramientas adecuadas o la técnica correcta, la tapadera queda más dañada.",
                         1,
-                        ObjetoDeValor(
-                            nombre = "Tapadera de cerámica zoomorfa",
-                            descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
-                            coste = 20,
-                            imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Tapadera de cerámica zoomorfa")!!
                     )
 
                 ), Opcion(
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt
index abdb8fb3fc9a13765cdffbfdf8752b4d14809d39..26c410bbd07a0e35a38269ac675fdb2beec73942 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt
@@ -5,59 +5,89 @@ 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.EfectoRiesgo
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoEquipable
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableAumento
-
+import com.example.ellegadodepintia.repositorios.RepositorioObjetos
 
 class RiesgoFactory : EventoFactory {
-    private val riesgoMap = mapOf(
-        "En un claro junto al río Duero, encuentras un viejo cofre de madera decorado con espigas de trigo y motivos solares. " to Pair(
-            R.drawable.cofre_open_animation, listOf(
+
+    private val descripcionComun = "En un claro junto al río Duero, encuentras un viejo cofre de madera decorado con espigas de trigo y motivos solares."
+
+    private val riesgoMap = mutableMapOf(
+        1 to EventoRiesgoData(
+            imagen = R.drawable.cofre_open_animation,
+            opciones = listOf(
                 Opcion(
                     descripcion = "Abrir el cofre",
                     atributoRequerida = Atributo.Investigacion,
                     EfectoRiesgo(
-                        ObjetoEquipable(
-                            nombre = "Espada de Hierro",
-                            descripcion = "Una espada de hierro sencilla y confiable perfecta para un aventurero novato. Otorga 1 de daño extra",
-                            efecto = EfectoEquipableAumento(1, Atributo.Ataque),
-                            imagen = R.drawable.asi_objeto_espadadefault
-                        ),
+                        RepositorioObjetos.obtenerObjetoPorNombre("Espada de Hierro")!!,
                         dmgRiesgo = 2,
                         mensajeRecomensa = "Dentro del cofre encuentras una espada de hierro vaccea. Está en buen estado y tiene un brillo sobrenatural",
                         mensajeRiesgo = "Una nube de polvo tóxico se libera, causandote 2 de daño",
+                        50
                     )
-                ), Opcion(
+                ),
+                Opcion(
                     descripcion = "Ignorar",
                     atributoRequerida = Atributo.Nula,
                     EfectoIgnorar(100)
                 )
             )
         ),
+        2 to EventoRiesgoData(
+                        imagen = R.drawable.cofre_open_animation,
+            opciones = listOf(
+                Opcion(
+                    descripcion = "Abrir el cofre",
+                    atributoRequerida = Atributo.Investigacion,
+                    EfectoRiesgo(
+                        RepositorioObjetos.obtenerObjetoPorNombre("Ticket")!!,
+                        dmgRiesgo = 4,
+                        mensajeRecomensa = "Dentro del cofre encuentras un ticket. No sabes para que podría servir",
+                        mensajeRiesgo = "Te encuentras una serpiente que te muerde hasta que consigues quitartela de encima, causandote 4 de daño",
+                        35
+                    )
+                ),
+                Opcion(
+                    descripcion = "Ignorar",
+                    atributoRequerida = Atributo.Nula,
+                    EfectoIgnorar(100)
+                )
+            )
+        )
     )
 
     override fun generarDescripcion(): String {
-        return riesgoMap.keys.random()
+        return descripcionComun
     }
 
     override fun generarOpciones(descripcion: String): MutableList<Opcion> {
-        return riesgoMap[descripcion]?.second?.toMutableList()
-            ?: mutableListOf()
+        val evento = riesgoMap.entries.find { it.key == descripcion.toInt() }
+        return evento?.value?.opciones?.toMutableList() ?: mutableListOf()
     }
 
     override fun generarImagen(descripcion: String): Int {
-        return riesgoMap[descripcion]?.first!!
+        val evento = riesgoMap.entries.find { it.key == descripcion.toInt() }
+        return evento!!.value.imagen
     }
 
     override fun generarEvento(): EventoRiesgo {
-        val descripcion = generarDescripcion()
-        return EventoRiesgo(
-            descripcion = descripcion,
+        val id = riesgoMap.keys.random()
+        val eventoData = riesgoMap[id]!!
+
+        val evento = EventoRiesgo(
+            id = id,
+            descripcion = descripcionComun,
             dificultad = 0,
-            opciones = generarOpciones(descripcion),
-            imagen = generarImagen(descripcion),
+            opciones = eventoData.opciones.toMutableList(),
+            imagen = eventoData.imagen,
             resistenciaMax = (2..8).random(),
-            finalizado = false
+            finalizado = false,
         )
+
+        return evento
     }
-}
\ No newline at end of file
+}
+data class EventoRiesgoData(
+    val imagen: Int,
+    val opciones: List<Opcion>
+)
diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TiendaFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TiendaFactory.kt
index 2fbac0336b3df2a20e28755e491bea54170a8651..cf3ec6a4968b2d28484e1c0ab98076f120aa0245 100644
--- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TiendaFactory.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/TiendaFactory.kt
@@ -5,11 +5,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
 import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
 import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoDetallesCompra
 import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoIgnorar
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoConsumible
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoEquipable
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableAumento
-import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoObjetoCura
-
+import com.example.ellegadodepintia.repositorios.RepositorioObjetos
 
 
 class TiendaFactory : EventoFactory {
@@ -21,11 +17,7 @@ class TiendaFactory : EventoFactory {
                     atributoRequerida = Atributo.Nula,
                     EfectoDetallesCompra(
                         5,
-                        ObjetoConsumible(nombre = "Elixir Menor de la Necrópolis",
-                        descripcion = "Un frasco pequeño con un líquido granate y brillante, que destella con un resplandor profundo, capaz de restaurar 3 puntos de vida al instante.",
-                        efecto = EfectoObjetoCura(3),
-                        imagen = R.drawable.asi_objeto_pocima_vida_5
-                    )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Elixir Menor de la Necrópolis")!!
                     )
                 ), Opcion(
                     descripcion = "Rechazar",
@@ -41,11 +33,7 @@ class TiendaFactory : EventoFactory {
                     atributoRequerida = Atributo.Nula,
                     EfectoDetallesCompra(
                         8,
-                        ObjetoConsumible(nombre = "Elixir Mediano de la Necrópolis",
-                            descripcion = "Un frasco robusto con un líquido amarillo brillante, que resplandece como el sol al mediodía, capaz de restaurar 5 puntos de vida al instante.",
-                            efecto = EfectoObjetoCura(5),
-                            imagen = R.drawable.asi_objeto_pocima_vida_10
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Elixir Mediano de la Necrópolis")!!
                     )
                 ), Opcion(
                     descripcion = "Rechazar",
@@ -61,11 +49,7 @@ class TiendaFactory : EventoFactory {
                     atributoRequerida = Atributo.Nula,
                     EfectoDetallesCompra(
                         15,
-                        ObjetoConsumible(nombre = "Elixir Supremo de la Necrópolis",
-                            descripcion = "Frasco supremo forjado con los secretos de los vacceos, restaura toda tu vitalidad al instante, ¡la poción de cura más poderosa de Pintia!",
-                            efecto = EfectoObjetoCura(999),
-                            imagen = R.drawable.asi_objeto_pocima_vida_all
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Elixir Supremo de la Necrópolis")!!
                     )
                 ), Opcion(
                     descripcion = "Rechazar",
@@ -81,11 +65,7 @@ class TiendaFactory : EventoFactory {
                     atributoRequerida = Atributo.Nula,
                     EfectoDetallesCompra(
                         50,
-                        ObjetoEquipable(nombre = "Escudo Caetrae",
-                            descripcion = "La caetrae es un escudo redondo vacceo, forjado para la defensa en combate, que aumenta tu vida máxima en 10 puntos.",
-                            efecto = EfectoEquipableAumento(10, Atributo.Vida),
-                            imagen = R.drawable.asi_objeto_escudo
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Escudo Caetrae")!!
                     )
                 ), Opcion(
                     descripcion = "Rechazar",
@@ -101,11 +81,7 @@ class TiendaFactory : EventoFactory {
                     atributoRequerida = Atributo.Nula,
                     EfectoDetallesCompra(
                         40,
-                        ObjetoEquipable(nombre = "Casco Ceremonial",
-                            descripcion = "Casco ceremonial de oro de los vacceos decorado con intrincados patrones que simboliza el estatus social. Aumenta tu vida máxima en 8 puntos ",
-                            efecto = EfectoEquipableAumento(8, Atributo.Vida),
-                            imagen = R.drawable.asi_objeto_casco
-                        )
+                        RepositorioObjetos.obtenerObjetoPorNombre("Casco Ceremonial")!!
                     )
                 ), Opcion(
                     descripcion = "Rechazar",
diff --git a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt
new file mode 100644
index 0000000000000000000000000000000000000000..492cc14dce4bc393a5925345751653747ee7fc0a
--- /dev/null
+++ b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt
@@ -0,0 +1,93 @@
+package com.example.ellegadodepintia.repositorios
+
+import com.example.ellegadodepintia.R
+import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
+import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.*
+import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableAumento
+import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoObjetoCura
+
+object RepositorioObjetos {
+    private val objetos: Map<String, Objeto> by lazy {
+        listOf(
+            ObjetoDeValor(
+                nombre = "Vasito de barro cocido",
+                descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
+                coste = 20,
+                imagen = R.drawable.asi_exploradores_vasito
+            ),
+            ObjetoDeValor(
+                nombre = "Jabonera de cerámica",
+                descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
+                coste = 20,
+                imagen = R.drawable.asi_exploradores_jabonera
+            ),
+            ObjetoDeValor(
+                nombre = "Copa negra con inscripciones",
+                descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
+                coste = 20,
+                imagen = R.drawable.asi_minijuego_3_copa_negra_brunida
+            ),
+            ObjetoDeValor(
+                nombre = "Tapadera de cerámica zoomorfa",
+                descripcion = "Objeto de gran valor. Se convierte en 20 monedas si consigues completar la partida.",
+                coste = 20,
+                imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo
+            ),
+            ObjetoEquipable(
+                nombre = "Espada de Hierro",
+                descripcion = "Una espada de hierro sencilla y confiable perfecta para un aventurero novato. Otorga 1 de daño extra",
+                efecto = EfectoEquipableAumento(1, Atributo.Ataque),
+                imagen = R.drawable.asi_objeto_espadadefault
+            ),
+            ObjetoConsumible(
+                nombre = "Elixir Menor de la Necrópolis",
+                descripcion = "Un frasco pequeño con un líquido granate y brillante, que destella con un resplandor profundo, capaz de restaurar 3 puntos de vida al instante.",
+                efecto = EfectoObjetoCura(3),
+                imagen = R.drawable.asi_objeto_pocima_vida_5
+            ),
+            ObjetoConsumible(
+                nombre = "Elixir Mediano de la Necrópolis",
+                descripcion = "Un frasco robusto con un líquido amarillo brillante, que resplandece como el sol al mediodía, capaz de restaurar 5 puntos de vida al instante.",
+                efecto = EfectoObjetoCura(5),
+                imagen = R.drawable.asi_objeto_pocima_vida_10
+            ),
+            ObjetoConsumible(
+                nombre = "Elixir Supremo de la Necrópolis",
+                descripcion = "Frasco supremo forjado con los secretos de los vacceos, restaura toda tu vitalidad al instante, ¡la poción de cura más poderosa de Pintia!",
+                efecto = EfectoObjetoCura(999),
+                imagen = R.drawable.asi_objeto_pocima_vida_all
+            ),
+            ObjetoEquipable(
+                nombre = "Escudo Caetrae",
+                descripcion = "La caetrae es un escudo redondo vacceo, forjado para la defensa en combate, que aumenta tu vida máxima en 10 puntos.",
+                efecto = EfectoEquipableAumento(10, Atributo.Vida),
+                imagen = R.drawable.asi_objeto_escudo
+            ),
+            ObjetoEquipable(
+                nombre = "Casco Ceremonial",
+                descripcion = "Casco ceremonial de oro de los vacceos decorado con intrincados patrones que simboliza el estatus social. Aumenta tu vida máxima en 8 puntos",
+                efecto = EfectoEquipableAumento(8, Atributo.Vida),
+                imagen = R.drawable.asi_objeto_casco
+            ),
+            ObjetoUtilidad(
+                nombre = "Pico Vacceo",
+                descripcion = "Un pico viejo y oscuro con dibujos extraños que parecen brillar cerca de las piedras, como si estuviera esperando que lo uses para algo importante.",
+                imagen = R.drawable.asi_objeto_pico
+            ),
+            ObjetoUtilidad(
+                nombre = "Ticket",
+                descripcion = "Representa una invitación a un evento relacionado con la cultura vaccea, como una feria arqueológica o un festival cultural",
+                imagen = R.drawable.asi_objeto_ticket
+            )
+        ).associateBy { it.nombre }
+    }
+
+    fun obtenerObjetoPorNombre(nombre: String): Objeto? {
+        return objetos[nombre]
+    }
+
+    fun obtenerObjetosAleatoriosTienda(cantidad: Int): List<ObjetoConsumible> {
+        val consumibles = objetos.values.filterIsInstance<ObjetoConsumible>()
+        return List(cantidad) { consumibles.random() }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ellegadodepintia/ruleta/Ruleta.kt b/app/src/main/java/com/example/ellegadodepintia/ruleta/Ruleta.kt
index 73b0004c50ccb651fe337c51b70530df1860f4d4..ee453e724aaa1e29101c68593bc1a72cf77409b6 100644
--- a/app/src/main/java/com/example/ellegadodepintia/ruleta/Ruleta.kt
+++ b/app/src/main/java/com/example/ellegadodepintia/ruleta/Ruleta.kt
@@ -2,6 +2,8 @@ package com.example.ellegadodepintia.ruleta
 
 import android.animation.ObjectAnimator
 import android.animation.ValueAnimator
+import android.app.Activity
+import android.content.Intent
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
@@ -14,6 +16,7 @@ import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.animation.doOnEnd
 import com.example.ellegadodepintia.R
+import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
 import kotlin.random.Random
 import com.example.ellegadodepintia.soundManager.SoundManager
 
@@ -27,11 +30,13 @@ class Ruleta : AppCompatActivity() {
 
     private val segmentos = arrayOf("x4", "x1", "x2", "x1", "x2", "x1", "x2", "x1")
     private var ultimaRotacion = 0f
-    private var puntuacionActual = 33
+    private var puntuacionActual = 1
 
     // Configura las vistas iniciales de la actividad y establece acciones iniciales
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+
+        puntuacionActual = intent.getIntExtra("PUNTUACION_ACTUAL", 0)
         soundManager = SoundManager(this)
         soundManager.playSoundLoop(R.raw.sound_casino, 80)
         setContentView(R.layout.activity_ruleta)
@@ -46,6 +51,7 @@ class Ruleta : AppCompatActivity() {
         ruletaImage = findViewById(R.id.ruletaImage)
         puntero = findViewById(R.id.ruletaPuntero)
         puntuacion = findViewById(R.id.puntuacion)
+        puntuacionActual.toString().also { puntuacion.text = it }
         titulo = findViewById(R.id.ruletaTitulo)
     }
 
@@ -102,6 +108,13 @@ class Ruleta : AppCompatActivity() {
             soundManager.playSound(R.raw.sound_big_win,100)
             lluviaMonedas()
         }
+
+        Handler(Looper.getMainLooper()).postDelayed({
+            val resultIntent = Intent()
+            resultIntent.putExtra("resultado", "$puntuacionActual")
+            setResult(Activity.RESULT_OK, resultIntent)
+            finish()
+        },5000)
     }
 
     // Realiza una animación de conteo que muestra la puntuación cambiando de un valor inicial a un valor final
@@ -110,7 +123,7 @@ class Ruleta : AppCompatActivity() {
             duration = 3000
             addUpdateListener { animation ->
                 val valorActual = animation.animatedValue as Int
-                puntuacion.text = "Puntuación: $valorActual"
+                valorActual.toString().also { puntuacion.text = it }
             }
             start()
         }
diff --git a/app/src/main/res/asi_objeto_ticker.png b/app/src/main/res/asi_objeto_ticker.png
new file mode 100644
index 0000000000000000000000000000000000000000..00fab7f670fa8a7b854ed2f41027307744a95385
Binary files /dev/null and b/app/src/main/res/asi_objeto_ticker.png differ
diff --git a/app/src/main/res/drawable/asi_objeto_ticket.png b/app/src/main/res/drawable/asi_objeto_ticket.png
new file mode 100644
index 0000000000000000000000000000000000000000..00fab7f670fa8a7b854ed2f41027307744a95385
Binary files /dev/null and b/app/src/main/res/drawable/asi_objeto_ticket.png differ
diff --git a/app/src/main/res/drawable/background_tienda.png b/app/src/main/res/drawable/background_tienda.png
new file mode 100644
index 0000000000000000000000000000000000000000..94fc1be3349351b10df8f5518bafa66a53909417
Binary files /dev/null and b/app/src/main/res/drawable/background_tienda.png differ
diff --git a/app/src/main/res/layout/activity_resumen_partida.xml b/app/src/main/res/layout/activity_resumen_partida.xml
index 105078ab0540ec9d7d848109caf16c4ee81a5744..e4d154018cd0044793c1fdb45fd6e27b15949cd6 100644
--- a/app/src/main/res/layout/activity_resumen_partida.xml
+++ b/app/src/main/res/layout/activity_resumen_partida.xml
@@ -148,6 +148,16 @@
                 android:layout_marginTop="10dp"
                 android:text="Continuar"
                 android:textColor="@color/pintiaButtonText" />
+
+            <Button
+                android:id="@+id/botonRuleta"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:backgroundTint="@color/pintiaButton"
+                android:layout_marginTop="10dp"
+                android:text="Utilizar Ticket"
+                android:textColor="@color/pintiaButtonText"
+                android:visibility="gone"/>
             </LinearLayout>
 
 
diff --git a/app/src/main/res/layout/activity_tienda.xml b/app/src/main/res/layout/activity_tienda.xml
new file mode 100644
index 0000000000000000000000000000000000000000..72bf1c15f040f8dc3321a42ff214aa6fe2563ef4
--- /dev/null
+++ b/app/src/main/res/layout/activity_tienda.xml
@@ -0,0 +1,429 @@
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/pintiaBackground"
+    tools:context=".exploradoresDePintia.ExploradoresDePintia"
+    tools:ignore="HardcodedText, UseCompoundDrawables">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:contentDescription="Taberna"
+        android:src="@drawable/background_tienda"
+        android:scaleType="centerCrop" />
+
+    <ImageView
+        android:id="@+id/tituloJuego"
+        android:layout_width="wrap_content"
+        android:layout_height="120dp"
+        android:layout_centerHorizontal="true"
+        android:contentDescription="Titulo del minijuego"
+        android:src="@drawable/texto_tienda"
+        android:textColor="#401201"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <GridLayout
+        android:id="@+id/inventarioGrid"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="20dp"
+        android:layout_marginStart="5dp"
+        android:layout_marginEnd="5dp"
+        android:background="@drawable/style_texto_border"
+        android:columnCount="2"
+        android:padding="12dp"
+        android:rowCount="3"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/tituloJuego">
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+                <ImageView
+                    android:id="@+id/slot01"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio01"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+
+                <ImageView
+                    android:id="@+id/slot02"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio02"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+
+        </LinearLayout>
+
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+
+                <ImageView
+                    android:id="@+id/slot03"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio03"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+
+                <ImageView
+                    android:id="@+id/slot04"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio04"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+
+                <ImageView
+                    android:id="@+id/slot05"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio05"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal">
+
+            <androidx.cardview.widget.CardView
+                android:layout_width="100dp"
+                android:layout_height="100dp"
+                android:elevation="0dp"
+                app:cardCornerRadius="10dp"
+                android:layout_marginEnd="15dp"
+                android:layout_marginStart="15dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="5dp"
+                android:backgroundTint="#F2CDA0">
+
+                <ImageView
+                    android:id="@+id/slot06"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:contentDescription="Imagen que sobresale de Slot 1"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/asi_exploradores_jabonera" />
+
+            </androidx.cardview.widget.CardView>
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal|bottom"
+                android:orientation="horizontal"
+                android:gravity="center"
+                android:layout_marginBottom="8dp">
+
+                <TextView
+                    android:id="@+id/precio06"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@font/pixeled"
+                    android:text="100"
+                    android:textColor="#401201"
+                    android:textSize="20sp" />
+
+                <ImageView
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_marginStart="4dp"
+                    android:contentDescription="Icono de moneda"
+                    android:src="@drawable/logo_pintia"
+                    android:scaleType="centerCrop" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </GridLayout>
+
+    <LinearLayout
+        android:id="@+id/bottom_navigation"
+        style="?android:attr/buttonBarStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/style_background_gradiente"
+        android:orientation="horizontal"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent">
+
+        <ImageButton
+            android:id="@+id/leaderboardButton"
+            android:layout_width="0dp"
+            android:layout_height="60dp"
+            android:layout_weight="1"
+            android:background="?attr/selectableItemBackground"
+            android:src="@drawable/icon_leaderboard"
+            android:contentDescription="Abre el mapa"
+            android:padding="5dp"
+            android:scaleType="fitCenter" />
+
+        <ImageButton
+            android:id="@+id/mapButton"
+            android:layout_width="0dp"
+            android:layout_height="60dp"
+            android:layout_weight="1"
+            android:background="?attr/selectableItemBackground"
+            android:src="@drawable/icon_map"
+            android:contentDescription="Abre el ranking"
+            android:layout_marginEnd="40dp"
+            android:layout_marginStart="40dp"
+            android:scaleType="fitCenter" />
+
+        <ImageButton
+            android:id="@+id/shopButton"
+            android:layout_width="0dp"
+            android:layout_height="60dp"
+            android:layout_weight="1"
+            android:background="?attr/selectableItemBackground"
+            android:src="@drawable/icon_shop"
+            android:contentDescription="Abre la tienda"
+            android:padding="5dp"
+            android:scaleType="fitCenter" />
+    </LinearLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>