diff --git a/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt index 0fd0a626757cb06480fe825383903ff38d93cb08..0e8423d602860170d1847aa04a0aa2ba92ebab55 100644 --- a/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt +++ b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt @@ -129,7 +129,9 @@ class TiendaActivity : AppCompatActivity() { val texto = findViewById<TextView>(R.id.textoInformacion) var soundManager: SoundManager soundManager = SoundManager(this) - if (GameState.jugador.monedas < coste){ + if(GameState.jugador.inventario.size >= 9){ + "No hay espacio".also { texto.text = it } + }else if (GameState.jugador.monedas < coste){ "No hay dinero".also { texto.text = it } }else{ GameState.jugador.actualizarMonedas(GameState.jugador.monedas - coste) @@ -139,5 +141,6 @@ class TiendaActivity : AppCompatActivity() { "Objeto comprado y añadido al inventario".also { texto.text = it } soundManager.playSound(R.raw.sound_dineros,100) } + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesFragment.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesFragment.kt index 389c01a2cce4ac94c000e6bda26735a7dee9c26b..8bc226123f245e13dee53e728730ca463208bc2f 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesFragment.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesFragment.kt @@ -100,7 +100,7 @@ class ModalDetallesFragment : DialogFragment() { return } } - if(GameState.jugador.equipables.size == 3){ + if(GameState.jugador.equipables.size == 3 && objeto is ObjetoEquipable){ val mensaje = "No te queda espacio para equipar nada más" view?.findViewById<TextView>(R.id.textoResultadoUso)?.text = mensaje }else{ diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/Objeto.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/Objeto.kt index 2e975ce19a884809304da94a672068d2d6e90e38..1ccc7e03e3f71c9dab7b50afa861615916f20cc7 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/Objeto.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/Objeto.kt @@ -6,6 +6,9 @@ abstract class Objeto ( val nombre: String, val descripcion: String, val imagen : Int, - val coste: Int): Serializable { + val coste: Int): Serializable , Cloneable{ abstract fun usar() -} \ No newline at end of file + public override fun clone(): Objeto { + return super.clone() as Objeto + } +} diff --git a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt index 8a0b4d9403c0671aad14018277d9f15f195785d3..ac402b3effd23de6d3e154ebdf1280d90f0937e1 100644 --- a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt @@ -88,51 +88,51 @@ object RepositorioObjetos { //********************************** ObjetoDeValor( nombre = "Vasito de barro cocido", - descripcion = "Objeto de gran valor. Se convierte en 10 monedas si consigues completar la partida.", - coste = 10, + descripcion = "Objeto de gran valor. Se convierte en 50 monedas si consigues completar la partida.", + coste = 50, imagen = R.drawable.asi_exploradores_vasito ), ObjetoDeValor( nombre = "Jabonera de cerámica", - descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.", - coste = 15, + descripcion = "Objeto de gran valor. Se convierte en 55 monedas si consigues completar la partida.", + coste = 55, imagen = R.drawable.asi_exploradores_jabonera ), ObjetoDeValor( nombre = "Copa negra con inscripciones", - descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.", - coste = 15, + descripcion = "Objeto de gran valor. Se convierte en 55 monedas si consigues completar la partida.", + coste = 55, imagen = R.drawable.asi_minijuego_3_copa_negra_brunida ), ObjetoDeValor( nombre = "Tapadera de cerámica zoomorfa", - descripcion = "Objeto de gran valor. Se convierte en 30 monedas si consigues completar la partida.", - coste = 30, + descripcion = "Objeto de gran valor. Se convierte en 100 monedas si consigues completar la partida.", + coste = 100, imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo ), ObjetoDeValor( nombre= "Moneda de plata Vaccea", descripcion = "Pequeño denario con sÃmbolos celtÃberos, utilizadas para el comercio. Su circulación refleja una economÃa organizada en torno a la élite guerrera", imagen = R.drawable.asi_objeto_moneda, - coste = 15 + coste = 55 ), ObjetoDeValor( nombre= "Sonajero Redondo", descripcion = "Pequeño artefacto de cerámica utilizado en rituales funerarios o ceremonias. Su diseño y sonido caracterÃstico eran sÃmbolos de protección y conexión espiritual en la cultura celtÃbera.", imagen = R.drawable.asi_minijuego_3_sonajero_redondo, - coste = 15 + coste = 55 ), ObjetoDeValor( nombre= "Piel del Gran Lobo", - descripcion = "Piel obtenida del lobo que representa parte de la mitologÃa vaccea. Está valorado en 100 monedas", + descripcion = "Piel obtenida del lobo que representa parte de la mitologÃa vaccea. Está valorado en 120 monedas", imagen = R.drawable.asi_objeto_piel, - coste = 100 + coste = 120 ), ObjetoDeValor( nombre = "Fragmento de reliquia", - descripcion = "Los restos de una reliquia. Hay algunos comerciantes que los buscan. Tiene un valor de 5 monedas.", + descripcion = "Los restos de una reliquia. Hay algunos comerciantes que los buscan. Tiene un valor de 33 monedas.", imagen = R.drawable.asi_fragmento_reliquia, - coste = 5 + coste = 33 ), //********************************************** // D E U T I L I D A D @@ -158,10 +158,11 @@ object RepositorioObjetos { ).associateBy { it.nombre } } - fun obtenerObjetoPorNombre(nombre: String): Objeto? { - return objetos[nombre] + fun obtenerObjetoPorNombre(nombre: String): Objeto { + return objetos[nombre]!!.clone() } + fun obtenerObjetoPorCoste(coste: Int): Objeto? { val objetosFiltrados = objetos.values .filterIsInstance<ObjetoDeValor>() @@ -177,7 +178,7 @@ object RepositorioObjetos { .maxOrNull() val objetosConCosteMasCercano = objetosFiltrados[costeMasCercano] ?: return null - return objetosConCosteMasCercano.random() + return objetosConCosteMasCercano.random().clone() }