コード例 #1
0
        void Start()
        {
            itemManager = GetComponent <vItemManager>();
            if (itemManager)
            {
                itemManager.onAddItem.AddListener(AddAmmo);
                itemManager.onDropItem.AddListener(DropAmmo);
                itemManager.onLeaveItem.AddListener(LeaveAmmo);
                itemManager.onChangeItemAmount.AddListener(ChangeItemAmount);
            }

            if (ammoListData)
            {
                ammos.Clear();
                for (int i = 0; i < ammoListData.ammos.Count; i++)
                {
                    var ammo = new vAmmo(ammoListData.ammos[i]);
                    ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
                    ammos.Add(ammo);
                }
            }
            AddAmmo("Rifle Ammo", 13, 999999);
            // 총알 수정
            AddAmmo("HandGun Ammo", 14, 999999);
        }
コード例 #2
0
 public vAmmo(vAmmo ammo)
 {
     this.ammoName  = ammo.ammoName;
     this.ammoID    = ammo.ammoID;
     this.ammoItems = ammo.ammoItems;
     this._count    = ammo.count;
     ammoItems      = new List <vItem>();
 }
コード例 #3
0
 protected void ChangeItemAmount(vItem item)
 {
     if (item.type == vItemType.Ammo)
     {
         var ammo = ammos.Find(a => a.ammoID == item.id);
         if (ammo == null)
         {
             ammo = new vAmmo(item.name, item.id, item.amount);
             ammos.Add(ammo);
             ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
         }
     }
     UpdateTotalAmmo();
 }
コード例 #4
0
        /// <summary>
        /// Use with AmmoStandalone Solution
        /// </summary>
        /// <param name="ammoName"></param>
        /// <param name="id"></param>
        /// <param name="amount"></param>
        public void AddAmmo(string ammoName, int id, int amount)
        {
            var ammo = ammos.Find(a => a.ammoID == id);

            if (ammo == null)
            {
                ammo = new vAmmo(ammoName, id, amount);
                ammos.Add(ammo);
                ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
            }
            else if (ammo != null)
            {
                ammo.AddAmmo(amount);
            }
            UpdateTotalAmmo();
        }
コード例 #5
0
 /// <summary>
 /// Use with ItemManager
 /// </summary>
 /// <param name="item"></param>
 public void AddAmmo(vItem item)
 {
     if (item.type == vItemType.Ammo)
     {
         var ammo = ammos.Find(a => a.ammoID == item.id);
         if (ammo == null)
         {
             ammo = new vAmmo(item.name, item.id, item.amount);
             ammos.Add(ammo);
             ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
         }
         //var ammoItems = ammo.ammoItems.FindAll(i => i.amount < i.maxStack);
         ammo.ammoItems.Add(item);
     }
     UpdateTotalAmmo();
 }
コード例 #6
0
        /// <summary>
        /// Use with ItemManager
        /// </summary>
        /// <param name="item"></param>
        public void AddAmmo(vItem item)
        {
            if (item.type == vItemType.Ammo)
            {
                var ammo = ammos.Find(a => a.ammoID == item.id);
                if (ammo == null)
                {
                    ammo = new vAmmo(item.name, item.id, 0);
                    ammos.Add(ammo);
                    ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
                }

                ammo.ammoItems.Add(item);
            }
            else
            {
                var primaryAmmo   = item.GetItemAttribute(vItemAttributes.AmmoCount);
                var secundaryAmmo = item.GetItemAttribute(vItemAttributes.SecundaryAmmoCount);
                if (primaryAmmo != null || secundaryAmmo != null)
                {
                    var weaponReference = item.originalObject.GetComponent <vShooter.vShooterWeapon>();
                    if (weaponReference != null)
                    {
                        if (primaryAmmo != null && primaryAmmo.value > weaponReference.clipSize)
                        {
                            var extraAmmo = primaryAmmo.value - weaponReference.clipSize;
                            primaryAmmo.value -= extraAmmo;
                            ItemReference newAmmoItem = new ItemReference(weaponReference.ammoID);
                            newAmmoItem.amount = extraAmmo;
                            itemManager.AddItem(newAmmoItem, true);
                        }
                        if (secundaryAmmo != null && weaponReference.secundaryWeapon != null && secundaryAmmo.value > weaponReference.secundaryWeapon.clipSize)
                        {
                            var extraAmmo = secundaryAmmo.value - weaponReference.secundaryWeapon.clipSize;
                            secundaryAmmo.value -= extraAmmo;
                            ItemReference newAmmoItem = new ItemReference(weaponReference.secundaryWeapon.ammoID);
                            newAmmoItem.amount = extraAmmo;
                            itemManager.AddItem(newAmmoItem, true);
                        }
                    }
                }
            }
            UpdateTotalAmmo();
        }
コード例 #7
0
ファイル: vAmmoManager.cs プロジェクト: ZRace/ZRace
        public void ReloadAllAmmoItems()
        {
            var ammosInManager = itemManager.items.FindAll(item => item.type == vItemType.Ammo);

            ammos.Clear();
            for (int i = 0; i < ammosInManager.Count; i++)
            {
                vAmmo ammo = ammos.Find(a => a.ammoID.Equals(ammosInManager[i].id));
                if (ammo == null)
                {
                    ammo = new vAmmo(ammosInManager[i].name, ammosInManager[i].id, ammosInManager[i].amount);
                    ammos.Add(ammo);
                }
                else
                {
                    ammo.AddAmmo(ammosInManager[i].amount);
                }
            }
        }
コード例 #8
0
        void Start()
        {
            itemManager = GetComponent <vItemManager>();
            if (itemManager)
            {
                itemManager.onAddItem.AddListener(AddAmmo);
                itemManager.onDropItem.AddListener(DropAmmo);
                itemManager.onDestroyItem.AddListener(LeaveAmmo);
                itemManager.onChangeItemAmount.AddListener(ChangeItemAmount);
                itemManager.onLoadItems.AddListener(ReloadAllAmmoItems);
            }

            if (ammoListData)
            {
                ammos.Clear();
                for (int i = 0; i < ammoListData.ammos.Count; i++)
                {
                    var ammo = new vAmmo(ammoListData.ammos[i]);
                    ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem);
                    ammos.Add(ammo);
                }
            }
        }