56 lines
2.0 KiB
C#
56 lines
2.0 KiB
C#
using UnityEngine;
|
|
|
|
[CreateAssetMenu(fileName = "TruthFountainData_Default", menuName = "Adventure/Truth Fountain/Truth Fountain Data")]
|
|
public class TruthFountainData : ScriptableObject
|
|
{
|
|
[Header("Basic")]
|
|
[SerializeField] private string title = "진실의 샘";
|
|
|
|
[Header("Questions")]
|
|
[SerializeField] private TruthQuestionData[] questions;
|
|
|
|
[Header("Rules")]
|
|
[Min(1)]
|
|
[SerializeField] private int maxLieScore = 3;
|
|
|
|
[Tooltip("켜두면 거짓 점수가 최대치에 도달하는 순간 바로 실패합니다. 끄면 모든 질문이 끝난 뒤 판정합니다.")]
|
|
[SerializeField] private bool failImmediatelyAtMaxLieScore = true;
|
|
|
|
[Min(0f)]
|
|
[SerializeField] private float resultDelay = 1.0f;
|
|
|
|
[Header("Success Result")]
|
|
[SerializeField] private string successTitle = "진실의 샘이 빛납니다";
|
|
|
|
[TextArea(2, 5)]
|
|
[SerializeField] private string successDescription = "당신의 진심이 샘에 닿았습니다.\n기억의 조각을 획득했습니다.";
|
|
|
|
[Header("Fail Result")]
|
|
[SerializeField] private string failTitle = "코가 너무 길어졌습니다";
|
|
|
|
[TextArea(2, 5)]
|
|
[SerializeField] private string failDescription = "샘이 당신의 대답을 믿지 못했습니다.\n다시 도전해보세요.";
|
|
|
|
public string Title => title;
|
|
public TruthQuestionData[] Questions => questions;
|
|
public int MaxLieScore => Mathf.Max(1, maxLieScore);
|
|
public bool FailImmediatelyAtMaxLieScore => failImmediatelyAtMaxLieScore;
|
|
public float ResultDelay => Mathf.Max(0f, resultDelay);
|
|
public string SuccessTitle => successTitle;
|
|
public string SuccessDescription => successDescription;
|
|
public string FailTitle => failTitle;
|
|
public string FailDescription => failDescription;
|
|
|
|
public int QuestionCount => questions == null ? 0 : questions.Length;
|
|
|
|
public TruthQuestionData GetQuestion(int index)
|
|
{
|
|
if (questions == null || index < 0 || index >= questions.Length)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return questions[index];
|
|
}
|
|
}
|