示例#1
0
        /**
         * Add reward to Invetory whes is completed
         */
        private void GetRewards()
        {
            for (int i = 0; i < rewards.Length; i++)
            {
                switch (rewards[i].type)
                {
                case ItemType.Amulet:
                    AmuletPointer amuletPointer = new AmuletPointer();
                    amuletPointer.label = rewards[i].label;
                    rewards[i].amount   = Inventory.Instance.AddAmulet(amuletPointer);
                    break;

                case ItemType.Consumable:
                    ConsumablePointer consumablePointer = new ConsumablePointer();
                    consumablePointer.label  = rewards[i].label;
                    consumablePointer.amount = rewards[i].amount;
                    rewards[i].amount        = Inventory.Instance.AddConsumable(consumablePointer);
                    break;

                case ItemType.Equipment:
                    EquipmentPointer equipmentPointer = new EquipmentPointer();
                    equipmentPointer.label = rewards[i].label;
                    rewards[i].amount      = Inventory.Instance.AddEquipment(equipmentPointer);
                    break;

                case ItemType.QuestItem:
                    QuestItemPointer questItemPointer = new QuestItemPointer();
                    questItemPointer.label  = rewards[i].label;
                    questItemPointer.amount = rewards[i].amount;
                    rewards[i].amount       = Inventory.Instance.AddQuestItem(questItemPointer);
                    break;
                }
            }
        }
示例#2
0
        /**
         * Remove Items requirement from inventory when is completed
         */
        private void FetchRequirement()
        {
            for (int i = 0; i < items.Length; i++)
            {
                switch (items[i].type)
                {
                case ItemType.Amulet:
                    AmuletPointer amuletPointer = new AmuletPointer();
                    amuletPointer.label = items[i].label;
                    Inventory.Instance.RemoveAmulet(amuletPointer);
                    break;

                case ItemType.Consumable:
                    ConsumablePointer consumablePointer = new ConsumablePointer();
                    consumablePointer.label  = items[i].label;
                    consumablePointer.amount = items[i].amount;
                    Inventory.Instance.RemoveConsumable(consumablePointer);
                    break;

                case ItemType.Equipment:
                    EquipmentPointer equipmentPointer = new EquipmentPointer();
                    equipmentPointer.label = items[i].label;
                    Inventory.Instance.RemoveEquipment(equipmentPointer);
                    break;

                case ItemType.QuestItem:
                    QuestItemPointer questItemPointer = new QuestItemPointer();
                    questItemPointer.label  = items[i].label;
                    questItemPointer.amount = items[i].amount;
                    Inventory.Instance.RemoveQuestItem(questItemPointer);
                    break;
                }
            }
        }
示例#3
0
    /**
     * Amount dalam pointer adalah jumlah yang akan dikurangkan dari inventory
     */
    public bool RemoveQuestItem(QuestItemPointer _questItem, int index = -1)
    {
        int _amount = _questItem.amount;

        if (index == -1)
        {
            for (int i = 0; i < amulet.Length; i++)
            {
                if (questItem[i].label == _questItem.label)
                {
                    _amount = questItem[i].amount - _amount;
                    if (_amount < 0)
                    {
                        return(false);
                    }
                    else
                    {
                        questItem[i].amount = _amount;
                        if (_amount == 0)
                        {
                            questItem[i].label = ItemName.None;
                        }
                        return(true);
                    }
                }
            }
        }

        _amount = _questItem.amount;
        if (index > -1)
        {
            if (questItem[index].label == _questItem.label)
            {
                _amount = questItem[index].amount - _amount;
                if (_amount < 0)
                {
                    return(false);
                }
                else
                {
                    questItem[index].amount = _amount;
                    if (_amount == 0)
                    {
                        questItem[index].label = ItemName.None;
                    }
                    return(true);
                }
            }
        }

        return(false);
    }
