From 05aa869f166ec596283c8ba02785b9eabe11e18d Mon Sep 17 00:00:00 2001 From: izajime <izanmario8@gmail.com> Date: Sun, 24 Nov 2024 16:38:22 +0100 Subject: [PATCH] Fix: Ahora todos los objetos tienen un atributo coste --- .../java/com/example/ellegadodepintia/ArmeriaActivity.kt | 8 ++------ .../java/com/example/ellegadodepintia/TiendaActivity.kt | 9 ++------- .../exploradoresDePintia/ModalDetallesCompra.kt | 3 +-- .../model/efecto/EfectoDetallesCompra.kt | 7 +++---- .../model/eventoFactory/TiendaFactory.kt | 5 ----- .../exploradoresDePintia/model/objeto/Objeto.kt | 3 ++- .../model/objeto/ObjetoConsumible.kt | 4 ++-- .../exploradoresDePintia/model/objeto/ObjetoDeValor.kt | 4 ++-- .../exploradoresDePintia/model/objeto/ObjetoEquipable.kt | 4 ++-- .../exploradoresDePintia/model/objeto/ObjetoUtilidad.kt | 4 ++-- .../ellegadodepintia/repositorios/RepositorioObjetos.kt | 9 +++++++++ 11 files changed, 27 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt b/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt index 541e5e0..043723c 100644 --- a/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt +++ b/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt @@ -50,7 +50,6 @@ class ArmeriaActivity : AppCompatActivity() { val nivelCiudad = GameState.jugador.nivelCiudad val nObjetos = nivelCiudad * 2 val objetos = RepositorioObjetos.convertirNombresAObjetos(GameState.jugador.objetosArmeria) - val preciosGenerados = ArrayList<Int>() val slots = listOf<ImageView>( findViewById(R.id.slot01), @@ -81,9 +80,7 @@ class ArmeriaActivity : AppCompatActivity() { precios.forEachIndexed { index, precio -> if (index < nObjetos) { - val resultado = (30..75).random() / nivelCiudad - preciosGenerados.add(resultado) - resultado.toString().also { precio.text = it } + objetos[index]!!.coste.toString().also { precio.text = it } } else { val nivelTaberna = index / 2 + 1 "Taberna lvl $nivelTaberna".also { precio.text = it } @@ -99,12 +96,11 @@ class ArmeriaActivity : AppCompatActivity() { slot.setOnClickListener { val modalDetallesFragment = ModalDetallesCompra().apply { objeto = objetos[index] - coste = preciosGenerados[index] } modalDetallesFragment.onDismissListener = { accionRealizada -> if (accionRealizada) { - ejecutarCompra(objetos[index], preciosGenerados[index]) + ejecutarCompra(objetos[index], objetos[index]!!.coste) } } diff --git a/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt index fe94523..3979351 100644 --- a/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt +++ b/app/src/main/java/com/example/ellegadodepintia/TiendaActivity.kt @@ -50,7 +50,6 @@ class TiendaActivity : AppCompatActivity() { val nivelCiudad = GameState.jugador.nivelCiudad val nObjetos = nivelCiudad * 2 val objetos = RepositorioObjetos.convertirNombresAObjetos(GameState.jugador.objetosTienda) - val preciosGenerados = ArrayList<Int>() val slots = listOf<ImageView>( findViewById(R.id.slot01), @@ -81,9 +80,7 @@ class TiendaActivity : AppCompatActivity() { precios.forEachIndexed { index, precio -> if (index < nObjetos) { - val resultado = (30..75).random() / nivelCiudad - preciosGenerados.add(resultado) - resultado.toString().also { precio.text = it } + objetos[index]!!.coste.toString().also { precio.text = it } } else { val nivelTaberna = index / 2 + 1 "Taberna lvl $nivelTaberna".also { precio.text = it } @@ -99,15 +96,13 @@ class TiendaActivity : AppCompatActivity() { slot.setOnClickListener { val modalDetallesFragment = ModalDetallesCompra().apply { objeto = objetos[index] - coste = preciosGenerados[index] } modalDetallesFragment.onDismissListener = { accionRealizada -> if (accionRealizada) { - ejecutarCompra(objetos[index], preciosGenerados[index]) + ejecutarCompra(objetos[index], objetos[index]!!.coste) } } - modalDetallesFragment.show(supportFragmentManager, "modalDetalles") } } else { diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesCompra.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesCompra.kt index c368e60..8591fbf 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesCompra.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesCompra.kt @@ -14,7 +14,6 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto class ModalDetallesCompra : DialogFragment() { var objeto: Objeto? = null - var coste: Int? = null var onDismissListener: ((accionRealizada: Boolean) -> Unit)? = null private var accionRealizada: Boolean = false @@ -45,7 +44,7 @@ class ModalDetallesCompra : DialogFragment() { descripcion.text = objeto!!.descripcion val coste = view.findViewById<TextView>(R.id.textoPrecio) - """Coste:${this.coste}""".also { coste.text = it } + """Coste:${this.objeto!!.coste}""".also { coste.text = it } val boton = view.findViewById<Button>(R.id.botonComprar) boton.setOnClickListener{ diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt index ec065f9..d3c44a4 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt @@ -12,7 +12,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.repositorios.RepositorioJugador -class EfectoDetallesCompra(private val coste : Int,private val objeto: Objeto) : Efecto(100) { +class EfectoDetallesCompra(private val objeto: Objeto) : Efecto(100) { override fun ejecutar(): String { val mensaje = "Has investigado el objeto que te estan ofreciendo" @@ -25,7 +25,6 @@ class EfectoDetallesCompra(private val coste : Int,private val objeto: Objeto) : } val modalDetallesFragment = ModalDetallesCompra().apply { this.objeto = this@EfectoDetallesCompra.objeto - this.coste = this@EfectoDetallesCompra.coste this.onDismissListener = { accionRealizada -> if (accionRealizada) { ejecutarCompra() @@ -47,10 +46,10 @@ class EfectoDetallesCompra(private val coste : Int,private val objeto: Objeto) : salto.start() } - if (GameState.jugador.monedas < coste){ + if (GameState.jugador.monedas < objeto.coste){ "¡No tienes suficientes monedas para comprar el objeto!".also { context!!.findViewById<TextView>(R.id.textoResultado).text = it } }else{ - GameState.jugador.actualizarMonedas(GameState.jugador.monedas - coste) + GameState.jugador.actualizarMonedas(GameState.jugador.monedas - objeto.coste) RepositorioJugador.setMonedas(GameState.jugador.monedas) GameState.jugador.conseguirObjeto(objeto) GameState.eventoActual.actualizarFinalizado(true) 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 cf3ec6a..6324b19 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 @@ -16,7 +16,6 @@ class TiendaFactory : EventoFactory { descripcion = "Ver Objeto", atributoRequerida = Atributo.Nula, EfectoDetallesCompra( - 5, RepositorioObjetos.obtenerObjetoPorNombre("Elixir Menor de la Necrópolis")!! ) ), Opcion( @@ -32,7 +31,6 @@ class TiendaFactory : EventoFactory { descripcion = "Ver Objeto", atributoRequerida = Atributo.Nula, EfectoDetallesCompra( - 8, RepositorioObjetos.obtenerObjetoPorNombre("Elixir Mediano de la Necrópolis")!! ) ), Opcion( @@ -48,7 +46,6 @@ class TiendaFactory : EventoFactory { descripcion = "Ver Objeto", atributoRequerida = Atributo.Nula, EfectoDetallesCompra( - 15, RepositorioObjetos.obtenerObjetoPorNombre("Elixir Supremo de la Necrópolis")!! ) ), Opcion( @@ -64,7 +61,6 @@ class TiendaFactory : EventoFactory { descripcion = "Ver Objeto", atributoRequerida = Atributo.Nula, EfectoDetallesCompra( - 50, RepositorioObjetos.obtenerObjetoPorNombre("Escudo Caetrae")!! ) ), Opcion( @@ -80,7 +76,6 @@ class TiendaFactory : EventoFactory { descripcion = "Ver Objeto", atributoRequerida = Atributo.Nula, EfectoDetallesCompra( - 40, RepositorioObjetos.obtenerObjetoPorNombre("Casco Ceremonial")!! ) ), Opcion( 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 a00e7a8..2e975ce 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 @@ -5,6 +5,7 @@ import java.io.Serializable abstract class Objeto ( val nombre: String, val descripcion: String, - val imagen : Int): Serializable { + val imagen : Int, + val coste: Int): Serializable { abstract fun usar() } \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoConsumible.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoConsumible.kt index fe76c35..dbf03ed 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoConsumible.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoConsumible.kt @@ -5,8 +5,8 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObje class ObjetoConsumible( nombre: String, descripcion: String, - val efecto: EfectoObjeto, imagen: Int, -) : Objeto(nombre, descripcion, imagen) { + val efecto: EfectoObjeto, imagen: Int, coste : Int +) : Objeto(nombre, descripcion, imagen, coste) { override fun usar() { efecto.ejecutar() diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoDeValor.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoDeValor.kt index 176b7f0..8ad42f0 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoDeValor.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoDeValor.kt @@ -6,8 +6,8 @@ class ObjetoDeValor( nombre: String, descripcion: String, imagen: Int, - val coste: Int -) : Objeto(nombre, descripcion, imagen) { + coste: Int, +) : Objeto(nombre, descripcion, imagen, coste) { private val efecto: EfectoVender = EfectoVender(coste) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoEquipable.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoEquipable.kt index ef1274c..acbe1cf 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoEquipable.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoEquipable.kt @@ -7,9 +7,9 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObje class ObjetoEquipable( nombre: String, descripcion: String, - val efecto: EfectoObjeto, imagen: Int, + val efecto: EfectoObjeto, imagen: Int, coste : Int - ) : Objeto(nombre, descripcion, imagen) { + ) : Objeto(nombre, descripcion, imagen, coste) { override fun usar() { efecto.ejecutar() diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoUtilidad.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoUtilidad.kt index c1603bb..5556071 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoUtilidad.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/ObjetoUtilidad.kt @@ -5,8 +5,8 @@ class ObjetoUtilidad( nombre: String, descripcion: String, imagen: Int, - - ) : Objeto(nombre, descripcion, imagen) { + coste : Int + ) : Objeto(nombre, descripcion, imagen, coste) { override fun usar() { } 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 29cf1d5..d61363e 100644 --- a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt @@ -37,46 +37,55 @@ object RepositorioObjetos { 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), + coste = 20, 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), + coste = 5, 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), + coste = 8, 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), + coste = 15, 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), + coste = 50, 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), + coste = 40, 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.", + coste = 20, 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", + coste = 20, imagen = R.drawable.asi_objeto_ticket ) ).associateBy { it.nombre } -- GitLab