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);
    }
Ejemplo n.º 2
0
 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);
         }
     }
 }