private void Reload()
    {
        int needed = maxAmmo - inventory.ItemCount();

        if (needed == 0 || wielder == null)
        {
            return;
        }

        IHasAmmo ammoHolder = wielder as IHasAmmo;

        if (ammoHolder == null)
        {
            return;
        }

        if (ammoHolder.CheckAmmo(ammoType, 1) == 0)
        {
            return;
        }

        speaker.PlayEffect(Sound.Effects.RifleReload);
        List <ItemData> receivedAmmo = ammoHolder.RequestAmmo(ammoType, needed);

        foreach (ItemData ammo in receivedAmmo)
        {
            inventory.StoreItemData(ammo);
        }
    }
Exemple #2
0
    private void Reload()
    {
        List <ItemData> receivedAmmo = new List <ItemData>();

        if (!ReloadNeeded())
        {
            return;
        }

        IHasAmmo ammoHolder = wielder as IHasAmmo;

        if (ammoHolder != null)
        {
            receivedAmmo = ammoHolder.RequestAmmo(ammoType, ReloadAmmoNeeded());
        }

        if (receivedAmmo.Count == 0)
        {
            receivedAmmo = RequestReserveAmmo(ReloadAmmoNeeded());
        }

        if (receivedAmmo.Count == 0)
        {
            return;
        }

        foreach (ItemData ammo in receivedAmmo)
        {
            inventory.StoreItemData(ammo);
        }
    }
    private void Reload()
    {
        int needed = maxAmmo - ammo;

        if (needed == 0 || wielder == null)
        {
            return;
        }

        IHasAmmo ammoHolder = wielder as IHasAmmo;

        if (ammoHolder == null)
        {
            return;
        }

        if (ammoHolder.CheckAmmo(ammoType, 1) == 0)
        {
            return;
        }

        speaker.PlayEffect(Sound.Effects.RifleReload);
        int receivedAmmo = ammoHolder.RequestAmmo(ammoType, needed);

        StoreAmmo(ammoType, receivedAmmo);
    }
    public override void Equip(object wielder)
    {
        ItemBaseEquip(wielder);
        IHasAmmo ammoHolder = wielder as IHasAmmo;

        if (ammoHolder != null)
        {
            List <ItemData> newAmmo = ammoHolder.RequestAmmo(ammoType, maxAmmo);

            foreach (ItemData ammo in newAmmo)
            {
                inventory.StoreItemData(ammo);
            }
        }
    }