69 lines
1.5 KiB
C#
69 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
} |