Files
2025-05-29 22:31:40 +03:00

61 lines
2.3 KiB
C#

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<EventTrigger>().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();
}
}
}