From 59339182b9fd9ee9d50171b93dec5aa8bf04e7d9 Mon Sep 17 00:00:00 2001 From: diegval <diego.valladolid@estudiantes.uva.es> Date: Sat, 23 Nov 2024 15:01:50 +0100 Subject: [PATCH] Feature: metal con dos habilidades, efecto de regeneracion para enemigos y arreglado bug de generacion de eventos --- .../model/GeneradorDeEventos.kt | 19 +++--- .../model/GestorCombate.kt | 60 +++++++++++++----- .../model/efecto/EfectoRegeneracionEnemigo.kt | 14 ++++ .../model/eventoFactory/CombateFactory.kt | 39 ++++++++---- .../model/eventoFactory/DescansoFactory.kt | 1 - .../model/eventoFactory/Evento.kt | 3 + .../model/eventoFactory/EventoDescanso.kt | 4 +- .../res/drawable/effect_regeneracion_00.png | Bin 0 -> 292 bytes .../res/drawable/effect_regeneracion_01.png | Bin 0 -> 397 bytes .../res/drawable/effect_regeneracion_010.png | Bin 0 -> 933 bytes .../res/drawable/effect_regeneracion_011.png | Bin 0 -> 513 bytes .../res/drawable/effect_regeneracion_012.png | Bin 0 -> 346 bytes .../res/drawable/effect_regeneracion_02.png | Bin 0 -> 801 bytes .../res/drawable/effect_regeneracion_03.png | Bin 0 -> 1514 bytes .../res/drawable/effect_regeneracion_04.png | Bin 0 -> 2772 bytes .../res/drawable/effect_regeneracion_05.png | Bin 0 -> 3080 bytes .../res/drawable/effect_regeneracion_06.png | Bin 0 -> 3068 bytes .../res/drawable/effect_regeneracion_07.png | Bin 0 -> 3438 bytes .../res/drawable/effect_regeneracion_08.png | Bin 0 -> 2546 bytes .../res/drawable/effect_regeneracion_09.png | Bin 0 -> 1629 bytes .../effect_regeneracion_animation.xml | 17 +++++ 21 files changed, 116 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt create mode 100644 app/src/main/res/drawable/effect_regeneracion_00.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_01.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_010.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_011.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_012.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_02.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_03.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_04.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_05.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_06.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_07.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_08.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_09.png create mode 100644 app/src/main/res/drawable/effect_regeneracion_animation.xml 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 626d9a4..9ea2add 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 @@ -30,16 +30,20 @@ object GeneradorDeEventos { fun generarEventos() { val eventosGenerados = ArrayList<Evento>() + historialTipos = mutableListOf() while (eventosGenerados.size < CANTIDAD) { val tipoSeleccionado = seleccionarTipoEvento() + + if (historialTipos.isNotEmpty() && tipoSeleccionado == historialTipos.last()) { + continue + } + val nuevoEvento = EventoFactorySelector.obtenerFactory(tipoSeleccionado).generarEvento() - if (historialTipos.lastOrNull() != tipoSeleccionado || eventosGenerados.isEmpty()) { - if (!eventosGenerados.contains(nuevoEvento)) { - eventosGenerados.add(nuevoEvento) - historialTipos.add(tipoSeleccionado) - } + if (!eventosGenerados.contains(nuevoEvento)) { + eventosGenerados.add(nuevoEvento) + historialTipos.add(tipoSeleccionado) } } @@ -78,11 +82,6 @@ object GeneradorDeEventos { val random = Random.nextDouble() val tipoSeleccionado = acumulado.first { random <= it.first }.second - val ultimosDos = historialTipos.takeLast(2) - if (tipoSeleccionado in ultimosDos) { - return seleccionarTipoEvento() - } - return tipoSeleccionado } 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 1d45f96..6998478 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 @@ -1,6 +1,7 @@ package com.example.ellegadodepintia.exploradoresDePintia.model +import android.animation.ObjectAnimator import android.graphics.drawable.AnimationDrawable import android.os.Handler import android.os.Looper @@ -10,12 +11,13 @@ import com.example.ellegadodepintia.R 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.eventoFactory.EventoCombate import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoHabilidad object GestorCombate { - lateinit var evento : EventoCombate + lateinit var evento: EventoCombate private var turnoJugador = true fun cargarAnimacionesAtaqueProtagonista() { @@ -62,6 +64,24 @@ object GestorCombate { }, ataqueDuracion.toLong()) } + fun cargarAnimacionsRegeneracionEnemigo() { + val imagenEvento = context!!.findViewById<ImageView>(R.id.imagenEvento) + val imagenEfecto = context!!.findViewById<ImageView>(R.id.imagenEfectoEvento) + + imagenEvento?.let { + val salto = ObjectAnimator.ofFloat(it, "translationY", 0f, -40f, 0f) + salto.duration = 300 + salto.start() + + imagenEfecto?.setImageResource(R.drawable.effect_regeneracion_animation) + val efectoAnimacion = imagenEfecto?.drawable as? AnimationDrawable + efectoAnimacion?.start() + Handler(Looper.getMainLooper()).postDelayed({ + imagenEfecto?.setImageDrawable(null) + }, 600) + } + } + fun calcularAtaque(ataqueBase: Int): Int { val ataqueFinal: Int val resultadoTirada = (0..100).random() @@ -104,36 +124,46 @@ object GestorCombate { fun habilidadProtagonista(nombre: String, efecto: EfectoHabilidad, energia: Int) { val textoResultado = context!!.findViewById<TextView>(R.id.textoResultado) - if(GameState.jugador.atributos[Atributo.Energia]!! >= energia){ + if (GameState.jugador.atributos[Atributo.Energia]!! >= energia) { turnoJugador = false "${textoResultado.text} \n\n Se ha utilizado $nombre".also { textoResultado.text = it } restarTurnoBuffos() efecto.ejecutar() GameState.jugador.actualizarAtributo(Atributo.Energia, -energia) comenzarAccionEnemigo() - }else{ + } else { "${textoResultado.text} \n\n EnergÃa insuficiente".also { textoResultado.text = it } } } - private fun restarTurnoBuffos(){ + private fun restarTurnoBuffos() { for (buffo in GameState.jugador.buffos) { - buffo.pasarTurno() + buffo.pasarTurno() } } - private fun accionEnemigo(){ - val textoResultado = context!!.findViewById<TextView>(R.id.textoResultado) - val efectoAtaque = evento.acciones.random().ejecutar() - if(GameState.jugador.atributos[Atributo.Vida]!! <= 0){ - Handler(Looper.getMainLooper()).postDelayed({ - turnoJugador = true - }, 2000) - } else { + private fun accionEnemigo() { + val textoResultado = context!!.findViewById<TextView>(R.id.textoResultado) + val efectoAtaque = seleccionarAccionEnemigo().ejecutar() + if (GameState.jugador.atributos[Atributo.Vida]!! <= 0) { + Handler(Looper.getMainLooper()).postDelayed({ turnoJugador = true - "${textoResultado.text} \n\n $efectoAtaque".also { textoResultado.text = it } - } + }, 2000) + } else { + turnoJugador = true + "${textoResultado.text} \n\n $efectoAtaque".also { textoResultado.text = it } + } + } + + private fun seleccionarAccionEnemigo(): Efecto{ + val tieneRecuperacion = evento.acciones.any {it is EfectoRegeneracionEnemigo } + val porcentajeVida = GameState.eventoActual.resistenciaActual/GameState.eventoActual.resistenciaMax.toDouble() + return if(tieneRecuperacion && porcentajeVida <= 0.3){ + evento.acciones.random() + }else{ + evento.acciones.filterNot { it is EfectoRegeneracionEnemigo }.random() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt new file mode 100644 index 0000000..d3e0ae6 --- /dev/null +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt @@ -0,0 +1,14 @@ +package com.example.ellegadodepintia.exploradoresDePintia.model.efecto + +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate + +class EfectoRegeneracionEnemigo(private val mensajeCuracion: String,private val cantidad: Int) : Efecto(100) { + override fun ejecutar(): String { + GestorCombate.cargarAnimacionsRegeneracionEnemigo() + + GameState.eventoActual.actualizarResistencia(cantidad) + + return mensajeCuracion + } +} \ 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 ba6004a..91a89b6 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 @@ -5,16 +5,25 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion import com.example.ellegadodepintia.exploradoresDePintia.model.OpcionCombate +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.Efecto import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoAtaqueEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoAtaqueProtagonista import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHabilidadesProtagonista import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHuirProtagonista import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoInvestigarEnemigo +import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRegeneracionEnemigo + +data class CombateInfo( + val imagenIdle: Int, + val imagenAtaque: Int, + val opciones: List<Opcion>, + val habilidades: List<Efecto> +) class CombateFactory : EventoFactory { private val combatesMap = mapOf( - "El Metal Volador es una criatura formada por fragmentos de metal antiguo. Protege los secretos del yacimiento de Pintia." to Triple( + "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( @@ -26,7 +35,7 @@ class CombateFactory : EventoFactory { Opcion( descripcion = "Investigar", atributoRequerida = Atributo.Investigacion, - EfectoInvestigarEnemigo(100) + efecto = EfectoInvestigarEnemigo(100) ), Opcion( descripcion = "Habilidades", @@ -38,6 +47,10 @@ class CombateFactory : EventoFactory { 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()) ) ), ) @@ -48,30 +61,28 @@ class CombateFactory : EventoFactory { override fun generarEvento(): EventoCombate { val descripcion = generarDescripcion() + val combateInfo = combatesMap[descripcion] ?: throw IllegalArgumentException("No se encontró información de combate") + return EventoCombate( descripcion = descripcion, dificultad = 0, - opciones = generarOpciones(descripcion), - imagenAtaque = generarImagenAtaque(descripcion), - imagen = generarImagen(descripcion), + opciones = combateInfo.opciones.toMutableList(), + imagenAtaque = combateInfo.imagenAtaque, + imagen = combateInfo.imagenIdle, resistenciaMax = (5..10).random(), ataque = (1..2).random(), finalizado = false, - acciones = mutableListOf(EfectoAtaqueEnemigo(70)) + acciones = combateInfo.habilidades.toMutableList() ) } override fun generarOpciones(descripcion: String): MutableList<Opcion> { - return combatesMap[descripcion]?.third?.take(4)?.toMutableList() - ?: mutableListOf() + val combateInfo = combatesMap[descripcion] ?: return mutableListOf() + return combateInfo.opciones.take(4).toMutableList() } override fun generarImagen(descripcion: String): Int { - return combatesMap[descripcion]?.first!! - } - - private fun generarImagenAtaque(descripcion: String): Int { - return combatesMap[descripcion]?.second!! + return combatesMap[descripcion]!!.imagenIdle } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt index 4876782..1e4b78b 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/DescansoFactory.kt @@ -33,7 +33,6 @@ class DescansoFactory : EventoFactory { override fun generarEvento(): EventoDescanso { return EventoDescanso( - id = (0..Int.MAX_VALUE).random(), descripcion = generarDescripcion(), dificultad = 0, opciones = generarOpciones(descripcion), 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 7eba605..702fac9 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 @@ -25,6 +25,9 @@ abstract class Evento( fun actualizarResistencia(valor : Int){ resistenciaActual += valor + if(resistenciaActual >= resistenciaMax){ + resistenciaActual = resistenciaMax + } notifyObservers() } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt index dc510df..04c021b 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoDescanso.kt @@ -1,15 +1,17 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion +import java.util.UUID class EventoDescanso( - 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) { + val id: String = UUID.randomUUID().toString() + 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/res/drawable/effect_regeneracion_00.png b/app/src/main/res/drawable/effect_regeneracion_00.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb349e7880e17e77d3202fc3dd5f3835d76db9e GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=uRUEHLn`9lPTR=a>>$9hkmXdN z>=jShDUXGEICSb8p1et4D%-A7Zf{=wyj1i5+Nba1Sr#xpW$AI)$)M+`oWOF5Q=+km zaSxN*0gfrc224+xDp-3O1U1xwGOQoC5(IC2yZ*d(PQ>5!KO>l#E;Pimct}s+u(AE| z&n#|9<ZnjC2_;pm2H8^oMV5bKNIUQ&;nm0Q9}F25S28jD7tT1aMs-G%`XL6PJ_e6p zoLfy561h_Nr5rB#uUN~-8LUu!fnideQ!cN^45pjSY!ki+XJtDa5;-Af(y(NHKs2+^ oGKX&q7*+nZ+>)ALz`CiO+nLeAF}g755zyNVp00i_>zopr04r^5A^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_01.png b/app/src/main/res/drawable/effect_regeneracion_01.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc4d55d75de910665fdb09ea550ec2c532c0b95 GIT binary patch literal 397 zcmV;80doF{P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00040Nkl<ZcwX(8 z(G9{d3`E-z7>7BSlQ|fN5r80qqAF_bi=0~a@k_1bp6{Hr>yrGpCfC0Z03DE=03(px z033ph03(o`03(px06Ya40Y)G>0Y)IX0eA{90*rt$fy?ds+Ai_DKioKP+D85$%8DN( zULZ^ZP+jl^p@dLstbk1iP(V~SNJXUvpoOI!X{R`#x<KN9)Buoq5yAm8PmI$du<cau zzEGZ##6;Wm_IWn|MnsI%62J&ON$pwImh7!OW9oo*itpvw@}hGD!VG}s2#X6qIK>Iz z_sVR2<n`iU8Ud*w>+9~`9Pk4``HFlr+@$}T0g!H>_nlzI4Y02320;6rpoJ%mkrud1 z0H}zOI#&)D5rWnd07@=O9UTy*lc)|l03{ctjt+>@NmK_NfRc++M+ZddB&vfBK*>d^ rqXVLJ64gNmpyZ;|(E(99iRyR**BO98W6{1p00000NkvXXu0mjf&tj#= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_010.png b/app/src/main/res/drawable/effect_regeneracion_010.png new file mode 100644 index 0000000000000000000000000000000000000000..560e8c8fbd67f9becdf18419d8c16dd18df905a2 GIT binary patch literal 933 zcmV;W16urvP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000AQNkl<ZcwX(A z&uSDw5XL82Hzp#=>Ot@#_!f$I@D&t1dh!)~2w%aIM?qh~gNVL`;6?DDiy|gwvst$$ z6x4QRrt7Qjn%14kB_UJOQ{S)tboK1+R0IFn8Myvx1Tbd6zzK{cFz^Hzn_%%0m_59+ z;w+rM`PjQZE)OJ8h?tTPvI9WHm+nE?0ic3PMxT6j2XOuI-MYq4m#b?2db7q$i+2IQ zB|yTj-rBDd;%I(S|6U%SR>!}V71AHjj6&_RW&lU@;M%m>pIz7x|L5mP_3hP%jpu3l zg?E-@1%T3z*?Wt3DS=QFmBPg<XW4K#U!3a$p}iDM*SyQcH3Lxb5=I}<cg+A2K#^bk zUY@J{P^fp5yGqS117?rbBkp<w>_eQUnYKZ20}yL)vFnH^E*FN4+-nAaJOr^NFsS{_ zr}tN1Uc7_1*rXm1QjbM6*Y&2-y8Z0I>c{7!&R&zf1S9}7Vkt11nkxaIH9tLn3uiQZ zLy4`bZMNX)l1hLkPfHdg0pNO-1B+KSgzJ)MdM?#I|J^ih$FeO8fN-nxg0PW&>uvU6 zHmw2hz@?cqLm(~yV$^e8r-sN!>>E$+t-ii|59?9g&__g5p;(w~q(Q-NsjhXM3) zLen~*!%hW2j+ku#tSOj71V7v2Lli*hV9LXCi0vAcEoTB4KrRs;>xBJEQ?6SDKxT*b ztYQLSsWp#?cde=Q(F8ya9da1?S4DRD1p^?#G=j>5h-CytVKqfm8|AD3<cm&u5Roq= zayZuHv|LwP<1x^12Jk07^l6Vgh*(ZyG3R16&ev1kJHi0yq2UV%f-=1{smmh883c%& zM>N}A+u9}ooCWd?Or4VJ)xr-z5m6S~)KX9ZXsYR^7m=})MY03wBZzJ2qY6McexlS< z9JFKwa*rB7+nE4)n8nt+w9Ei3Vo->EG*?#uTq<an=3$HO^WI)v0dVh-k&iXPKE;z? zZUC&&&rw>)8ZH13@l88~9Jl3HZ4SRLYHhJBDh>c~K-v<Fy~~qovbS6Ro5k}dJ|5et zO9p5FbY%(kf!)cOYvC8GG;1R^MF1crf{3x$76D*!ly{Vz_3ye1w28Dv-=qGE00?J; z+z~~y>%S@iRGh|s1fZd`%{F5OY;$xq+QtmfP}*jj!Dql<lyg8|p0^bh00000NkvXX Hu0mjfS;DbW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_011.png b/app/src/main/res/drawable/effect_regeneracion_011.png new file mode 100644 index 0000000000000000000000000000000000000000..167b8b410c6f39279474ab98fa05146bf1d48221 GIT binary patch literal 513 zcmV+c0{;DpP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0005VNkl<ZcwX(8 z(QN}U3`3I<GEV2{oSh@%WP}v{FmO0rU{j(*J9d8~%i<Fy^nAZ9{&!zo|7`=<4p^MP z9)ZOTu$Q281RlRX@7Lc`T7&fRGJa|ZbO35W=uV>pKnqX<lLAnSFU_I@D58!oP%pWb zBdGw`;ximV1<<06{GK5`WCReASFu^b>)oLas3T$716d%#0C>cEU4)zu1Ar9ajrF+Y zYXB68b<_|bUkLzl)RX|u9ro;-X#pH9@A;}U13=~sv1D&7>wYtUBXw3Wz2cd1E&$9z zRJq&$X72uw-vZfAa62HoVD^0*Ko8M6=cCX2)jvqBFVUt0EJ=HyM#Z4bY66HVbd<as zz$l$i)iJdL7)yC-01Vem3jp2rpI}h{Fs$h5rssYW0OpH~M>ylG835}=h9Sa}g9gA; zgz{`RfTQg_kB~~SS9f;<I3M;bo{=D!0c44Yc3TPnt6QSQr$32VK}5Q3Xa__Juerkk zFuGnxp%&eG<w3xO13-$oij5SXz5_l9WOft<E_DE7JW#>scqst1_y}N901<*vs8Rr> zSTzJW0JLN5_zi$fbhdok0kd_CUGH`Po9Jx$mUqBE$xHA-TjUf600000NkvXXu0mjf DrGVAz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_012.png b/app/src/main/res/drawable/effect_regeneracion_012.png new file mode 100644 index 0000000000000000000000000000000000000000..3b92a8410ab5563a0a510d0488ab94adc25bb8b7 GIT binary patch literal 346 zcmV-g0j2(lP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0003YNkl<ZcwX(9 z!3~2z3<RNsl#@DAXX;2fl#qmP!~>hX=+++I#<IubLps)_`Lj0fe*pjnG$+6cG#7wF zkQHDBniF6JnhT)+3fvy|_x60*m?bULt@+)4DFDZH0>H?rIjqDm100$!a|T?2J<NcS zt96t+3!w~vEO1Kz*=Zj^vIMX<qJm%xAglcEdjL?8bj^bSu9H*MjR7i>u6Z!Pb#kh@ zF+fGqH4g^3PEJ)f2B=87=D`5P<W!dvidv#MWCplGkO7F2pCvv8z;)WvOVKJ2QU?56 z-;uDV2QaevGXDmz7&*NGSDHKXt{njNN>~9<H_sXHC17R1nVpWt03b@NT090+n`pEj s42Tk|7LNhdCK~Mr1ER#L#kV)$14vLnK^VP+M*si-07*qoM6N<$g6_+ThyVZp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_02.png b/app/src/main/res/drawable/effect_regeneracion_02.png new file mode 100644 index 0000000000000000000000000000000000000000..a0faad3bb6bae8939fbe8de17a49211423c6080c GIT binary patch literal 801 zcmV++1K#|JP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0008$Nkl<ZcwX&T z&1%(95T4wm4Yge5qO{gU#m6Wr*k`D#LKi-O;G&Pwh2R5pA-K|KsG#Cwh%Wpo%B5be zC2ej_&!ikUhTb-FIujBy+2&+2^UXJNX1)k|{zN^G9~1y(K+h4-66iSrv<YenXbJQj z0WE=^6F_ePEdecoo+Hr85*Tf5n1vfL43Y?n+`!@Mk79m`84e|uAN=rM3VAkz<3Bn4 z-2WirtBBFi;QjAbb{?7K)dfh031pMJeD!7TfZbnqgLj`jHcPjY(&57TJv}^u-)}wz z{m0pIAV@GF$gz1Dez3b~@Etnrp5t*2W@cdWBZKkV&*cB1O=l08z|8`(L-T_7vxR3I zZ5<P`qr7Zrr~hU!epereDhpZ(z(w_1r7JeKI32+3qyVryp@866fNc8ulD7}AFaWbe z>DUMc6@csZlX=W#0RS05y|XDG+<&oYu#bFu^`6CF9}E_Q?(UWtSkQKQ^ZY6dX`)wM z$t(ciPbe9^$|?W-o$ZHa5JzIuAR7RbpeScYPd5y;X;SRB8USP!2199>l;H7fYXOid zsVYFN1%R5#(DMpFC~}nVnxZqsCwEqq0ZlZqkf7NIp^Ka-gSYTX3@_IWx)A_yJTC0` z8ma|c79?j$iIf0NZ;9RfvcGnGC9J-6GmGF-*J{yasA_!u`4bb_@wM*iO37%*;&mCY z><qx{FRv_GMVF@G)d9hYBS{*=<a@><l(GYWtLxI}e0!s)H?C>Mi&iwrivLQ-*BPBY zIQ@0XvLLYo;M5xgfGT48l6ZP6DOuzmUl*j>ZL|b9L`>WOhifTdA3-*`M?xNFX8@;^ z?e`M|fiv@>lb|n;W7fFpweB@ZImgZb_w#DU4w1wufrOqF0{|WJ?`*EYB{a}R2O(}J zCGCkaK+<t8+X?^|l3lf<4Crd+xcpWIa3R@MJIa8rW{%5mWdIkFUA3bO=xXM;{8k2V fA=y<sy=TA~z<y~^`}aj#00000NkvXXu0mjfa)oik literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_03.png b/app/src/main/res/drawable/effect_regeneracion_03.png new file mode 100644 index 0000000000000000000000000000000000000000..7a509fab616c0e1c813f5c1b4400bd8b001df479 GIT binary patch literal 1514 zcmV<G1r_><P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000HCNkl<ZcwX&U zO>7%Q6n^V<ytb3LF%G0j8W1g@3L+|T;D91jC<r0S5g{(+g2bs(PX&ns;(!F4Dse*M z0vCih0zwE16^b};Kq?BT0$KziNdqxX^J9A*dx!bPeP+CA<8eD)EO}R|6xXve?|t*V z_rCY+(11VAfcsA|05Jmw9Dz6l2AlwK5{yG24uJtjAP#{6CqP^U;t+^KV89XhUqfK} z#fL>YKSUxB)ToKJtEiTC)aTXr=6h;mPdC3Fxo$ssRAk48l+#|$rFu0`OLY($JI()d zhZ3~$XSHWQL<+#6mye0UU1{>S0`f+rV@tJ`)8(~V3kW!#Oebh`%2VIFDTgYhI{kj; zYwPw}-*DpjIWatuqSUb4X7u6L9vA!X@hFpZ$gdI=SL)R819`hX{qgp>>)OF=sckoC zd$ner3048P<J2Ppw*}|DeMxo8DfxNrH=m~OP1D#d4mIjBu9pL9Gz5M3!ly>(W8X|Z zNdV!}TVENyW18EoZHAlAAIzw8L03>X;W{*Pe}<d{(b7*<x^FH+r8Pl;OnOTTRr=-i zFOAMe=#1=7k$<I57he6s=$*&`xcimIR2ug;>TQ$;_2D?4^?#a~{_Ha!?{Wea0Wr_a zDM{8aK-fEfr$?&`W$Sss3YvP{hi~ZU2ggO>Hc5f20DuYl8ZL!k3o1gkkR%s>r<-?p z`DdS|4yUQ+3z|Rii4}Wwc39bv0RTmp-ub4rCvI+f7O|h8%?(-W>w?Zb_n#ApZ5X3+ zhID>xa)?Iv!TIJEZn9}Am=gxhl;WM%Spfi!z=?3Ze(>F=1a5O;Dj}T+Xz_f7F1~SA zoe9uT|B);3&rK!B!P?m@WrrQ<yrYsPKfMB>rvMx|^Q1r}DBPN$;@^RB)<@EtIg(Kz z;9($&f3<_y>2^)N?<oLCfVf>yd-412t`ivENBI;|6z0aDA4FF`MhXDx^yaePmIILB zvg0Wg-<<@{UdAGkLOel4K|qx*R`wK6CXVwOD-1Yz`cahwAX~$=9dt&9ht$;*<X%Q1 zKj=*mmqA@Z+tLG80DzNVfWOh$r31i%WX2_Qccz_P;n|18$fUO`WM<!dLM2WB-3_37 zfo%l<raELWVt(PJ&)fDzmDpPGsrccyM(2S6Xp`%eMjLC;7kD`-v1Ld>ZE{8FhVtRH zMh2N2fP|HsmU8uKr>849E_<d7U_b-eFNB>$H~?r{eStLqa69=!87fRBsZy4GzEpC$ z=rIA2*I=*Q0Z)ZgnCdK<ZMDbN0D$ojKB)OnavSTS)dY2$un;mc4-C`#%8r^5=<g#u zatEX|mYt!E`G8dbSitDoAHYBY>ngAl8yHB4Cxq1bQ=hf$>}vqv7>gHfe_6`|gz~mf z9i5P|-KYiXc3BQ{eqa#MKU`~W(Dwl7Ah3kR5CjjD+~yUbsEzmrjq&JIhUkF=9?dzb ze+bVFkOR;%+nNqp4FRV1-22Bx%5!M>LX|KEYdSAOLEe11SXa&?!$TYB;)vO!YyWT} z#TuLAG3x*zfuW<j)<6UCjFvepnHjiaA3d$wV+P>I`AS;?WF3GtrqiTO`Nlc`xFJw< z>vGLlsPNn%k#HzK?hqX3CTQ`8ied|L1=J><(xr;As*D@}?hCr9)B4;1LlEx$$K@ET zCS@-(2h@iQwo(2V80!qs$7AKSosJ`K2p-pyGXp80Af6ziFb3n=uTO++B|e=M)&aog zY&8F<ftcrCfABr}1+>X{AZv9AUHr9b96FuoZSs9j0Kmaqul1j}*dRE~K%gSvb0@Z# zICCRwdIkU+10e7>x;y=W(~eAf;Zk@bPTb5pJqO@sjEmyk7=S2H?&mXN2K4joL}6RZ zfGAMz=QCmk^z-dRVOz|AC{XU_Ghznx^X)`oTg-qcQ10h5Vg~f{?L=YQzr$7{Za`m} Q%m4rY07*qoM6N<$f}oYjHvj+t literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_04.png b/app/src/main/res/drawable/effect_regeneracion_04.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5fc55768b9c59ce4be339f5cd60c2d7306c22f GIT binary patch literal 2772 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 a=l>UTn*NLtsa-Yz0000<MNUMnLSTZy`Z!bo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_05.png b/app/src/main/res/drawable/effect_regeneracion_05.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac51a595d3450c1ddb19df34ce826dd9ec2e9e6 GIT binary patch literal 3080 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 W(N(IFUsLG-0000<MNUMnLSTYM5zLAJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_06.png b/app/src/main/res/drawable/effect_regeneracion_06.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef2e1281858a29e1c50f7cd23ba54760d91845e GIT binary patch literal 3068 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 KMNUMnLSTYmtg<%% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_07.png b/app/src/main/res/drawable/effect_regeneracion_07.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c3e128f3a2850901ab5cb0b7677690aeca321e GIT binary patch literal 3438 zcmV-!4UzJRP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000d&Nkl<ZcwX&V z32ao?6}>a#v1i6R-Y~{sR%3RTEoNy5G$n{FRftGYq86!zMpau>DN7YKQBp-sQmIN? zRV}m<sS?qkfD&jBp)G_217WMpYIcml#{2H^jK|~Ocb<F4Z$5u!{&<mS;7OKc&!6}2 zJ@2mPJ_|kI%kqHhPY(fjXaNs60uNnas0|=}{Q}LEW|yz&YWGvOw}<@Vr)k%*`vUwS z6C!nOk(QVpN3jVuYOn61>TQRI>|Fyn#32z%DnBBQNF%EF!=WL0$3T=;zdIztjsL|` z?b@#o1noWHm2YXuqvFWZ(oNnLKY3fbrAy$q-W^8$WU)4Ef|Kk{E7g^`sr<K}4~d)r zV#qdTlxMuVT+5wcCx5p_UJp^HTcgf4KQ&(M3~L>eUVmK6ne33;;Jf7~JB9>^0Rxcw zRFP(P*{H{_QT_HKf&FIwez`Vvb{x54V(2@gN72W(DyY@#qe~@SRQl6>hVO-y<W6@| zLXw5zoPCd6Dea=vED=juHM;Xv>!8My0RaHzaYCvIPkm>ZRxsB=(=$@&iIF*UqpeMz z;-3!Rq(k5R)YSWmwyo6WO^+wH-%svt;WAyqdO9__a-x$GhQ|&n2&M!w8*rBIUZtgF z*yv|dCR4q~Ly2}fy?OW|eScP75D0VrvO@E9_K>HkoBTpKTdX+o<QOWL6-%QN<LP)= zD_N};I=Jp1Qa%7Oa*R!a(AwNHsO~Um0I162)PD2TC3?B2Kq{_+aM#^Q7n_@@wyBHS zgh^w?Cs@cOexQ7|%SC%iYG~7fJZkCcqW6zh(&1<OEC(?qDcwd*RX#fZ;{E~4Kj00Z z0L*^oLZ>`=EUz%#w~mzs0FZ%9)2O;r1itomI@8!hIYQA}Z5=e+<)CV}C!oA5#zx7p zu>qsoa-^Idn>vjCS<(;$#G(&YYAP`J0$eiM0&7qJc>2&9?Zv_=Qs~!<&j%^4DnB+c zQG)a5OP8s=tw&@9jp7^@N=UTQtsC9+-25CWOiR1R<BrtSiePG^?Z+!=MPUY2cDSkd zR6Cv8v^Pk8qnH%QeftdnPCa#mojN--TC*^nj$Uh|mlyV$yv@?LElwVpproOJuD7;P zrQ0o)zjnqOWWqR60D#j6Q2O=KXXogdIV0rfaE+Qy51p-Rrm_>BpnWo*Td38(Uu;@0 z(+{#h!#6C_vSuU@{17I%`Sd#N+zmIqx};ZmEGWziSpWh<`7cXa>DY$Qnc$_;_1d_k zL}>+_J@jC_dgz=4n&0ue3m2)O&QJT+^af1y9%?!sR11LeBOghUdAg~_PiHpovn>Am zO6~bYW8{1E!t$xBio<f!bM3My;?-2)r7<%dRA1Xe4w3)a61E;Ir**SN$j4OIhy+3; zrPa@)vVhrJR%oj7*y!CWKhWTxdf$cLmI||fujpg>4perjq7?Rtw1;xI^|m*t62#|v z5H^n8Vp+0dmDbav5kO{uk!9X0E~8f#O{O@TP3i+nC@t=cIy0CCAn)goX?b(vDJjJ& ztF(_6@3yets>;K3k?Ky>*V6~{KMA|PzGr|nIb9ZM&dB{x3<VLCM0(s`Rzq(ro+cGm zGY!X?cS<fux$rsmZn)~Erk&y2ZqoojI4FPjj-O&;EYg>Mb>Vv&ik$^nnNld2yt~^^ zyG~Tg;HZz%deh{VnL9>+oINd`;1ZW!`&U3VSl*;*cAA}@PWj16^v6@z0-1)>ZJW<0 zKyRR32ZZJQuhhnVEft=yAeaIG8;vVUpq9oSf*?3qqtgcfAD*nD>Em7W?yMcA_SWZa z#0c;QMjarmV#A|30)*tCOv50+Qs4?~dFUzudbpO{l#nQ0ar(nDtd#1q)7H5=En9DF z($tg%(?`%c@N}>F8by0Eg$f#?wkmJPh6kDA)YUebb&RUb166nF_|Xm-pxG6gZ+U_m zwWxz2Iy=<u(;jtEPNIX(UUSP*RgL<bwvh6+eNlN&x{IVd@;5q4&}ZRJjI9812f+|E zhgxbU373S6e7a(f1OS-}tW>ByO<4d;2^*~5w_2;K?h(}+(fWD!R&8(ruH6yU5$ypS z=rA++8PD+P81aVK6S0Bo1z6y4r&E^LSm-z>j&soMyI#5`I>)PT{#)wD^6O&|{x$^w ze-SAO9U25cROaBv#SWDBh>k5i(@M>a8nxB=0_+dWTCLL~Sp?pxe}-KPzrR_SL~F<7 z-P3MAb9jwbTh$}GMh?QTf>4}fQ~<y~fhu0|{N(&Vi3?#-=^Z@TB9#a0qcS*rvRt8= zQQqjZkPTo}=mMWT`lR-wN%?fFwwCNx8*QHWSE&o!)tP9M;B&Va&ibMPfQ5o9tjy1r z(fG^inn0(9miT6=Cn$yCJ7(+iNWgFv31a2R{i`)JQCPCqIMYcdf7sg`0fdekU%&;z z?b|N^mVUHKn>N-Z+t?VJC6IR5M~zO;?Ek_E3t!IpMuH5m0Au`&ILgmTpvyJwRDRhP z$p2>2AIoD30KHIfg_)1XONOT6YTt|1^ammIes2~8{c|Xo(k8eFOtbn9SX}Zj!5oXg zTzN6r^1}JOy1yv^^qVnbTXVCEa`R&Yofr#ewhT1`2*AgTfzy}@0Nfxi-AU+1D@yyK zzEJ=T^)6EY=uHYf#vA74+XKBlgsc2dd&ry{$;ZtAqPiIZVYjFq-0i)Dsaigp*(+=s zRE34f$7k6CK8DJ$aE4PBB3K|eK3TR$w#N0h!*g|JK`;uO+%ckALMe`S&!3tkskO4x zU4iP)tny(2P*Vp2PGW{&f5bq88x6F<z8*gnWoAl>3-vdia|m`fQWIn(pbCsWZE`1y zP7$2Jk~zr);sguL*ImIf0fY}1?Y3~LHVZ;X7f}5k`4_!F<_N2NiJk=6d9ysg_UQWn zGbgTph9}B#Nil*hw-LZk8P==3N|>M&=MEGgyghTf<PVrmHv>XQ0MzmksE(iOq+BuW zy>i_n$q6hjLz(h|07j`03fkhVax9MDkti#+J{*E0HHKhS@b6Ik1DIowCSaK|hFfXR z@;#Pt<*%tMfDJIb<Pvh_-qqTVXOE{=(RZ`*=*C`nWKy6aG-`s>mtjwLgO9ADb_hpY z8d(iDK}?x*BgRb_KtLN_+2)~hU$_atg&M(`0syCwGTI??FTQ|*#Ju_Ov~)x^y?44? z(otCG#R0+_2g_*oghXkEMy7|;L^|UJC6sxFav63l6k!{S`Z`hWLqMNxJh4`5a{H*U zuD2K9$}pTOgiV9`^oO*A;Rom_{Q@m@xuwOh6~?m&WSHxz(;PGLf!_o68ErVIag~At zUGDQ~lA(rtm(KYJ#nJU+qB=A&Ru2mRDzM~Hj=)C9|4%K=6x39j?76Xc`~^#Zi(GDL zm3$xsQL_P)qIb{rjk#sDC|cJ@yd8q@(s{{pW~jE|AYMU*{c_6RWQEu*#^~82ZSwTZ z4q_t~LTVWbg?S3ZWQ0mb;d4;d%L=k&YJ#O4KieUJLj8`?6`i6goY7?py>;Pa!3So$ zoB<Ms2PMouK(77_Pa^`L7shA~2u4O7R=_VoPVj^m^qI;P=sQMOLQ-y=jP`ahDOO2Q zob0*<!-E)M$b|HVQ5l1Y7{zx8qNzio1^_QtC&Boed3vU-SwQ^Wak`2Sw0P3Xgb6^v zoPZZtCbf!W(gOugZhSnYJ9=-6u$5utjzQ}SleSq@<)gho5fuPxb!Y|z2&;~`cv2K9 zQ{Z`3ae&9<=W7e627rdOA>dwYYL@IX>VwvLKh>ORkNWmVQ~>DfbM-bzmeUa!T!I>Z z`-$EGhPqVhOdV}=Zx4b4V{@Jla-88kR9E}#P9^Owt|w=_aG3$z6^IIeP~&Gr>4mcs zC@0=UdrRtMq(+U-oS_N=6Q`rc#@sU^2gL<$A3&kXRB3O0uvMo(_aGg`KcWHv`x@nL z{bdFG{q4du`uu#Oq|bRF4yerwUyi`VDO{+UF)WovB_u>tzQ1!oBV3{ez-SY`D*!*_ zfdrmYXZ|QvR~PoCM|5uJ;XA|+R-%|TXQsx|<dhVd>abt|e9wTZO>lquad;GmZTRS* z0Dzr25@T#Wai+M*b<-ahj_`zcUO`{)?iK7VUywrGj!Tg!UDZyLOKuc9$O40{JmelU z0Mxq!JVec(Vwa7QOZYVkqHvcZ)Z@{&+X#3@w?X=IB}Q)sg9d;!Tjc@;K&Yzl)0q6; z+ajpaaMAJh*<kKY6$qvFq{3KAin9kUS0WRfKjjVT?2wMpQTp8e0pB_wQ~+2RW^im` zjE<#eZ1tzWcY`s|0PBOI2;aRe7-u!64AkF;EC_}Y3_xTQxCoabjqV1+gu(h?c**P! z%HbAqKS19$o9P+)1JICIKz{@Y^&MD;)ou}>gum#}-*?`(03e=#KL9Ibre*%W2Y`9Q z7{M9BC9puBMdA<pt2lq}zO{gXDrWZk4*@WX)YtX7hZgX4Jz2AQJ@6LrUqCfmxo|!o Qvj6}907*qoM6N<$f{L(>NB{r; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_08.png b/app/src/main/res/drawable/effect_regeneracion_08.png new file mode 100644 index 0000000000000000000000000000000000000000..f8efd3c2802e593150dd27ead530eabe5de921ca GIT binary patch literal 2546 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 IM6N<$g1=YNWdHyG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_09.png b/app/src/main/res/drawable/effect_regeneracion_09.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c14e75f53098b0fdb281d52992a70bccc717b2 GIT binary patch literal 1629 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 b^P2wv&|)NgM|Lff00000NkvXXu0mjfx6}bD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/effect_regeneracion_animation.xml b/app/src/main/res/drawable/effect_regeneracion_animation.xml new file mode 100644 index 0000000..d463585 --- /dev/null +++ b/app/src/main/res/drawable/effect_regeneracion_animation.xml @@ -0,0 +1,17 @@ +<!-- res/drawable/idle_animation.xml --> +<animation-list xmlns:android="http://schemas.android.com/apk/res/android" + android:oneshot="false"> + <item android:drawable="@drawable/effect_regeneracion_00" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_01" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_02" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_03" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_04" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_05" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_06" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_07" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_08" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_09" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_010" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_011" android:duration="50" /> + <item android:drawable="@drawable/effect_regeneracion_012" android:duration="50" /> +</animation-list> -- GitLab