/** * 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; } } }
/** * 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; } } }
/** * 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); }
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); }
/** * 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); }