using UnityEngine;
// Scriptable object responsável por armazenar dados de quests.
[CreateAssetMenu(fileName = "New quest", menuName = "ScriptableObjects/QuestSO", order = 1)]
public class QSO_Base : ScriptableObject
{
//Dados a serem armazenados:
[SerializeField] string questName; // Nome da quest
[TextAreaAttribute]
[SerializeField] string questDesc; // Descrição da quest
[SerializeField] int questType; // Tipo de quest [ 1 - coleta / 2 - movimentação / 3 - derrotar X inimigos ]
[SerializeField] bool repeatable; // Quest pode ser repetida após terminada?
//Dados que dependem do tipo de quest selecionado:
[SerializeField] QuestItemGoal[] goals; // 1 e 3 - Itens a serem coletados ou monstros a serem mortos e suas quantias
[SerializeField] Vector3 pos; // 2 - Localização aproximada em X Y Z a ser alcançada
}
// Objeto responsável por armazenar ítens a serem coletados ou monstros a serem mortos para uma quest
[SerializeField]
class QuestItemGoal
{
[SerializeField] GameObject item; // GameObject do item ou monstro requerido (mudar para SO no futuro?)
[SerializeField] byte quant; // Quantidade do objeto requerida pela quest
}