Example #1
0
    private void CheckAmmoPickup()
    {
        if (weapon == null)
        {
            return;
        }
        if (weapon.GetAmmo() < 0)
        {
            return;
        }

        IInteractable interactable = interactableChecker.GetNearestInteractable();

        if (interactable == null)
        {
            return;
        }
        if (interactable.Equals(weapon))
        {
            return;
        }
        if (interactable.GetType().IsAssignableFrom(weapon.GetType()))
        {
            Weapon pickup     = (Weapon)interactable;
            int    pickupAmmo = pickup.GetAmmo();
            int    newAmmo;
            if (pickupAmmo < 0)
            {
                newAmmo = -1;
            }
            else
            {
                newAmmo = pickupAmmo + weapon.GetAmmo();
            }
            weapon.SetAmmo(newAmmo);
            WeaponAudioComponent audioComp = weapon.GetAudioComponent();
            audioComp.Play("onCollecting");

            Destroy(pickup.gameObject);
        }
    }