using System.Collections; using System.Collections.Generic; using UnityEngine; namespace InfallibleCode { public class Pills : MonoBehaviour, IInteractable { bool PillsCollected; // Unique ID for this Pill public string uniqueID; public void CollectMedicine() //Collects batteries. { if (PlayerHealthManager.GetInstance().CanCarryPills && !PillsCollected) { PillsCollected = true; PlayerHealthManager.GetInstance().pillsCollected += 1; AudioManager.GetInstance().PickUpItemSoundPlay(); //Add to ring inventory the new item if it doesn't exist. if(InventoryManager.GetInstance().pillsOnRingInventory.activeSelf == false) { RingInventory.GetInstance().AddItemToKeysAndItemsInventory(InventoryManager.GetInstance().pillsOnRingInventory.transform); print("Is reconstructing inventory"); InventoryManager.GetInstance().pillsOnRingInventory.SetActive(true); } InventoryManager.GetInstance().SaveTemporarilySavedPillsInventoryItemsData(gameObject.name, uniqueID); GameSaveData loadedData = SaveSlotManager.LoadPlayerData(SaveSlotManager.GetInstance().selectedSaveSlotID/*Change later to take the ID of the currently selected Save slot*/); if (loadedData.inventoryData.PillsPickup.FirstEverFoundPillCollected == false) { GameObject PillsTutorialEventTrigger = GameObject.Find("PillsTutorialEventTrigger"); PillsTutorialEventTrigger.GetComponent().Invoke(); loadedData.inventoryData.PillsPickup.FirstEverFoundPillCollected = true; SaveSlotManager.UpdateAndSaveData(loadedData); } StartCoroutine(DestroyPills()); } else //If you can't carry any more batteries because your inventory is full: { print("You can't carry any more medicines INVENTORY FULL!"); } } IEnumerator DestroyPills() { yield return new WaitForSeconds(0.1f); Destroy(gameObject); } public void Interact() { CollectMedicine(); } } }