diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesEnemigo.kt index 2895682a89175125bbdb48eca8f66f39c5de8a7d..125b422f5b24278738cc0e32640fe9a938970f54 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ModalDetallesEnemigo.kt @@ -47,7 +47,7 @@ class ModalDetallesEnemigo : DialogFragment() { } } - if(GameState.jugador.atributos[Atributo.Investigacion]!! >= GameState.eventoActual.resistenciaMax){ + if(GameState.jugador.atributos[Atributo.Investigacion]!! >= GameState.eventoActual.resistenciaActual/2){ view.findViewById<TextView>(R.id.textoVidaMaxima).text = buildString { append("Vida: ") append(GameState.eventoActual.resistenciaActual) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Atributo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Atributo.kt index 4e0c00a93801a694f7b4341c3608e0aecf2b058e..ad24c02f2c36bafce2cd7d4affd76364f445fa29 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Atributo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Atributo.kt @@ -5,5 +5,6 @@ enum class Atributo { Ataque, Investigacion, Energia, - Nula + Nula, + Critico } \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt index 38e445c007a29794e391efc0fd157cab0eb7ea1d..822b190dd90db6aef6568c2d89fe8de382ff712d 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt @@ -37,9 +37,9 @@ object GeneradorDeEventos { while (eventosGenerados.size < CANTIDAD) { val tipoSeleccionado = seleccionarTipoEvento() println(historialTipos) - if (historialTipos.isNotEmpty() && tipoSeleccionado == historialTipos.last()) { + /*if (historialTipos.isNotEmpty() && tipoSeleccionado == historialTipos.last()) { continue - } + }*/ val nuevoEvento = EventoFactorySelector.obtenerFactory(tipoSeleccionado).generarEvento() @@ -128,5 +128,11 @@ object GeneradorDeEventos { return eventosFiltrados[eventosFiltrados.indices.first] } + fun insertarCombate() { + val nuevoCombate = EventoFactorySelector.obtenerFactory(TipoEvento.Combate).generarEvento() + eventos.add(0, nuevoCombate) + historialTipos.add(0, TipoEvento.Combate) + } + } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt index f8f1ae086d47b6b7355bb945c3f28ab3d0d6f5ec..6999786ea38c61f01e74ecb926a93b8c5242dc52 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt @@ -12,6 +12,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.Efecto import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoInvestigarEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRegeneracionEnemigo +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRevivirEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.EventoCombate import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoHabilidad @@ -82,10 +83,10 @@ object GestorCombate { } } - fun calcularAtaque(ataqueBase: Int): Int { + fun calcularAtaque(ataqueBase: Int, probabilidadCritico: Int): Int { val ataqueFinal: Int val resultadoTirada = (0..100).random() - ataqueFinal = if (resultadoTirada <= 8) { + ataqueFinal = if (resultadoTirada <= probabilidadCritico) { ataqueBase * 2 } else { ataqueBase @@ -99,18 +100,33 @@ object GestorCombate { accionEnemigo() }, 800) } else { - evento.actualizarFinalizado(true) turnoJugador = true - if(evento.resistenciaActual <= 0) { - GameState.jugador.conseguirObjeto(evento.recompensa) - Handler(Looper.getMainLooper()).postDelayed({ - "¡Enhorabuena has acabado con el monstruo!\n Te das cuenta que defendÃa un/una ${evento.recompensa.nombre}".also { - context!!.findViewById<TextView>(R.id.textoResultado).text = it - } - }, 200) + if (revivirEnemigo() == "Fallo") { + evento.actualizarFinalizado(true) + if (evento.resistenciaActual <= 0) { + GameState.jugador.conseguirObjeto(evento.recompensa) + Handler(Looper.getMainLooper()).postDelayed({ + "¡Enhorabuena has acabado con el monstruo!\n Te das cuenta que defendÃa un/una ${evento.recompensa.nombre}".also { + context!!.findViewById<TextView>(R.id.textoResultado).text = it + } + }, 200) + } } + } + } + private fun revivirEnemigo(): String { + var mensaje = "Fallo" + val tieneRevivir = evento.acciones.any { it is EfectoRevivirEnemigo } + if (tieneRevivir) { + mensaje = evento.acciones.filterIsInstance<EfectoRevivirEnemigo>().first().ejecutar() + Handler(Looper.getMainLooper()).postDelayed({ + val textoResultado = context!!.findViewById<TextView>(R.id.textoResultado) + "${textoResultado.text} \n\n $mensaje".also { textoResultado.text = it } + }, 200) } + return mensaje + } fun accionProtagonista(efecto: Efecto): String { @@ -167,9 +183,12 @@ object GestorCombate { val porcentajeVida = GameState.eventoActual.resistenciaActual / GameState.eventoActual.resistenciaMax.toDouble() return if (tieneRecuperacion && porcentajeVida <= 0.3) { - evento.acciones.random() + evento.acciones.filterNot { it is EfectoRevivirEnemigo }.random() } else { - evento.acciones.filterNot { it is EfectoRegeneracionEnemigo }.random() + evento.acciones.filterNot { + it is EfectoRegeneracionEnemigo || + it is EfectoRevivirEnemigo + }.random() } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorDeEventos.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorDeEventos.kt index c10f9d71d1bdae5554aee0d2789dbe50dc2ab7cf..1da4d2802ac807ffeeb58d46281be8ec5647bbb2 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorDeEventos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorDeEventos.kt @@ -126,5 +126,4 @@ object GestorDeEventos{ } - } \ 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 f108a4496571e4964790ddefa888fcc4fa1024ab..c731282a9d17c72f8ef0592b4a28b6f0acf48a74 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 @@ -36,6 +36,9 @@ class Jugador { atributos[Atributo.Ataque] = 1 atributos[Atributo.Investigacion] = 1 atributos[Atributo.Energia] = 10 + atributos[Atributo.Critico] = 8 + + inventario.add(RepositorioObjetos.obtenerObjetoPorNombre("Puñal Vacceo")!!) habilidades.add( Habilidad( @@ -54,15 +57,6 @@ class Jugador { 3 ) ) - - inventario.add( - ObjetoUtilidad( - nombre = "Pala Vaccea", - descripcion = "Una antigua pala con marcas de uso, forjada con madera resistente y un metal desgastado por el tiempo. Parece estar llena de historia.", - imagen = R.drawable.asi_objeto_pala - ) - ) - /*habilidades.add( Habilidad( nombre = "Revitalización Floral", diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt index c3b22503ee0bcdb4dc5e316196db7db522a40bb9..50fc071498544102f9c70101e796d3e9c1db0349 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt @@ -14,7 +14,7 @@ class EfectoAtaqueEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito) { GestorCombate.cargarAnimacionesAtaqueEnemigo() if (probabilidadEnemigo <= probabilidadExito) { - val ataqueReal = GestorCombate.calcularAtaque(evento.ataque) + val ataqueReal = GestorCombate.calcularAtaque(evento.ataque, evento.probCritico) GameState.jugador.actualizarAtributo(Atributo.Vida, -ataqueReal) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt index 50da27b81c9bd3825a8b500adc0e78491fdedb41..8a339653066613d54df890eeedb26692d1ed4b1a 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt @@ -11,7 +11,7 @@ class EfectoAtaqueProtagonista(probabilidadExito: Int) : Efecto(probabilidadExit if (probabilidadPersonaje <= probabilidadExito) { GestorCombate.cargarAnimacionesAtaqueProtagonista() - val ataqueReal = GestorCombate.calcularAtaque(GameState.jugador.atributos[Atributo.Ataque]!!) + val ataqueReal = GestorCombate.calcularAtaque(GameState.jugador.atributos[Atributo.Ataque]!!, GameState.jugador.atributos[Atributo.Critico]!!) GameState.eventoActual.actualizarResistencia(-ataqueReal) mensaje = "¡Ataque realizado con éxito has hecho $ataqueReal de daño" } else { diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt index 29abe3f7142e428b8d93a46c6c665812aa10d792..1c5f93710d0cb3347a11fe47af04a0bdbffd3bcd 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt @@ -8,6 +8,7 @@ import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo +import com.example.ellegadodepintia.exploradoresDePintia.model.GeneradorDeEventos import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoDeValor //TODO() Agregar inventario con restos de la reliquia @@ -42,7 +43,13 @@ class EfectoDestruir(probabilidadExito: Int) : Efecto(probabilidadExito) { coste = 5 ) ) - "¡Qué has hecho, la reliquia se ha roto por completo!. Has conseguido un fragmento de la reliquia" + val probabilidadCombate = (0..1).random() + if(probabilidadCombate <= 60){ + GeneradorDeEventos.insertarCombate() + "¡Qué has hecho, la reliquia se ha roto por completo!. Has conseguido un fragmento de la reliquia. Parece que un enemigo te ha visto, ¡el próximo evento será un combate!" + }else{ + "¡Qué has hecho, la reliquia se ha roto por completo!. Has conseguido un fragmento de la reliquia" + } } } else { "La reliquia ha resistido el golpe con éxito." diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt index 92c3fea6ffd9388ca82fdc4985e9fcb981066b8f..2474c5bc74a25417b6d6bf6a962df4b72066c5ce 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt @@ -36,7 +36,7 @@ class EfectoReparar(probabilidadExito: Int, private val stringReparado: String, } return if (probabilidad <= probabilidadExito) { - GameState.eventoActual.actualizarResistencia(1) + GameState.eventoActual.actualizarResistencia(GameState.jugador.atributos[Atributo.Investigacion]!!) if(GameState.eventoActual.resistenciaActual == GameState.eventoActual.resistenciaMax){ val intent = Intent(context, MinijuegoReparacion::class.java) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt new file mode 100644 index 0000000000000000000000000000000000000000..6d8004ccf8663e5b66cef06009427caffa5b2fcb --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt @@ -0,0 +1,27 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.efecto + +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate + +class EfectoRevivirEnemigo( + private val mensajeRevivir: String, private val porcentaje: Double, + probabilidadExito: Int +) : + Efecto(probabilidadExito) { + override fun ejecutar(): String { + val probabilidadGenerada = (1..100).random() + if (probabilidadGenerada <= probabilidadExito) { + GestorCombate.cargarAnimacionsRegeneracionEnemigo() + + GameState.eventoActual.setResistencia( + (GameState.eventoActual.resistenciaMax * porcentaje).toInt() + ) + return mensajeRevivir + + } else { + return "Fallo" + } + + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt index 9d2ccef3749a14d325e73395a27d820fc4d54fee..dd20f2a9b2169350be56abed89db41f5af5fc737 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt @@ -12,14 +12,16 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHabi import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHuirProtagonista import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoInvestigarEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRegeneracionEnemigo +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRevivirEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.repositorios.RepositorioObjetos data class CombateInfo( val imagenIdle: Int, val imagenAtaque: Int, - val opciones: List<Opcion>, val habilidades: List<Efecto>, + val vidaMax: Int, + val ataque: Int, val recompensa: Objeto ) @@ -29,34 +31,25 @@ class CombateFactory : EventoFactory { "El Metal Volador es una criatura formada por fragmentos de metal antiguo. Protege los secretos del yacimiento de Pintia." to CombateInfo( R.drawable.monster_metal_idle_animation, R.drawable.monster_metal_attack_animation, - listOf( - OpcionCombate( - descripcion = "Atacar", - atributoRequerida = Atributo.Ataque, - efecto = EfectoAtaqueProtagonista(70) - ), - Opcion( - descripcion = "Investigar", - atributoRequerida = Atributo.Investigacion, - efecto = EfectoInvestigarEnemigo(100) - ), - Opcion( - descripcion = "Habilidades", - atributoRequerida = Atributo.Nula, - efecto = EfectoHabilidadesProtagonista(GameState.jugador.atributos[Atributo.Vida]!!) - ), - OpcionCombate( - descripcion = "Huir", - atributoRequerida = Atributo.Vida, - efecto = EfectoHuirProtagonista(GameState.jugador.atributos[Atributo.Vida]!!), - ), - ), listOf( EfectoAtaqueEnemigo(80), - EfectoRegeneracionEnemigo("El metal reconfigura sus fragmentos recuperando parte de su vida", (1..2).random()) + EfectoRegeneracionEnemigo( + "El metal reconfigura sus fragmentos recuperando parte de su vida", + (1..2).random() + ) ), + vidaMax = (5..10).random(), + ataque = (1..2).random(), RepositorioObjetos.obtenerObjetoPorNombre("Moneda de plata Vaccea")!! ), + "Al explorar una tumba de la necrópolis de las ruedas, un esqueleto armado aparece." to CombateInfo( + imagenIdle = R.drawable.monster_skeleton_idle, + imagenAtaque = R.drawable.monster_skeleton_attack, + habilidades = listOf(EfectoAtaqueEnemigo(75), EfectoRevivirEnemigo("El esqueleto se reconstruye reviviendo",0.35, 40)), + vidaMax = (5..8).random(), + ataque = (1..3).random(), + RepositorioObjetos.obtenerObjetoPorNombre("Poción de Veneno II")!! + ) ) override fun generarDescripcion(): String { @@ -65,16 +58,17 @@ class CombateFactory : EventoFactory { override fun generarEvento(): EventoCombate { val descripcion = generarDescripcion() - val combateInfo = combatesMap[descripcion] ?: throw IllegalArgumentException("No se encontró información de combate") + val combateInfo = combatesMap[descripcion] + ?: throw IllegalArgumentException("No se encontró información de combate") return EventoCombate( descripcion = descripcion, dificultad = 0, - opciones = combateInfo.opciones.toMutableList(), + opciones = generarOpciones(""), imagenAtaque = combateInfo.imagenAtaque, imagen = combateInfo.imagenIdle, - resistenciaMax = (5..10).random(), - ataque = (1..2).random(), + resistenciaMax = combateInfo.vidaMax, + ataque = combateInfo.ataque, finalizado = false, acciones = combateInfo.habilidades.toMutableList(), recompensa = combateInfo.recompensa @@ -82,8 +76,28 @@ class CombateFactory : EventoFactory { } override fun generarOpciones(descripcion: String): MutableList<Opcion> { - val combateInfo = combatesMap[descripcion] ?: return mutableListOf() - return combateInfo.opciones.take(4).toMutableList() + return mutableListOf( + OpcionCombate( + descripcion = "Atacar", + atributoRequerida = Atributo.Ataque, + efecto = EfectoAtaqueProtagonista(70) + ), + Opcion( + descripcion = "Investigar", + atributoRequerida = Atributo.Investigacion, + efecto = EfectoInvestigarEnemigo(100) + ), + Opcion( + descripcion = "Habilidades", + atributoRequerida = Atributo.Nula, + efecto = EfectoHabilidadesProtagonista(GameState.jugador.atributos[Atributo.Vida]!!) + ), + OpcionCombate( + descripcion = "Huir", + atributoRequerida = Atributo.Vida, + efecto = EfectoHuirProtagonista(GameState.jugador.atributos[Atributo.Vida]!!), + ) + ) } override fun generarImagen(descripcion: String): Int { diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/Evento.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/Evento.kt index 702fac9fa696005116810e05be687308d9059faf..5769c1392298f9541ce4364e0baf286df1e7e858 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/Evento.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/Evento.kt @@ -31,6 +31,11 @@ abstract class Evento( notifyObservers() } + fun setResistencia(valor : Int){ + resistenciaActual = valor + notifyObservers() + } + private fun notifyObservers() { observers.forEach { it(this) } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt index 5545d623ce49ed4e23366fecc626722905ad1697..d6456613e66c64f567a42437e73695209a82a1e3 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt @@ -18,6 +18,7 @@ class EventoCombate( val recompensa : Objeto ) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado){ val id: String = UUID.randomUUID().toString() + var probCritico = 8 override fun equals(other: Any?): Boolean { if (this === other) return true if (other == null || javaClass != other.javaClass) return false 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 f8ff455ff017a6231533c4d5d5421cfeaafb1001..85cb64b5ea773372a54b2b9a04661d3b6bb9ad37 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 @@ -17,7 +17,7 @@ class ReliquiaFactory : EventoFactory { descripcion = "Investigar", atributoRequerida = Atributo.Investigacion, EfectoInvestigar( - 70, + 90, "Al observar los grabados y la técnica de cocción, descubres que el vaso es una pieza de los vacceos, una cultura prerromana que habitó el valle del Duero.", 1 ) @@ -25,7 +25,7 @@ class ReliquiaFactory : EventoFactory { descripcion = "Reparar", atributoRequerida = Atributo.Investigacion, EfectoReparar( - 65, + 80, "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, @@ -50,16 +50,16 @@ class ReliquiaFactory : EventoFactory { descripcion = "Investigar", atributoRequerida = Atributo.Investigacion, EfectoInvestigar( - 60, + 80, "Tras examinar minuciosamente la jabonera, descubres que el sÃmbolo representado es un lobo, figura clave en la mitologÃa vaccea, simbolizando miedo y veneración.", - 1 + 2 ) ), Opcion( descripcion = "Reparar", atributoRequerida = Atributo.Investigacion, EfectoReparar( - 55, + 80, "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, @@ -83,16 +83,16 @@ class ReliquiaFactory : EventoFactory { descripcion = "Investigar", atributoRequerida = Atributo.Investigacion, EfectoInvestigar( - 60, + 80, "Tras examinar minuciosamente la copa, encuentras patrones geométricos que podrÃan relacionarse con antiguos ritos funerarios o de sacrificio. ", - 1 + 2 ) ), Opcion( descripcion = "Reparar", atributoRequerida = Atributo.Investigacion, EfectoReparar( - 55, + 75, "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, @@ -110,7 +110,7 @@ class ReliquiaFactory : EventoFactory { ) ) ), - "Encuentra una tapadera de cerámica con una figura zoomorfa tallada en su superficie. Mmuestra el detalle de un animal: un lobo" to Pair( + "Encuentras una tapadera de cerámica con una figura zoomorfa tallada en su superficie. Muestra el detalle de un animal: un lobo" to Pair( R.drawable.asi_minijuego_3_tapadera_zoomorfo, listOf( Opcion( descripcion = "Investigar", @@ -118,14 +118,14 @@ class ReliquiaFactory : EventoFactory { EfectoInvestigar( 60, "Descubres que la tapadera representa a un animal sagrado en la cultura vaccea, podrÃa estar relacionado con rituales de protección o iniciación. ", - 1 + 3 ) ), Opcion( descripcion = "Reparar", atributoRequerida = Atributo.Investigacion, EfectoReparar( - 55, + 70, "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, @@ -143,6 +143,38 @@ class ReliquiaFactory : EventoFactory { ) ) ), + "Encuentras lo que parece ser un sonajero redondo" to Pair( + R.drawable.asi_minijuego_3_sonajero_redondo, listOf( + Opcion( + descripcion = "Investigar", + atributoRequerida = Atributo.Investigacion, + EfectoInvestigar( + 95, + "Descubres que es un modelo perteneciente a los muebles de la tumba 153 de la necrópolis de Las Ruedas", + 1 + ) + ), Opcion( + descripcion = "Reparar", + atributoRequerida = Atributo.Investigacion, + EfectoReparar( + 90, + "Restauras el sonajero con gran precisión. Su sonido ahora es claro, y encuentras inscripciones que parecen ser representaciones simbólicas de protección o buena fortuna.", + "Intentas repararlo, pero el material es más frágil de lo esperado, y el sonajero se rompe aún más, perdiendo su valor arqueológico.", + 1, + RepositorioObjetos.obtenerObjetoPorNombre("Sonajero Redondo")!! + ) + + ), Opcion( + descripcion = "Destruir", + atributoRequerida = Atributo.Ataque, + EfectoDestruir(80) + ), Opcion( + descripcion = "Ignorar", + atributoRequerida = Atributo.Nula, + EfectoIgnorar(100) + ) + ) + ), ) override fun generarDescripcion(): String { diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/habilidad/efectoHabilidad/EfectoGolpeMultiple.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/habilidad/efectoHabilidad/EfectoGolpeMultiple.kt index f09a09e7ad8e3a131e20fbe9d840282105263b7c..3ced9b48c9ecf16d3dcb21923cffd8423d7e4a10 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/habilidad/efectoHabilidad/EfectoGolpeMultiple.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/habilidad/efectoHabilidad/EfectoGolpeMultiple.kt @@ -7,7 +7,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate class EfectoGolpeMultiple(private var cantidad: Int): EfectoHabilidad(){ override fun ejecutar() { GestorCombate.cargarAnimacionesAtaqueProtagonista() - val ataqueReal = GestorCombate.calcularAtaque(cantidad*GameState.jugador.atributos[Atributo.Ataque]!!) + val ataqueReal = GestorCombate.calcularAtaque(cantidad*GameState.jugador.atributos[Atributo.Ataque]!!,GameState.jugador.atributos[Atributo.Critico]!!) GameState.eventoActual.actualizarResistencia(-ataqueReal) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoEquipableHabilidad.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoEquipableHabilidad.kt new file mode 100644 index 0000000000000000000000000000000000000000..dc71dab2d8089b3f94ebc969566c329cddce375e --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoEquipableHabilidad.kt @@ -0,0 +1,14 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto + +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo +import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.Habilidad + +class EfectoEquipableHabilidad (private val habilidad: Habilidad) : EfectoObjetoEquipable(){ + override fun ejecutar() { + GameState.jugador.habilidades.add(habilidad) + } + override fun desequipar() { + GameState.jugador.habilidades.remove(habilidad) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoObjetoAtacar.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoObjetoAtacar.kt new file mode 100644 index 0000000000000000000000000000000000000000..b6b49b6614690a10356b53c4ea693f27d19b909a --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/objeto/efectoObjeto/EfectoObjetoAtacar.kt @@ -0,0 +1,9 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto + +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState + +class EfectoObjetoAtacar (private val ptosAtaque : Int): EfectoObjeto(){ + override fun ejecutar() { + GameState.eventoActual.actualizarResistencia(-ptosAtaque) + } +} \ No newline at end of file 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 5bd73bf947d2bf12ace3d6f6de69e2f6dd687822..5ca7f86e3edc003f8dbcc0b4f81ff987d8d7c53a 100644 --- a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioObjetos.kt @@ -2,43 +2,54 @@ import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo +import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.Habilidad +import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoBuffo import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.* import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableAumento +import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableHabilidad +import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoObjetoAtacar 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 10 monedas si consigues completar la partida.", - coste = 10, - 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, - 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, - 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, - imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo - ), + //****************************************** + // E Q U I P A B L E S + //****************************************** 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 ), + 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 3 puntos", + efecto = EfectoEquipableAumento(3, Atributo.Vida), + imagen = R.drawable.asi_objeto_casco + ), + 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 5 puntos.", + efecto = EfectoEquipableAumento(5, Atributo.Vida), + imagen = R.drawable.asi_objeto_escudo + ), + ObjetoEquipable( + nombre = "Puñal Vacceo", + descripcion = "Espada corta, tÃpica de diseño celtibérico. Mientras está equipada añade la habilidad \"Letalidad\" para su uso en combate.", + efecto = EfectoEquipableHabilidad( + Habilidad( + "Letalidad", + "Aumenta la probabilidad de realizar un golpe crÃtico a un 30% por dos turnos", + EfectoBuffo(Atributo.Critico, 22, 2), + energia = 2 + ) + ), + imagen = R.drawable.asi_objeto_daga + ), + //********************************************** + // C O N S U M I B L E S + //********************************************** 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.", @@ -57,18 +68,54 @@ object RepositorioObjetos { 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 + ObjetoConsumible( + nombre = "Poción de Veneno II", + descripcion = "Según las leyendas, los vacceos preparaban este brebaje para impregnar sus armas, asegurando que incluso un rasguño pudiera derrotar a un enemigo. Hace 2 de daño al enemigo.", + efecto = EfectoObjetoAtacar(2), + imagen = R.drawable.asi_objeto_veneno2 ), - 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 + //********************************** + // D E V A L O R + //********************************** + ObjetoDeValor( + nombre = "Vasito de barro cocido", + descripcion = "Objeto de gran valor. Se convierte en 10 monedas si consigues completar la partida.", + coste = 10, + 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, + 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, + 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, + 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 + ), + 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 + ), + //********************************************** + // D E U T I L I D A D + //********************************************** 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.", @@ -83,12 +130,6 @@ object RepositorioObjetos { nombre = "Pala Vaccea", descripcion = "Una antigua pala con marcas de uso, forjada con madera resistente y un metal desgastado por el tiempo. Parece estar llena de historia.", imagen = R.drawable.asi_objeto_pala - ), - 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 ) ).associateBy { it.nombre } } diff --git a/app/src/main/res/drawable-nodpi/asi_objeto_veneno2.png b/app/src/main/res/drawable-nodpi/asi_objeto_veneno2.png new file mode 100644 index 0000000000000000000000000000000000000000..0babd40946a9d35ce491dd830beadd79cd4dafca Binary files /dev/null and b/app/src/main/res/drawable-nodpi/asi_objeto_veneno2.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_00.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_00.png new file mode 100644 index 0000000000000000000000000000000000000000..cebe6fdc3a8655c4022d254e0f6c21ef956dbf05 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_00.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_01.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_01.png new file mode 100644 index 0000000000000000000000000000000000000000..f58354335e888170b79ad8915939a9713f928db2 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_01.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_02.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_02.png new file mode 100644 index 0000000000000000000000000000000000000000..dba03b3972f4357369a985a404afeac60b35fb50 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_02.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_03.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_03.png new file mode 100644 index 0000000000000000000000000000000000000000..d6cfc8f9037caa1c12614cd1c677272c8703fd57 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_03.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_04.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_04.png new file mode 100644 index 0000000000000000000000000000000000000000..fc97bbd84699a9f052009272cc72fb2e4349f644 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_04.png differ diff --git a/app/src/main/res/drawable-nodpi/monster_wolf_idle_05.png b/app/src/main/res/drawable-nodpi/monster_wolf_idle_05.png new file mode 100644 index 0000000000000000000000000000000000000000..415d12b71dd2fdb8b11b8c63ae0d4be099f205df Binary files /dev/null and b/app/src/main/res/drawable-nodpi/monster_wolf_idle_05.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_01.png b/app/src/main/res/drawable-nodpi/skeleton_attack_01.png new file mode 100644 index 0000000000000000000000000000000000000000..19801cb86f9eacbc98d95e76cfec7ae98762077f Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_01.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_02.png b/app/src/main/res/drawable-nodpi/skeleton_attack_02.png new file mode 100644 index 0000000000000000000000000000000000000000..c33c5bdff6514c0b632a9a5602bacf31ec9da3a3 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_02.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_03.png b/app/src/main/res/drawable-nodpi/skeleton_attack_03.png new file mode 100644 index 0000000000000000000000000000000000000000..e60fe4ea2586541d74a5da770f6a0313a3cf0072 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_03.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_04.png b/app/src/main/res/drawable-nodpi/skeleton_attack_04.png new file mode 100644 index 0000000000000000000000000000000000000000..818f127f7317436b70a6e4702512578b3bb715f7 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_04.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_05.png b/app/src/main/res/drawable-nodpi/skeleton_attack_05.png new file mode 100644 index 0000000000000000000000000000000000000000..1678bc479c16209b35b22fa242152784cb15501f Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_05.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_06.png b/app/src/main/res/drawable-nodpi/skeleton_attack_06.png new file mode 100644 index 0000000000000000000000000000000000000000..450d56e0091b34ba21fa5a88e05e75085b1eb6b1 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_06.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_07.png b/app/src/main/res/drawable-nodpi/skeleton_attack_07.png new file mode 100644 index 0000000000000000000000000000000000000000..416309da36f918e26c6b22ab6641e0297cabce47 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_07.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_08.png b/app/src/main/res/drawable-nodpi/skeleton_attack_08.png new file mode 100644 index 0000000000000000000000000000000000000000..3696dc8ced4867aa48812f09e0f2c010a0ac32f1 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_08.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_09.png b/app/src/main/res/drawable-nodpi/skeleton_attack_09.png new file mode 100644 index 0000000000000000000000000000000000000000..30bfc4b4cc1bcfe243a09005014e4065f0e5b938 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_09.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_10.png b/app/src/main/res/drawable-nodpi/skeleton_attack_10.png new file mode 100644 index 0000000000000000000000000000000000000000..77c6d1ce15ef309ca7c6839de3339b4841a3479b Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_10.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_11.png b/app/src/main/res/drawable-nodpi/skeleton_attack_11.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf9be885d8060cf57a3bec6d9d471a18155e72e Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_11.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_12.png b/app/src/main/res/drawable-nodpi/skeleton_attack_12.png new file mode 100644 index 0000000000000000000000000000000000000000..8027bd8d15fed0beffabaac1418cd012b5dca961 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_12.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_attack_13.png b/app/src/main/res/drawable-nodpi/skeleton_attack_13.png new file mode 100644 index 0000000000000000000000000000000000000000..6c14d89e9d4bbace63b5f367a33e80677752b122 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_attack_13.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_idle_00.png b/app/src/main/res/drawable-nodpi/skeleton_idle_00.png new file mode 100644 index 0000000000000000000000000000000000000000..94c2af31fd531f11277d93e18c687b519238e4c2 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_idle_00.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_idle_01.png b/app/src/main/res/drawable-nodpi/skeleton_idle_01.png new file mode 100644 index 0000000000000000000000000000000000000000..59cc596314dd6d602f19ff0659c91e0fa5ee7dc1 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_idle_01.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_idle_02.png b/app/src/main/res/drawable-nodpi/skeleton_idle_02.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2280e11027d15b824d6e6da740368341f8cbb1 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_idle_02.png differ diff --git a/app/src/main/res/drawable-nodpi/skeleton_idle_03.png b/app/src/main/res/drawable-nodpi/skeleton_idle_03.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c7cc437f2fe31e5090c8518df3c23bbf2ee6f0 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/skeleton_idle_03.png differ diff --git a/app/src/main/res/drawable/asi_objeto_daga.png b/app/src/main/res/drawable/asi_objeto_daga.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4e3028a331c6e737ea063628065816802e2629 Binary files /dev/null and b/app/src/main/res/drawable/asi_objeto_daga.png differ diff --git a/app/src/main/res/drawable/monster_skeleton_attack.xml b/app/src/main/res/drawable/monster_skeleton_attack.xml new file mode 100644 index 0000000000000000000000000000000000000000..a41feddbd6e416269490a0c0d34390f6b4930ccf --- /dev/null +++ b/app/src/main/res/drawable/monster_skeleton_attack.xml @@ -0,0 +1,18 @@ +<animation-list xmlns:android="http://schemas.android.com/apk/res/android" + android:oneshot="false"> + + <item android:drawable="@drawable/skeleton_attack_01" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_02" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_03" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_04" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_05" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_06" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_07" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_08" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_09" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_10" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_11" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_12" android:duration="150" /> + <item android:drawable="@drawable/skeleton_attack_13" android:duration="150" /> + +</animation-list> \ No newline at end of file diff --git a/app/src/main/res/drawable/monster_skeleton_idle.xml b/app/src/main/res/drawable/monster_skeleton_idle.xml new file mode 100644 index 0000000000000000000000000000000000000000..61853e207604adfbd78b9cd5ff265a4ac8c9e864 --- /dev/null +++ b/app/src/main/res/drawable/monster_skeleton_idle.xml @@ -0,0 +1,9 @@ +<animation-list xmlns:android="http://schemas.android.com/apk/res/android" + android:oneshot="false"> + + <item android:drawable="@drawable/skeleton_idle_00" android:duration="200" /> + <item android:drawable="@drawable/skeleton_idle_01" android:duration="200" /> + <item android:drawable="@drawable/skeleton_idle_02" android:duration="200" /> + <item android:drawable="@drawable/skeleton_idle_03" android:duration="200" /> + +</animation-list> \ No newline at end of file