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); }
public vAmmo(vAmmo ammo) { this.ammoName = ammo.ammoName; this.ammoID = ammo.ammoID; this.ammoItems = ammo.ammoItems; this._count = ammo.count; ammoItems = new List <vItem>(); }
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(); }
/// <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(); }
/// <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(); }
/// <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(); }
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); } } }
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); } } }