using System; using HurricaneVR.Framework.Weapons; using UnityEngine; using TMPro; using UnityEngine.Events; namespace Zero { public class WeaponAmmo : HVRAmmo { public UnityEvent OnAmmoChange; [SerializeField] private TMP_Text ammoCountText; [SerializeField] private GameObject bulletModel; protected override void Awake() { OnAmmoChange.AddListener(AmmoChanged); base.Awake(); OnAmmoChange?.Invoke(); } private void AmmoChanged() { if (ammoCountText) { ammoCountText.text = CurrentCount.ToString(); } if (bulletModel) { bulletModel.SetActive(CurrentCount > 0); } } public override void AddBullet() { base.AddBullet(); OnAmmoChange?.Invoke(); } public override bool CanAddBullet() { return base.CanAddBullet(); } public override bool TryAddBullet() { return base.TryAddBullet(); } public override void RemoveBullet() { base.RemoveBullet(); OnAmmoChange?.Invoke(); } public override void StartDestroy() { base.StartDestroy(); OnAmmoChange?.Invoke(); } protected override void Start() { base.Start(); OnAmmoChange?.Invoke(); } } }