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;&#40w~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
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
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
zcmV-j2BP_iP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000IgNkl<ZcwX&V
zO=w(I6u$G9nU~ZwleQ|g6l*I83NEZj6+{pb$x^|MJ1OqOo$kb)?ut7p?%W8v6cG_b
zP!a1wP!P0MN-b*JOd6ZKnas?4zVA-Yc=K}K{eQ0|nYWtc-Jf&5^MB5(u|59O_Bj7+
z2Ea@M_BaAF6WHSlP>vJqK7T4DV0#~bds}N+aN=B;=X>&$WDr&XUTFZh5WfS63P30Y
z02k(Ol`jeofD0p#e7!j#B^hU8uR!udXC(j}ef6pI&IcD*t<KoiM#8TAyumJ?{fggx
z;Kj$&dTT<)C{8M|dr?TG004<b%PkfiXt9I$cUUW9upLdVT3<^z2!rb*wti_a1;Ryh
zLhK0+03-^+u6_7TO_coNQYL=kx%%gbgRpsR$Tt4o;_GD$9eU}Bv=ue@E7F<}j0ZOX
zNL}Upj=%AAx_rFD?@bfN`fDS$`dh4I3d}Da>9DBVWN~ja(V$CxcIAVwg9$F!K_FIU
z!_b26eGzL#b?yVe{6CowxcKgug?D#fIF;UUxXpb6q<;AHlPSz;-`#WU#$Q_;h_wrG
zq1M=Fh&KRG`SxOy-x>FYtoPCXnID*k^jh-`)@au`@#o+E!st$tKF-A+0)d!|Gt&uS
z5=O+R5QS>v{cv-<L#hC0;jX!<B#X|W>@jab1cJycfM{mg1nn5cWADh}1%N0eUx^ff
z0MGz({(P88h<w2d01!rYsZ;GDAEDAN>`8{H*4CkEVid8dN1Oo=ZIYye|H<r9C0$#y
zkgW#*$tc~HM45u%1;Fx&Xd2205S=F2cxaooGVo1+cLsp$9}JTt#P7U1+Av|dmYgev
zQbZd>8X5Sy{KN==qC+T4LyV>b#l_Z58K-p=UXdIDgp=>Bq>U^RfA{hyM*N8PX*W=f
zF2;B901y+e4!31zI@E0$#(MEgs5{ILxy6sKeOi0;>`K~h*Vx5#H<SsM>|Q+p2shaS
z0A!3I92J4%!l=qABK}hv{P3CQvKpbzdKdca-bd#7w(F}2JNJs67T5t$5wj`~C|MF~
z3o5iwX?}mY3;=F6C}iPAB(@CIS7{M!AN2(QpfVdKVWWB4#iEK+^FmgQnS>l0!c5ju
zxxIh6&QM;9jTV#rSfd9(D09Ii*`X}^x)r^^hu(QMg)>BN;g>f**YcAG#(D!W4)j$e
zt*Hcj*C8S-9%(ywm#hH*!M>OJGM(Q~!f;8#oB(*>t!L8q{w5m_686*UpE;f3147=}
z665(K%)}{M6A$Sh$~wFU?`iV5tLyIgFe=-ta<=*E(IiK)1^@}j+(LaCdeGvsO+I`;
zQAw5N3n-0s87$FY4FJ+kG4a4btLOXELc~Pvd;rkxC8_g<$;}K_wZ|F&Bp-;oc>efd
zlXZ`Eves0>b8`HzieiWulBqZepfmvBagUzd#|DFxr=2hfI76|;U4|Cq&jipIz7&OG
z)0UaF1_1rX-d{<_S(_fVpD#^yD(d=POv1!wDH@|inW;%)rUal!k|;#PE-*k)O?O<G
z&hMjeCpKX4+h<s!1%Nw}+*ck&y}wY5s?HHR#MBqiO_-dWU{PaH3^zKaU5X^t9s*z1
zl-1E9d$08YMIe}@ovP}wh*;6qb(&z>l6Tes6GUYRhpI#Dq7ivIMCtq3KhD)^fC>bX
z7RJ{!uA;dB5h)|k1Oys^$($>7fkB&Z8{P{50;gzjN#5E<N;GXkZh=TconJBeiMlQR
z=U{!Lof_%1I0yi+^`&DGzl-croEAYl{=GcdHaX4{CVotT`U2Ty@Ar5|qGReKbd1yc
zAOO%|;;@uHYS2laLRn|2$-f`KBi0r&MnYzqK>-j=0>6v0G`yqf&U`jhL2m)&wfLaP
zDSk{LetKgnU6XaC0AO;l2o_pe0D;PEZr^drhS_BJ>aTr1b;1+!)0k3Bz=UzKVXPHL
z-_&RU2qvG=nA~NurZNqne4*Z$T$vwdn-E*Zn#uqOL3~K(SD6Wr<fi~Qeg<ojJh^~e
zi3aQd0hC$*QB;q(Fr4302>?EXmdQNmy6pk*0ncRb3;+|9cJrE<2JB|(n(#K$027pU
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