51 lines
1.3 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class AmmoScreenView : MonoBehaviour
{
[SerializeField] private Image ReloadBar;
[SerializeField] private float FillMaxSpeed = 10;
[SerializeField] private TextMeshProUGUI TorpedoAmmoLabel;
[SerializeField] private TextMeshProUGUI MissileAmmoLabel;
[SerializeField] private GameObject TorpedoPointer;
[SerializeField] private GameObject MissilePointer;
WeaponModel model;
public void Initialize(WeaponModel weaponModel)
{
model = weaponModel;
weaponModel.OnUpdate += Refresh;
}
private void Refresh(WeaponModel model)
{
TorpedoAmmoLabel.text = model.Weapons[0].Ammo.ToString();
MissileAmmoLabel.text = model.Weapons[1].Ammo.ToString();
if (model.CurrentWeapon == model.Weapons[0])
{
TorpedoPointer.SetActive(true);
MissilePointer.SetActive(false);
}
else
{
TorpedoPointer.SetActive(false);
MissilePointer.SetActive(true);
}
}
private void Update()
{
if (model == null) return;
float progress = Mathf.MoveTowards(ReloadBar.fillAmount, model.CurrentWeapon.ReloadPercent, FillMaxSpeed * Time.deltaTime);
ReloadBar.fillAmount = progress;
}
}