62 lines
2.5 KiB
C#
62 lines
2.5 KiB
C#
using Quests;
|
||
using UnityEngine;
|
||
|
||
public class TrashPile : MonoBehaviour, IInteractable
|
||
{
|
||
[Header("Settings")]
|
||
public ItemData requiredBagItem; // Ссылка на ItemData мешка (для проверки в инвентаре)
|
||
|
||
public void Interact()
|
||
{
|
||
// 1. Проверяем, что сейчас активен именно квест по сбору мусора
|
||
if (QuestManager.Instance?.currentQuest is Q1CollectGarbageQuest garbageQuest)
|
||
{
|
||
// 2. Проверяем, есть ли у игрока мешок
|
||
if (InventorySystem.Instance.HasItem(requiredBagItem))
|
||
{
|
||
// 3. Проверяем, не полон ли мешок
|
||
if (garbageQuest.IsBagFull())
|
||
{
|
||
Debug.Log("Мешок полон! Сначала выбросьте его в контейнер.");
|
||
}
|
||
else
|
||
{
|
||
// Если все проверки пройдены, уведомляем систему квестов
|
||
InteractionHandler.Instance.NotifyInteraction(gameObject);
|
||
// Уничтожаем объект мусора
|
||
Destroy(gameObject);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Debug.Log("Нужен мешок для мусора!");
|
||
}
|
||
}
|
||
// Если активен другой квест, ничего не делаем.
|
||
}
|
||
|
||
public string GetDescription()
|
||
{
|
||
// Даем описание, только если активен квест по сбору мусора
|
||
if (QuestManager.Instance?.currentQuest is Q1CollectGarbageQuest garbageQuest)
|
||
{
|
||
// Проверяем, есть ли у игрока мешок
|
||
if (!InventorySystem.Instance.HasItem(requiredBagItem))
|
||
{
|
||
return "Нужен мешок для мусора"; // Подсказка, если нет мешка
|
||
}
|
||
|
||
// Проверяем, не полон ли мешок
|
||
if (garbageQuest.IsBagFull())
|
||
{
|
||
return "Мешок полон!";
|
||
}
|
||
|
||
return "Собрать мусор"; // Стандартное описание
|
||
}
|
||
|
||
// Если квест неактивен, возвращаем пустую строку
|
||
return "";
|
||
}
|
||
}
|