Files
dungeons/Assets/HurricaneVR/Framework/Scripts/Weapons/HVRShotgunAmmoSocket.cs

53 lines
1.3 KiB
C#

using System.Collections;
using HurricaneVR.Framework.Core;
using HurricaneVR.Framework.Core.Grabbers;
namespace HurricaneVR.Framework.Weapons
{
public class HVRShotgunAmmoSocket : HVRSocket
{
public HVRShotgunMagazine ShotgunMagazine;
public override bool CanHover(HVRGrabbable grabbable)
{
if (!ShotgunMagazine.CanAddBullet())
return false;
return base.CanHover(grabbable);
}
public override bool CanGrab(HVRGrabbable grabbable)
{
if (!ShotgunMagazine.CanAddBullet())
return false;
return base.CanGrab(grabbable);
}
protected override void OnGrabbed(HVRGrabArgs args)
{
base.OnGrabbed(args);
if (ShotgunMagazine.TryAddBullet())
{
StartCoroutine(DropAndDestroy(args.Grabbable));
}
else
{
StartCoroutine(Drop(args.Grabbable));
}
}
private IEnumerator DropAndDestroy(HVRGrabbable grabbable)
{
yield return null;
grabbable.ForceRelease();
Destroy(grabbable.gameObject);
}
private IEnumerator Drop(HVRGrabbable grabbable)
{
yield return null;
grabbable.ForceRelease();
}
}
}