65 lines
1.3 KiB
C#
65 lines
1.3 KiB
C#
using Obvious.Soap;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class UI_GearDamage : MonoBehaviour
|
|
{
|
|
public FloatVariable tensionScale;
|
|
|
|
[SerializeField]
|
|
private Image _FillImage;
|
|
|
|
[SerializeField]
|
|
private Image _GearImage;
|
|
|
|
[SerializeField]
|
|
private Image maskImage;
|
|
|
|
[SerializeField]
|
|
private FloatVariable GearDamage;
|
|
|
|
[SerializeField]
|
|
private TextMeshProUGUI DamageText;
|
|
|
|
[SerializeField]
|
|
private ScriptableEventNoParam _onDamageRaised;
|
|
|
|
private void OnEnable()
|
|
{
|
|
GearDamageOnOnValueChanged(GearDamage.Value);
|
|
GearDamage.OnValueChanged += GearDamageOnOnValueChanged;
|
|
_onDamageRaised.OnRaised += OnDamageRaisedOnOnRaised;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
GearDamage.OnValueChanged -= GearDamageOnOnValueChanged;
|
|
_onDamageRaised.OnRaised -= OnDamageRaisedOnOnRaised;
|
|
}
|
|
|
|
private void OnDamageRaisedOnOnRaised()
|
|
{
|
|
_GearImage.color = Color.red;
|
|
}
|
|
|
|
private void GearDamageOnOnValueChanged(float obj)
|
|
{
|
|
_ = Mathf.Ceil(obj * 25f) / 25f;
|
|
maskImage.fillAmount = obj;
|
|
DamageText.text = (obj * 100f).ToString("0") + "%";
|
|
_GearImage.color = Color.red;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
_FillImage.fillAmount = tensionScale.Value;
|
|
_FillImage.color = _GearImage.color;
|
|
DamageText.color = _GearImage.color;
|
|
if (!(_GearImage.color == Color.white))
|
|
{
|
|
_GearImage.color += Color.white * Time.deltaTime * 25f;
|
|
}
|
|
}
|
|
}
|