示例#4
0
    public static Pickup PickupItem(Pickup item, GameObject instigator)
    {
        if (instigator.CompareTag("Player"))
        {
            switch (item.type)
            {
            case ItemType.Amulet:
                Amulet amulet = ItemDictionary.Instance.GetAmulet(item.itemName);
                if (amulet != null)
                {
                    AmuletPointer amuletPointer = new AmuletPointer();
                    amuletPointer.label = item.itemName;
                    int amount = Inventory.Instance.AddAmulet(amuletPointer);
                    Debug.Log((1 - amount) + " Item equipment " + amulet.label + " masuk ke inventory");
                    item.amount = amount;

                    // TODO implement UI notification
                }
                break;

            case ItemType.Equipment:
                Equipment equipment = ItemDictionary.Instance.GetEquipment(item.itemName);
                if (equipment != null)
                {
                    EquipmentPointer equipmentPointer = new EquipmentPointer();
                    equipmentPointer.label = item.itemName;
                    int amount = Inventory.Instance.AddEquipment(equipmentPointer);
                    Debug.Log((1 - amount) + " Item equipment " + equipment.label + " masuk ke inventory");
                    item.amount = amount;

                    // TODO implement UI notification
                }
                break;

            case ItemType.Consumable:
                Consumable consumable = ItemDictionary.Instance.GetConsumable(item.itemName);
                if (consumable != null)
                {
                    ConsumablePointer consumablePointer = new ConsumablePointer();
                    consumablePointer.label  = item.itemName;
                    consumablePointer.amount = item.amount;
                    int amount = Inventory.Instance.AddConsumable(consumablePointer);
                    Debug.Log((item.amount - amount) + " Item consumable " + consumable.label + " masuk ke inventory");
                    item.amount = amount;

                    // TODO implement UI notification
                }
                break;

            case ItemType.QuestItem:
                QuestItem questItem = ItemDictionary.Instance.GetQuestItem(item.itemName);
                if (questItem != null)
                {
                    QuestItemPointer questItemPointer = new QuestItemPointer();
                    questItemPointer.label  = item.itemName;
                    questItemPointer.amount = item.amount;
                    int amount = Inventory.Instance.AddQuestItem(questItemPointer);
                    Debug.Log((item.amount - amount) + " Item quest " + questItem.label + " masuk ke inventory");
                    item.amount = amount;

                    // TODO implement UI notification
                }
                break;
            }
        }

        return(item);
    }
示例#5
0
    /**
     * Amount pada pointer adalah jumlah item yang akan ditambahkan
     * Keluaran adalah jumlah barang yang tidak berhasil ditambahkan
     */
    public int AddQuestItem(QuestItemPointer _questItem, int index = -1, bool check = false)
    {
        int _amount = _questItem.amount;

        if (check || index == -1)
        {
            for (int i = 0; i < amulet.Length; i++)
            {
                if (questItem[i].label == _questItem.label && questItem[i].amount < 100)
                {
                    _amount = questItem[i].amount + _amount;
                    if (_amount < 100)
                    {
                        questItem[i].amount = _amount;
                        return(0);
                    }
                    else
                    {
                        questItem[i].amount = 99;
                        return(_amount - 99);
                    }
                }
            }
        }

        _amount = _questItem.amount;
        if (index == -1)
        {
            for (int i = 0; i < amulet.Length; i++)
            {
                if (questItem[i].label == ItemName.None)
                {
                    _amount = questItem[i].amount + _amount;
                    if (_amount < 100)
                    {
                        questItem[i].amount = _amount;
                        return(0);
                    }
                    else
                    {
                        questItem[i].amount = 99;
                        return(_amount - 99);
                    }
                }
            }
        }
        _amount = _questItem.amount;
        if (index > -1)
        {
            if (questItem[index].label == _questItem.label && questItem[index].amount < 100)
            {
                _amount = questItem[index].amount + _amount;
                if (_amount < 100)
                {
                    questItem[index].amount = _amount;
                    return(0);
                }
                else
                {
                    questItem[index].amount = 99;
                    return(_amount - 99);
                }
            }
            else if (questItem[index].label == ItemName.None)
            {
                _amount = questItem[index].amount + _amount;
                if (_amount < 100)
                {
                    questItem[index].amount = _amount;
                    return(0);
                }
                else
                {
                    questItem[index].amount = 99;
                    return(_amount - 99);
                }
            }
        }

        return(_amount);
    }