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]; } }