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!ia0y~yU~m9o4mJh`hE<t`_ZS!$UVFMYhE&A8owkv;*+GD1
zA<L;k*(;v1QyvTTaOl)GJb9D8RJL8E+}^zUd8y|AwNKy2vn*hI%F^SolR?i>If3OA
zr$l2B;~plr0~}L?4Va!XRj~Fn2x_P&u$*H3z?C3)<J<M;wR0l=uKyXq%ygk4p2b6Y
z0*8(5kAG%yOCo<WGEOL|Vl~K?`Y*El8$;TG9|^BMe*a*|u(*<m;lFUkfi<c#qSOyD
z2=y^|{Nmhds*uQ)!Y}1;$$!OKM$TY`>I)2$>YQ?UJ!UZ7Y-XGAMK~+l;gHA)Ig^GZ
v^8=!pg_b#dTfnIDx8;`91OwJh?cC0c7LL({L5~<17#KWV{an^LB{Ts5D{X8d

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS!$Lp)s^Ln`9l&bY{X$biS?
zwxC42<&4Re677Nw3Qdc&vfg&jiTd`@d+n2X@8@iJJ?YPOwd?x@7-T2RVNjlMhe4*P
zhd~+2wqccEbW^ZobW_;LSixn$)YD+tc>3+HTY4Y&*x#|pzvcE%;Z&ErN}PfZb3p6|
z)`cwrS!)`6*#jIx%spI}vMp#`Dx107V!<wlM-5jPCR7R@Vl?*exvaF|ZOHq50rMsv
zak>5VTctUJn@i6Xp#vPYo^K<sO?$J}CizuES=algH$N>ZW;w*u@QkCI+ri=}=Y#L3
za%!J^eUu=@xKiQu>v#8LJ}^7{?5Z)jv*iD5#tC@~zRyiK#=BwNYc_}9a~HI#_f8bs
z;mxq3W1>|!pM+r3H6aEsJug{Vfu)mI@L4gaiZAWs>$v0@!Y<n|sXNG>-Q}gqs%Aci
xlddZlGcPI;y6VWj;K`yZ7a0SsI$u>VUzcofOuo3!o`HdZ!PC{xWt~$(69CU*rN;mO

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$Mb39!fLn`9l&N`nZ;wW%T
zJ<?oF>C`L74@y78x+*@1ir7?r60PBgKRDUlG5%n4$G+AFt{)b3E2*Vzj@+&$a-}S7
z+3VHsW?h?mQdKeda`652|4P2Tc^AU`|EA=Qe_1RBX$KB)_NW?sV3C-e@KI=n?Vin#
zbmr{;d1JS|9=}Rp$Ban=o0uJrPJicklW{?lm)rcBQuczsAMfru=0AOP*1xLF$Gp4C
z84svB99n<x)_UPb8FfMb<K*Ut9p67q^pgCA9;dgP(-_>pJh-*x*8JET0{@>s_x$?y
zYJ2bV%wMhL(^6O)F7@B6?k?AC3=o-m=%{x3%>s+~Ij@-)?iKO9zUTB&Q|5q=LT>UG
z%g-_hIZTZI6E|=5-+&e6Q+9iu)n!iWzoz`IiusN6oMkh&ITkPrWEX6F-Jzi;-qw33
zo2|iyWuvOWioa)<e-Dq3+ta-L#u7P!png}A>tB~$+V%I%!B@whFFqGHc`u6!gGrL6
z!K_)@j0;TdZR@$yO=_Gw*RIOl_Tc3tuLd=LZ!s0d2USy<yTi>|UQf!X(z|N+|E@{i
z@lCqi4F#(|H*J_$`#Seqg4tTe4+oacG;vnYV@SGE9J{>jg!>z5|95Nm?W^H`9eDSG
zyG!uGh}s?|jjL~i8#CUwGkz&_x@<N7upg^K-;7*_HJUS=S?q5=au#uTk#Op8QO8@U
zsk-S*5)OKTa<5zddIhhGW_3tw|F$NHDPg5)e@FS+m0vHiIPl39N&F0VE&IvJtZ>kz
z=~Qz^DvN8PscVSz(=`lFy8S8zChDscSzLRvB_=%jvEhXRwh!udUo!h`IwJg%44)^N
zp1U4=&-xI<i-ixlIhu_2nyfsnbX1b1V~)GY?bzG5)EMTle&Y3+JL&b+L;Mbcfnv9>
z1O+f=ta`ajeB#C_uA7)&DtF|*Sj^>MQMc$yu*{Ye)}nqXhubq5DrX$MwtLGN2A!mU
zj#`uOaE2JIjOou3yWf4j7Z=M|@P5L?e$zvCM<>VUF|4_GJ}~Nplpce?M_=m}ne9)*
zbNTk`XXS3x(c)t$bhstdv-kAmtWDda|Ia@9S=~<V_DXNI42F_a&aaJkPtMGKD8AYx
zTiMK&K|!^tW8)1m#)QHt<x}Q-eZPx)OXn81`-}f|GjOCg-w|}({Cd9@W5}Fibu0@O
vZaHg~%$8GJVtVTs&xL?nX|oTeABdk)><~Y1yQnAw0|SGntDnm{r-UW|S;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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS!$Pk6dGhE&A8opCXj*^tM1
zvY?UQ^A~gGDnCwX5&36OU=foLyvW76tX}!_BVpAqHT!k{mB+{Y&t<;B7cu96T;oyR
z4bvBtu*mJVe}Daca8&b`PeyfF93>1{jxYQcGdpkxFi&O*=+-~Gh*@J%pI(6e&S}ak
z8E!l>mT_Xeu&DRXJVm<{7J-T38zT?BzPpfbg>vFe=17G@3>8PJV_W9%GdGAl?ESjq
zX*PpMN9h#-g?LVe!Yfl4&dGjzGdq(}M)&>CRVK_1&v-Vb<m<eyGj32W4Kv*PXl9`v
z!x^WLop%`0-u;_!pXsJwfwjW!gm1Od4*VCbo-aQC`>MUiTK$X5m~}j>7q}f=a5jsn
zL#t%U9_a%ba|5m#Ze^D6uFPWKx$eWwaQEB%gg^#^H7{N+dtN8Z@T|MX-Qw{YNru<1
zZHk8`H?tiGZuyjB-mv(sZT|$Xjp60x%og(BbmmP|n8BFR*-;kF#jrYh(b47hoso_%
zyK*zwUAWfoJj`gYE6#nP*xjn9jt5$q9lCaQ^@_~j$85)$QYONxSIUrV6L9c(g(kz6
z9~=om41!GoD}or7Mwqf#GHgkH^Mkj+w`5z*ZN|-|J+bf07-ql7`8lopfc;7D5024K
TMA#V^7#KWV{an^LB{Ts5rGVAz

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS!$6+K-XLn`9l&OFH5?7+ja
zuw}|*tDy8(9+p!kwB#RQp1t?QHMx7oHXVQLY;|qv&&_7<>lqo?Ow<o>nTR(yPY_LD
zoh6*WI*WV3f37=n-@kvWxj92s_sZIzck476j+ZhWII+@l%@G4;nOXY9Y%z_tXBsB1
zE}de{y^yCtr@))xW~RL3CYBB6i<%O+6;}UwU(FCOvE*zs<GRVgS9=+?CatS9I8a)&
zYL}sd>m^fuwjF+cq2_EWJa#=h$Z+&Y$aLYZs7013Y&)DLFm_CuuWHA7p!C)y?~7Uj
zL2Q4b?@!#YoZVp4Pow{A>m@ArGKSBx{=80>;j32!V}SX2$q%XtsRw4x?K{Sx;I$^o
zhAm`v#uj;=4x!az{ft-Dq~5YKFFLa7=yvl5%pL&_juLxY+!+`c7(8A5T-G@yGywqa
C%Zi8q

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$MUU<4VhE&A8jX0ZiH9%nA
zoh7_mW1cSBa?SPVaSg2-=_^({iQ6?iSk!;9^#OB<;*Lw{D;7LT?$G<Ad1`6gI@R1f
zzw=9EEZXjw6<Y}l8QpxAV)Xf}d2!l4j;enyw*B%V45<$11uqD_uw>lAnZ=pG`9+3N
zw{f1ZLq4M}h@pJpl#oPj?u=GxL!L<-U3U&VeBGZ^*ColPI!*r1hd8cEv*yS4mVfU2
zS9r9#<Kl$}f8U3d$<2IvmDQu2GiCCgny;zv8}7!JHJ8t~HS^v+`O?Efzie%78t>=Z
zvHm@Nvq-_iK=H)JO3AtnyE8w?TD_U~xR5U`E#Z@L^T*rgpZs6wo6bM;z*(kE&YzpU
zZ*EPO$(0q}w0KWW#`6DZ26f@`9a`K`oCjRLMlIDg+ioFy;LQ?-4K@oK9z-<c{Q5O%
zJO2g)hRrT7Z*Z`QHoX2ex$;aZBZH*F-p!f{cj`B0Zs@P6{yOhyygZLs^SgJ`BqA=9
zRek=W#gn-xJocmx!vlW}$-SpE|Nou)wmnV2J?XN7G{cky8tLx-<~&<7gWhbHVn`8X
zbIzPG<-y0CY{m&%E43WfvNp^*dEqmcgGSMm_p=rmA5||8o5JX8vT?$Ko9qj_=V&x<
z|KP==f1P)iAVYzT-kTp%t5{>iRMI^=r!e^Cci#Q8X@6Ob>Y9C}#@!Esu4i3LU6EDu
z_ouM%&5v8(z4AJlapF;_<c2pq2j1wf*NJkSzU<*u#)F;8o>GUOR3B5CvWdB2_3KM7
zYN{8nFkhE>tUJu)WY>SM<JTqU+FAT9J+(<;BlCkR(ku;HNxvplRB3BQK9P$TUvevV
z3yXz|&mD&LY|R9DN3)&oPIBq#49lmy{VvSXX#9E6<OTZu$=7zg+WOAa)AIN^hVP%V
zj`K}CqS@FoPn4NK_S5^Ebq7^VF1WEP=BcZ`?KE<@RH%2Gi$Q!+?AFCRFS4HP_!Guf
spm;OX`c%WZw7%2%saT};rXP?zP?s6-`@3s20|Nttr>mdKI;Vst0CI(K!~g&Q

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS#hH+s4_hE&A8jr7ftb``06
zUAkx6<Q;~5OFX3nbQf?bX%#+bPzurDP&_55sQ0w#$jTsp)=uU}4J>oC3Y{J?iMLoV
zIdO1_c3BiSXmPDziegdpWH$8soLnti-Tw1fZQ7p9$A#8$I+fw8M6Pc(eqZ}}@ArM*
z-&|<0KiBZv-;lwOnN6nAf`x4kL!nTQvjSfuqdSODcZgwqB+%iUa6s@!ymP{@qwTI%
z_AW{SS5|axTfJgh*_G#4zdx(aO7=J3FSj$#zA_}`c>9#gap#s+nFe^53P@R>{a@TJ
zwB=*^)^rCKt^*6F_jewO&HS{T>66=%WbduhE<fEG#m!+c&qqC@<W%te-J0!MORfIa
zJ<ERmE$V*3qo0<BHWL?J*>F4U%fst(;=kX2)R<g)V!e=P_^T@)m@9YN{r&iD=j&Ss
zb5`b>XH;)Zo68x-xa08^Wv1<{&-d1PmY&x9S^3s{{<8PJmv89unZ7bwH=Q}lgr)ZT
zq2+GRlkfZ3c``h_6df<QH+k0WwYhDx&&!`#QS2BVVDZq(q`1Cq4$H+${-L|_^_-WQ
zIyU-Ld2@&Udiqtr_niBSo;Usz>zDe8$NfF@V(tmX9lxg@50UzA{wjA0+t-H{^S;*4
zn)&aIvHbfYCQ(Mi^Jg?YuNgSpu&!V3zM4Drb>#uBSygx1^IyDRKkoX_%(HPdLj&h8
zDZSPNZY`&66I8_Om(MP*_?bR`8Q=1i&$wsVf9w>kE-j0=If0SEb^5)Z%eJcL<yDDo
zoWI~KZ{+LOP3LUC&lm2<l~`QVR#KN!)ZzC1;Lm4bd7Cn|W(c#LoAPMxwMa&Wz5|^F
zd+R>jUCxqMoTQ~Vmm}k2O{?C%!mzoV7XtoI)c$bZSM|ifTQ_x5+ht$wSv*P2elOF)
z<qR^GpO-kOYTTK%;L-iY!fWoAW?N1QRCti6&{e;+`NqpK-+k{j89W+x#0FG<{QY*F
zu*5z0pCUmb&yFpScL{fJ<6?OA<=LkD)0ihb*z{Oa^!{9y^Kr+NCOX+Tx;Q#a)eHM3
z;;+{CSxTG7qT*NJRAz<f!&_xb+}hf&Tory2=cZ);!dGCrW31EdOUz*m4U-cZ_FufQ
zl=(nY$}!cF@?~>lAKq*~a$?DL?Uc0pHBPF240m}KR5#|bGAy%7F-WR=xb*z(Z?02s
zM15TO<KcF<=Z%aRlV4ADlg_>%USX-ZG1bE{x5)Kn+oy+H-PmTzG_*{eJ+0_#*7D`r
zmU`98coH0#Z|b+qb+KT`h^}okWhk)z=`5+`qqZ_=TJ64&qFpZx87E#(SbvAnzcpmW
zE1j9STaRC3X!s~#x8i3&k@V|DS6NDDZxApt=I6Qm>r~$?!58n9ZHm~Jm`t0yu=i&}
zC_}`77q{dOI554|+8`_~;nAVqa^+|6{H<@^WHUUF=oZhbk37xX@@ZRu?A!?(@2+5d
zRTjxtT$dnl(LN?S@4|P67YZ9%jta2wPr36<bm5BLA8frJUxc*1Xk?K)Yq_eP<2>&K
z<_ku*XYobyGA{de=l5~fQ^grSou(SFWn1YxJKn3=84-R?`LMI}i$@(d7ia%3P&z6#
z`?29`28G6ji+5jhVE))M%~EHk<c?%{+qJin*&ZDK=@reCBHLiP?D7)7pU12ib|?mv
zye>K$vEsuWg^2|k_U{B_o~vbiZ0}0qE@Hi+Ht*8Xu8pgDWEkFY?^=2J*Bu6Dfp>q8
zKb2Ucma1>eex;pfTi`zliPt<Ajwe6eI=4?bpF{5YWMgK{1q$;N78$TTzO~-JC0EsM
zuIM$!1J80y{;z19@jSl%gY7TYEhj4!vP(H*|7^{Yv6}lL_fxGu!-0b_>%Y$5aYMo4
ztiuAO2gT~!W>^#}XIHT?NHZ&ZFyCeUxAAhHPu0Vq3T3}LXRK}6AEfnkKe{W?pb_xy
oxp5NPm(Ooq5~I(Mz`ecyaF|k_L;S2W3=9kmp00i_>zopr0HBr0Hvj+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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
HP6<r_!TLB<

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
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$s&wIK!hE&A8jn2#oxh`s#
zTz%|Y#nIn48WbIPuIQ*unVXQcX~WDFTNW+JyrmHurRnOmG-O3?l#_R;>)I<GnnA**
zi+pbfTnTDboxs|{X{~D5eOf4t`CG;D*Ei1GsH?rNdc5}Yvwf*H$t_%;+12Zc@7v!0
zd(QH{<?~yP-+vx2oPXP&pP}MF!*7|!-S3!G_s1_fVkK)*mLzlZh``Rrk4{{_?fv(!
z%k*>Kg5n((o|1pFEBp5@ZT(q)b|3W$?Cj<W5?Y~f(zkQf#g}^F9N(k<*1ZZlxZ>rf
zz`5(&_2zK#SV}l^G5A$Gbx!WObV<Wlah{usYGBcv$w9Gx!N*sB{kcL}V8Q9PvL)}r
zq_=MUa{1_DyIo&i?+v`4e?`0{)#BqLNj<HTXB7Hx`_6OOzVxDz%dNkRpUQr(I27%E
zkIjCoiDt;>NcGtI#Y$Pf`))ZIBphlxKJ`&$XULqXZplHxY`Ht+dbo3Qn|NP$-S2!=
z_i^3|-5)>pPt%UvX=tKu?jB$pZ~HT&PNL<z)~rQR;)|FVdgLP?EDG|U_o4jXpH~@E
ze|%iNxhpsM;QfpBiVwmwzD}9g#5vV;?U#GPw-;~v-XX48_m(p?EVF3BM>jW##zb)q
z*VqTeS7q=0Su(50#<1j@2mjpar;9ssI$oTv`E)(|&yx`5->dumHrZrKobK6>y`wC!
z;X&wTmWChC7qVG>`}14yrojt+<p)cv=4^SkF|e7dEJ{Hq@Urazg*z`^Eo#2UX0>&H
z^#vaZ6NdX18=Pi7Ke>=I^QEJvpIiML3$wF<=0cCRMmXp*v>g7*dnM$)zkF?}`;Bic
ze_8!Xx!ay!IP>Psf`;Y%Wd^&P&pw^Im+@A`lT8)hZoX93bp0xB-E>0Fc!J^r(Y~;f
zpsTm|4{y?3)4p-x)auhyBUxu=UHIG)e3WUE@YPFOc0M<&{qSDQ>eC&+<8ORVi-huA
zS`{fbQBQHop?fVXl5C70HDuIUzP?*-rxWhQbt&^?$HQ$s_BZb+EqQbQc|La~e?x?+
zdB59omCMoUdhDzLW#VNs3uX%NaZF?Ai3wiiP~~*pK6F-Uri~f*eU~ZsHtlcpt2uAs
zb-t#0<))OhWdXfw<P-k<@;`Th`|@#~8@%P7fv?$5pIvpILAdPh4$rB-->|x!HZ2TV
z@b1^DbkUqIiJ>oM)N-=P<mW8e|7QKvWf}~#g6FvSO?TdL<cs-qt<%rbx{^2zS=sg!
zKiak6<DdO{!Kap|cfT@}DYsm<um1m8wqNd<8lS)97_lb2=|4SXk!9X2!>Wi2nv#K&
z{?^5>o&N1jCNHPQ&inJ0@7O%|Ny+g`&-dRj{*c#TP@2WG*I-{q+3MxTKQ`TGUUp{Q
zET81dLAi{KY={1CtGnZ|yne^+D{hzL_3mwp(L6EPJ7(q{*RN&k)?WSaWuoH+p3MD~
z)=L&e?@Hb|=|S0rLx*CjemBn&*vo%(<`hx)_}R0SBQiv7Zi?QUn|+Qcm|?=}>7so6
zm%gVlcGmuPe{9~m#`@ROR<B<xT(b6F^9`@xt^edZL;8^;6&q`|`!8fZ|7Oa&-q^HP
z;!C$pWVGlxKWp}jyS87K9i6PmAoJzf(`RiQvNvBg|9h=<E+D<V=JV3o(>ou;)!+25
z{r68nyyD06Zjl`<5e9nqebZOhE?arVqva+4aXxMyMgyx_WzpmR_8<DZtHjsD)2*jh
zc<=tZ+W(f{Ncgj2W#^)49lgaDwti+zY@hmGNu!xHE!8}tV8gz9CSnpyA1*ClJ*D;M
zyb0nGj2})P4!v@H^@Lj|7xkI7R_*$wX=&Rg6uN)i>UT>6AHUyn@Pp6S$f>MZpM|H&
z%(z%$>tLw2)p=Fj4@-uL6UDu+&M)(fWxM(E=q9JrYf`2PE@5c+=dXWCG|T_LArr&@
z|LUurx&L!N+qY%g-x670os!E_+wwM^aklJyl-|IgcHsI$p~Y%Pxx=Qs*9+frzNA#^
z%C$TGwrlrZDZ1$Xwcbu*OMJ*;=~HSmm!%$2O<8(f{-)B_s|FWpmh0Giyfzjn<C5HQ
zI9q)ci}02!$6jvwSX*1p5OA8s%d?nczB^BY^atbX=kA2{@&^QM>)s_5dhJda+otwd
zwg^^dO@_3K_qiAX_$(!S&uA~t<DRA5+W6?rbqmXDuTSt@VC`VuxKSmIwLnnBR7OT|
zo>1G-z%0i<4Vzj#s&?k+<XY7p-SoJ{_HSnX+K{PUj1|8waIsd!-@Z4=(1D-r``a>^
zEV+uAW+xiIS^Uga-`%{4VLfjG1Cw9ewU>#ZUG@7d?+XWYNiWTKlb!z6H`7;%^}+7r
zVOqcb%_}RE<c_G#?0x>8q2&)J=b`(Tuii_%TmPhycR3e>R@iA%hHK4QF>9szmAqy%
zo|%z3jqh+8gW1CT)Pp}(%g){Mv*G#{*VYbxwi7OVF^ccKJ+G{qws~iAOi1-Q^%m7M
zr4w8XU%3BS6lZtrO+3yZdG<kaeQ@vdD*6Af<~Lt*-onnXscLR4E6<L?d;UKk$2hJ#
zbZoK0?V4A+w*1dvak{~C;B?QXhI<Cf?D%y*-2EnHT6O=GsNig7Nv6byF4H~gW!Rba
z?Q4`-&)cIj>t6i6!;BB)W(oPvlM#3Pk+D0VEV$%`VMFPGEoXFIdU$u6h~3|@J!+1f
zSxbkk^m_@9Sk9Mz6Q2v-wLH2pv4i~upQBD8TY~8cP2odanMH5EB%Q8n5M(}dj>+Ii
zpU@M#zsAbuY=LsA`Nu5GRhJwOj7sBCRb9=t>gQb7bKj2MmR(`8kof~61CM|`v+9qj
z?!m6H0d|)C7s58ba+hEXc=%OH%(X4($7@k-k=n<TnH9vHZ~W7)KF@Jb`ExbPwnOfd
zRxDlT?-8@Ma0T~*F9IKT`m}X3Xw)z`#3jxV@SeN&@01B5$}<iedX--6wA|P2re=<6
z2k!y?aJy-~VOJN}u}M5l+Ixm|>(?rVH4MUeF|SN@+O}232lZ4j8Zn&tBVTR$mi-0m
zM7zHa_h0wX7V;I~(MUP#zxIS<Y{ABB?j4LWGFzh*!$P|~8h@PF!cgK=)YW`#`l+w`
z<rvnnon>3KjNwJ|LLLSY2Z>O}f2Ujoq&v<YzW#A%Vc5DaYi6nKxBNe+DR08vlbf%;
zj5cE6KM}ED?%R)7+^yHY&U(fBlAY<y^Z7apYOj91viO&2#DY@sl>RFZSNZ)|<a2Ge
zkjR7WVo#(`#n04f|FLrAXZEl1UtZ5La**cU@pFNEUKX>G!+{mAf}*WuEpJLL;aYfq
z{+}W?-LUMQ?dRebOjfUM>Jr|;Qqs8IP$1}=le13L6u%e#5nq`$rmyqti{I-i&Nn-L
z?M4;`?pr50de)RFwQ&32_BY{r$-S_7qXd`Elhh@qWs(ieKkJ=Cr+@jyJ^vri*4(^p
ziGHVRX18>!FFufSn)QRgrI3?{Tnt4fhIafC&q!~ox2T)B&px?l#=kYe$Dijg%)hiQ
z`RuZ<%u}AOVlB5iXmmf_?b8fCXF<Lyn=73X3_1(;vM##%DC{qzTybtdbec!utu`(3
zz-Yd!o~10mgoN9ca&qb{-go9lL4N;@BF0>;!=Vyq?p-@4Z?7<Ut%HFzqg>%@_7xrC
zHCxa1eGI5}&z_Z;9a#~ceu#;oEo1$WjP?6nnV7CU-QD;@a`8s-^nO9*lAAsO|Ml`}
z!eqCY^IwtkxWTZ&dduBc>Pu8Z($kWQ7GE~cUSC|0ba!E_^J^!Y&P_szft`%MTm>YS
z>v*W#5xUrv@XhGvd$!Xu`&@n=JAQq|-PL_h*eWBl0(dS+HHla%>np!F#8Q`k++gOW
zEyYXUg_hRzMKwJRv=CSN(k@`gkZ|b8O->U_^B<2`_ItP`|C@Uz!uq^>k*eA&h7V0O
z)h^XH6=TXT*so9LsI$MZ+Q6;4a|YwB*2)D^z5*40GwyIqZWIV*_`zB;`$%8bmLyJg
z>l3$EEi;qyStUJ5M<H6|(&mIHqtp~j7h&Petsd)7Ek3X+#QW{4$91PWH;T?E?`7N(
zWt=x{_9devjvz6;#@&r!r8a)j<y?V*PLhZ2pAY4G8{f;*$^GK7(?t>Wr#s*N-|6Gq
z{_DBXROjMH&eK@mTzDV%yIC`APT9AA^}o+d*nMDc-yLR#cVC62Uj4oMo#%)Ct&5?n
VCdCK8WME)m@O1TaS?83{1OP@6%!&X2

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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
FngC#|vNr$#

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
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

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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

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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

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