diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt index ffdab63b56b4d1f918514b7aaa26bca6d0370b7e..f9087854c0c47ac12b8463069baddc66ac019a93 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/LayoutUtils.kt @@ -12,7 +12,7 @@ import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.ModalDetallesFragment import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto - +import android.animation.ObjectAnimator object LayoutUtils { @@ -40,6 +40,8 @@ object LayoutUtils { actualizarJugador(barraVida, ataqueText, investigacionText, vidaText, energiaText, barraEnergia) } + + private fun actualizarJugador( barraVida: ProgressBar, ataqueText: TextView, @@ -48,25 +50,33 @@ object LayoutUtils { energiaText: TextView, barraEnergia: ProgressBar ) { - barraVida.max = GameState.jugador.vidaMax - barraVida.progress = GameState.jugador.atributos[Atributo.Vida]!! - barraEnergia.max = GameState.jugador.energiaMax - barraEnergia.progress = GameState.jugador.atributos[Atributo.Energia]!! + val vidaMax = GameState.jugador.vidaMax + val vidaActual = GameState.jugador.atributos[Atributo.Vida]!! + if (barraVida.progress != vidaActual) { + ObjectAnimator.ofInt(barraVida, "progress", barraVida.progress, vidaActual).apply { + duration = 1000 + start() + } + } + barraVida.max = vidaMax ataqueText.text = "${GameState.jugador.atributos[Atributo.Ataque]}" - investigacionText.text = "${GameState.jugador.atributos[Atributo.Investigacion]}" - - val vidaInfo = - "${GameState.jugador.atributos[Atributo.Vida]}/${GameState.jugador.vidaMax}" + val vidaInfo = "$vidaActual/$vidaMax" vidaText.text = vidaInfo - - val energiaInfo = - "${GameState.jugador.atributos[Atributo.Energia]}/${GameState.jugador.energiaMax}" + val energiaMax = GameState.jugador.energiaMax + val energiaActual = GameState.jugador.atributos[Atributo.Energia]!! + if (barraEnergia.progress != energiaActual) { + ObjectAnimator.ofInt(barraEnergia, "progress", barraEnergia.progress, energiaActual).apply { + duration = 500 + start() + } + } + barraEnergia.max = energiaMax + val energiaInfo = "$energiaActual/$energiaMax" energiaText.text = energiaInfo } fun actualizarEstadisticasEvento() { - val barraEvento = context!!.findViewById<ProgressBar>(R.id.barraEvento) barraEvento.max = GameState.eventoActual.resistenciaMax barraEvento.progress = GameState.eventoActual.resistenciaActual