diff --git a/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt b/app/src/main/java/com/example/ellegadodepintia/ArmeriaActivity.kt index 541e5e0cbcbc9f1f10222fd2b35764f33ce816ad..043723c4fe56b9e5dec5317f601deea6a4affd28 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 fe945231baa1804dbd81c4843053700f64790074..39793513a54670e520a19331048b57a357a9970d 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 c368e605c256a3dee53db907d34d69e2581df628..8591fbffdf9038ca96b23c6f7fb2976cf29c060e 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 ec065f9f0b9c9872604fca01d7c0a3695255fd3d..d3c44a4c920c929e41119b5b8c6a7e68f54756ae 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 cf3ec6a4968b2d28484e1c0ab98076f120aa0245..6324b19c15dd59d9dc24d8eb61cab1fdb77c858d 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 a00e7a8027d01d187d0ef033e9787ce70d05d0ab..2e975ce19a884809304da94a672068d2d6e90e38 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 fe76c3577c7da906f05e5e5f7f30a793cdc4d02b..dbf03ed674a03f4c737323af3bedebef1c3cf803 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 176b7f0e11fcd36d6dc111ba2f59e87e24340580..8ad42f0542e737e8ee8b92d19b21bbc2869442c1 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 ef1274c9161164e06ac54f3e05dc044c715d5be8..acbe1cfa1ff773cc683fbb0b14decfa2fff900cf 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 c1603bb9fa68c5ff85bc0a6159b665e01110d0af..555607175483060fdd8bac73ee2eb2972db17c21 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 29cf1d55e9375e7ec8dd1fdf2c1ee0b00b11b874..d61363ee687580f7bacb0067603dc2047219a921 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 }