public static Item GetItemEquipmentBodyByEquipmentValue(string value, string gender, string job) { Item equipment = null; GameObject[] equipmentGO = Resources.LoadAll <GameObject>("Item/Prefab/"); foreach (GameObject itemGO in equipmentGO) { Item item = itemGO.GetComponent <Item>(); Debug.Log("Scan item : " + item.GetItemName()); if (item.IsEquipable()) { Item.ItemEquipment equipmentData = item.GetItemEquipment(); if (equipmentData.body) { if (equipmentData.gender == "all" || (gender == equipmentData.gender)) { if (equipmentData.job == "all" || (job == equipmentData.job)) { if (equipmentData.equipmentValue == value) { Debug.Log("Found Item : " + item.GetItemName()); equipment = item; break; } } } } } } return(equipment); }
public void UseItem(int index) { Debug.Log("Use item in index : " + index); if (!Item.ReferenceEquals(slots[index], null)) { Item oldEquipment = null; if (slots[index].IsEquipable()) { Item.ItemEquipment equipmentData = slots[index].GetItemEquipment(); PlayerStatus ps = PlayerStatus.Instance; if (equipmentData.head) { oldEquipment = ItemManager.GetItemEquipmentBodyByEquipmentValue(ps.head, ps.gender, ps.job); ps.head = equipmentData.equipmentValue; DGTRemote.GetInstance().RequestChangeEquipment(1, ps.head); } else if (equipmentData.body) { oldEquipment = ItemManager.GetItemEquipmentBodyByEquipmentValue(ps.body, ps.gender, ps.job); ps.body = equipmentData.equipmentValue; DGTRemote.GetInstance().RequestChangeEquipment(2, ps.body); } else if (equipmentData.weapon) { oldEquipment = ItemManager.GetItemEquipmentBodyByEquipmentValue(ps.weapon, ps.gender, ps.job); ps.weapon = equipmentData.equipmentValue; DGTRemote.GetInstance().RequestChangeEquipment(3, ps.weapon); } } else { Item.ItemEffect effect = slots[index].GetItemEffect(); NotificationSystem.Instance.AddNotification("คุณได้ใช้ไอเท็ม " + slots[index].GetItemName()); if (effect.GetEffectType() == (int)Item.ItemEffect.EffectId.POSITIVE) { PlayerStatus.Instance.AddHP(effect.GetEffectValue()); } } // remove item from inventory if (slots[index].IsStackable()) { DecreaseItemFromInventory(index); } else { DeleteItemFromInventory(index); } if (oldEquipment) { CollectItemToInventory(oldEquipment); } } }