zombie_mp/Assets/HQ FPS Weapons/Scripts/UserInterface/HUD/Equipment/HealsDisplayer.cs
Sewmina Dilshan 68183e5317 initial
2021-08-23 13:28:33 +05:30

78 lines
2.0 KiB
C#

using UnityEngine.UI;
using UnityEngine;
namespace HQFPSWeapons.UserInterface
{
public class HealsDisplayer : HUD_DisplayerBehaviour
{
[BHeader("Heals HUD...")]
[SerializeField]
private Text m_HealsAmountText = null;
[SerializeField]
private string m_HealsContainerName = "Backpack";
[BHeader("Heal! (Low Health Message...)")]
[SerializeField]
private float m_LowHealthThreshold = 0f;
[SerializeField]
private CanvasGroup m_HealCanvas = null;
public override void OnPostAttachment()
{
OnInventoryChanged();
Player.Inventory.ContainerChanged.AddListener(OnInventoryChanged);
Player.Healing.AddStopListener(OnEndHealing);
Player.Health.AddChangeListener(OnPlayerChangeHealth);
OnPlayerChangeHealth(Player.Health.Val);
}
private void OnEndHealing()
{
OnInventoryChanged();
}
private void OnPlayerChangeHealth(float healthAmount)
{
if (Player.Health.Val == 0)
{
m_HealCanvas.alpha = 0;
return;
}
if (healthAmount < m_LowHealthThreshold)
m_HealCanvas.alpha = 1;
else if (m_HealCanvas.gameObject.activeSelf)
m_HealCanvas.alpha = 0;
}
private void OnInventoryChanged()
{
int healsAmount = 0;
ItemContainer container = Player.Inventory.GetContainerWithName(m_HealsContainerName);
if (container != null)
{
foreach (var slot in container.Slots)
{
if (slot.HasItem)
healsAmount++;
}
m_HealsAmountText.text = "x " + healsAmount.ToString();
}
else
{
m_HealsAmountText.text = "NULL";
}
}
}
}