38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using That_One_Nerd.Unity.Games.ArcadeManiac.Minigames.EntityMarchDream.ObjectModels;
|
|
using That_One_Nerd.Unity.Games.ArcadeManiac.Misc.Extensions;
|
|
using That_One_Nerd.Unity.Games.ArcadeManiac.Misc.ObjectModels;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace That_One_Nerd.Unity.Games.ArcadeManiac.Minigames.EntityMarchDream.Bunches.GameInterface
|
|
{
|
|
public class HealthBar : MonoBehaviour
|
|
{
|
|
public ShakeData loseHealthShake;
|
|
public float speed;
|
|
|
|
private Animator anim;
|
|
private Slider slider;
|
|
|
|
public void Awake()
|
|
{
|
|
Camera cam = FindObjectOfType<Camera>();
|
|
|
|
anim = GetComponent<Animator>();
|
|
slider = GetComponent<Slider>();
|
|
float ratio = cam.pixelWidth / cam.pixelHeight;
|
|
loseHealthShake.intensity = new Vector3
|
|
{
|
|
x = loseHealthShake.intensity.x * (cam.pixelWidth / (cam.orthographicSize * 2)),
|
|
y = loseHealthShake.intensity.y * (cam.pixelHeight / (cam.orthographicSize * 2)) * ratio,
|
|
};
|
|
|
|
anim.Play("Gain Health", -1, 1);
|
|
}
|
|
public void Update() => slider.value = slider.value.Interpolate(Statistics.Instance.PlayerHealth, speed);
|
|
|
|
public void OnGainHealth() => anim.Play("Gain Health", -1, 0);
|
|
public void OnLoseHealth() => this.Shake(loseHealthShake);
|
|
}
|
|
}
|