Untitled

mail@pastecode.io avatar
unknown
csharp
a year ago
1.3 kB
3
Indexable
Never

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
}