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; } }