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 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS#>O+8&4Ln`9lMsenZTo>JI z{CH#fG3$E<#}dMl%ckq5WpbFPcIbw7cmysITiNOs8XcnPEovGV<mwx=(knVtcZ<+U zp^FO|gfavc>b9^jC$2u5Rn~Lx*zb2AdyYT8Up}w;c)neI+P{j484o<CrJkSv{k`q` zb<gd%Z6BQe)bQG$pRpo?k>7%eKQ>_nuR`r#rn6JirmugQ^*wm|_Vz!ImS<ky_?zjE zqOekF?!;*`WZgG%nq{qjx9C-Fd;6PMX3Harf?itoN_`&6t9~3_s91U2VM^G3Yn4O2 z|BnW}y|td7<*n_*sri{F7e6|2`I7HFG5gBs-Alb6Y`-V#_BUmtSx(dBH-6ezr|w+& zXZw8q&N&Q8C(P2Or0>}sb9!!qdi{2{IR3!p(TmTS*_+0_<;j+v99JK6dghx6w;$|& zs&3uJ(!t0);aAASwDOxPj;{~=`%Ss=Z`!}Qoo1zFGCPx!URW=7zj%DR){3jI7kjJ5 zhWxr*+xEV7>Jz{6Ag4*KkLJ|&$7sG?bVWzdJIZv|=g`*+j!kA{WO!QWw2ITeHhpH8 z!F9*W#z8MSCt8*)Uh6yW(R{x9OPufjy>jJu*S57+p858xZ@=&VF7KgH?4c?v(_KZ2 zCJVJ4=hNa?#$qI0FztQZ(xs_4UZe-B1@ArX+*xM5xAKQlZGBjr07vn^O-`RnzfD-a za`qo5%jh*0AD>8Q%@FloEd2OoMWlA*S~05~@8pB*7>tT~e48%Zx?{ZJok0e}ic^oT z)P26HTD5b9gVwsHg6nrZ#b?i6xou_ltrpMZqv{bSRO=ShY&-2*?Uj{rxydH$<*P;C z`@=3hO#iLJZm6nx*UdN7&g%c8e~hQ?AMh?<I8*n`X}L|M&U%Bp+xw=nGE8Xnxx8Xm zFw4GgWmcDOxL7(}jLwxcx$|^E)^_y;d$f<ao!q#Qaq;b<C3ECvTlM^lyd=PKWD$Q@ zmX^T}rWm7JOxXbp6~8V>y*+wJGw8+j?(^)L>$L363<H}!Klh%#a_?IA6xQBHGGbmH zTQ04YzWe3Q9~mtl@7>2A_g%Ttm5{ag?Q!i)*F?6^vK=dbgjmnLwZ+_{Zt)C}leNEj z8T@QZTjp9>n?!9knA;bZy=1!hw^@76UfQnfCpUA!l7)@ywr>kudRuqu{<34zDTgcq z85%CL2mJbaDgF72nU=~=o)`4a^5dVoHhbA7;du*cjpj$MxVkSsCrbY^|0ajS<~o-) zrKt$~5m4Ll^NZEnJG|z5cP$C8)X_M@9m&At{8QgM>gA2L3o{=qz4Z0gjwLRctaEI? zB<!hrF^6T={g1o3#aAvo=l}cK7dD?Sa#>b#A>0k0l;u4qRqk4O%s<`i{brqizrEi6 zbWMIz{pHZ7m8-iB7hNiTyGi5G)sTlv4UJ_(;%__iP5ggTXq%k&^3u(2Cys|)?_hCK zS$g&S;!O=Vqr);*eY)}DuD1P!2lK1$x89$|wYh%%i{zhtA!REUiG1ta(q6RV>o)Th zLPwrg37GZWO^V!<JoVb;#exoL4HHxEY3VHv7xP_aG28bQv$uxsyB;g!8EgvgpZ8~0 z7C+L|JgT*NOTXCrZ5!^dI(4{Y;w!(a*Dteww&&cve_wiosb#EK=D8Dp19(^kr?^zz zi4Swm*O{j#8fMIUd}g_qp2yA)mf!Mryjr$w?!()8ml+%^H0r<i%}+|wxir1L^kKDB z*Id@fnL!#e_UyjxzuPb5^n(@sm#Qv5nKskftznL>?z{&=)8l@JJD5e>TasBeYwkS1 zpC>)P91p(EG_&n;?(FmG4*3gW*;}6eU4P|Rov!G-4GJ@u7^Hi(y%tP6CfB535xMv> zJA?eZHH%(8j{Wj(jqI{-*PiDc;rPJrCabU}>F{Dprj{oQd=4ud2ztPkQ~5%Rv1-S( zJ5wfT#1{TKY_w*|t4)`$?X=d7&d<4YWeV$M_X}1ZO4k3Ba;-LQ<&s*oO)LLI8~e;h zSFW1PEbUo!mN~Ti<&TSek_&E%&dRTBlG?hWS;5Ns%G=9wrGb8nn$N`*pAHJ`{WWLX zgiqUQ11tS^buY2`WNzhkA^o9W&sv5;_JabZ?NM3koYPynYj!2|voOr$UK6sy);E&D zhf{jZz3ow}SHBayDt+-+<@d1M0>*WB1+NOeWt4egVEj|^{D+qkAKPvSZ)|+c8u6fD zdGNFw5icy%`-(5T-5s|}&Fc8-{D0A}j(>WcEbz~am7!ixlT%iT#UbR`gX2f}rhM<{ z)3v?qb+%V(>(!r3Z}`tdt-Y)q$#QRHeOoN|{{4|NT(XZpxqCU!zPO?{Ec&YQZa2O| z8=3;<q=YaWuy53g`}F6@ABRrv#K4!bHaC@~vcFzzWKpvzX5q}hdoQ+3;7tg9!8G6Y z*OG6GJ%5(0**5J>m~`&EAK@#x?_8akG5JC9c8PPp7BMxnHfgUpbAH;zAE#f<a#-Fr z?MK>5b&b}C)@iRldmJbb<xF~d^6zR>lfZ~g*DWr4s@LDREyLK-Cl!By_0Zef`V7<R zws_4pyQX^khQw^u31v6jd;QM8`G1I$JO12Hw<ewq49S0bEKZ>5#I*ZAjfs@e}{k zF3F!x=3>|zP|!NF|G0PCvPW6>yRUv>SNu|!FUIn>SYyT|wH+Kjn}6{|#C$S1DARo) zrqb}nr$ayY?%J=(@MX4Pa&+<L?xN4h%yT8U)3@=MGIJa_-qUz_1{cE}1^v68FWj`f zelOY=$iVwmFPPzlFPGgh>1R)GGw-!+S^dYq`otXRlgH08EZQZ>l(>C`?47rJTUJKd z&AzFfBNfuxdh&SsO=i2cQyU7}g2j{~6fEo_x4CaS_I3N=;?gun1FkuD3>QT@Y4(+$ zpFc}w<<?D?V;f(cU-K!EF(8<o$uFrbq5g<Nvo!CPgZt#{MN`wfy12iZ&nxCAGY=9@ zQCYy%W0zZ`-sLAa=insElPr%|xX)gXJ!r((!Y}@ITfr(bZYK}%fWLA-#rHZq<5*qO zIgjOL<z|}$-(LJ?Fjikz-===5(9^I<Z@b_Df5~gB_jt`%Ao83~L}8C@@$M)5GyKe% zoje$>d=gyIH~;mL7{j-Fi|#6)<kZn~p82VX!EL1g*R4luigfz!Pt?%fW+&66Y}%F( z`r&=RALbd!6VwuB8ns1dp8sS!t>EeUl{yW)278_e6+OLo^;Um+|MIYl<(ogfI2Kot z60|_cB&+Gl^hE#i=KeK{$~fF(q#}9E9erjND<AWfaBz^0yZLNkar_R>1FcdAXEHG? zpI~%Lu~>g!L*tP>KR<3MaWUIlzANTZV8n}~jEAJzPiK5<amj3RTh@Nr#p*Ge>Xgd1 zBFQpckwoe4Usi$doE_%p+H4HVF8aM<<GStQ4^A1((Qff={`IAOOY=ka7aD(=bW3+G zJ-R{k*k+ED8LwAfmNEX=c%S*3WUj@E!l_NnvF|=-PFmPjGyU98j-wa9CNHuwF%0A9 zX3*O3B(U#*+ll}Fx@SeMgv@%gb7RFHR_})Hn7quXH3}?&n;9oBDnI|VcW3HWji~D$ zdt{qFT&g@-l(u5qLxniU*1tuk?x(cg&^`9zrgHA5FK79Zl*OE~B)M8ExsIf?c)33; z4!CxjYg0;A(^47x+lq}&fBP<p&RwK6=VB_?-qMFD2ienh&tVj5V^=+6@38J4kH0e0 z0`X%Rd>n3WvSA1G9sNGEh<}-RO7w-bTZB_k-khFqWrmtzo`G}T>|#CKERlGk<x6{@ zWOJv)(Q=MOE1egyG3bY@AN(=9vTE6yNQXc73U_r0Y^k_(x`or>z?=s02(_(UDVLa8 z{qt&UmReWkcW;=Q_@vMAHTUFgks(hP?{yFqWymVcU}ND}-M6D6NJK06L1k!R!|^B2 zv$>bEHMDJ2d=QtDHSLY@tLAG}_E+a*_W%0k5yJ4|b@5j-k7<_$C1RSS>VJ3MV{F?M z^2$dxw>Y1_i8;A=9)HoChqfW%zu)+&zSUc&p1!AGCgUB^4z7lP$LTIFTQ>`9sNZv~ z_I{PJ#I5(-oP}IW!pj#QKX%7hiTx;Rp1i}tQz4o8wHrd0JA7A=J!-#*iQ%`@)4ac_ ztbhK#J!JChPtD>b=PMQYR-EOI?>lf*GiJpsL!GH^swyra`}P+*D90>fJCGr~Pn*I1 zNh8a=;PihQq2c1+mbsVYy?AJSgg<Q2472oQ$1XjYA~N&Uh6Ki%^9`$g3+jIrR*1Cc z{&=x~p<%A2P;!o4;j$ekOE1ey^nGY4k8_NF|4#IcUi<{7yM5jhHDa&&P4><cu|C1n zyw>K4oC(8~-OM&FXXhtP@15lR!<1`L!F1&-k1uY&%~9dD-SJnks#`u=Gh2g6^iw8Q zhZU<nT%Pgg-fg87mkKU^{B|?pou4Sj(r-%+MR;{>X4eZ>5}srKl=sz}34Ip>f8F`V zc;8AsgdsvQtsp0<r*CO`&e!D!%9{-@FuZPF#BqPGu0*=&GM+2<+jThFgm@fMM0RjY zSL%JocDUu>uY`(|Z}?9=6f3lMxNkQ5rQ|Q>3lkz7>RC9y%0{$b%@bVEvj4?}`{nnx zGbqe!uxHRtU6%T9KYK&vVTps1hg3H>%y)gn|9iDX{ri1e8ydCJzWwHBH0Zu^{p-$l lu@9xTk(;Y*KZt#ZcQB3KSzsr>nSp_U!PC{xWt~$(699^^jYt3h 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