using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "NewUserTasksPool", menuName = "DailyTask/UserTasksPool")] public class userTasksPool : ScriptableObject { [Header("Task Definitions")] public List tasks = new List(); [System.Serializable] public class TaskDefinition { [Tooltip("Unique identifier for the task")] public string taskID; [Tooltip("Description of the task shown to the user")] [TextArea(2, 4)] public string description; [Tooltip("Type of the task logic")] public TaskType taskType; [Tooltip("How often the task refreshes")] public RefreshFrequency refreshFrequency = RefreshFrequency.DailyReset; [Tooltip("Target value to complete the task")] public float targetValue = 1f; [Tooltip("Type of reward given upon completion")] public RewardType rewardType; [Tooltip("Quantity of the reward")] public int rewardAmount = 1; [Tooltip("Used when rewardType is expBottle")] public ExpBottleKind rewardExpBottleKind = ExpBottleKind.Common; [Tooltip("Used when rewardType is dushMaterial")] public DushMaterialKind rewardDushMaterialKind = DushMaterialKind.Material78021; [Tooltip("Whether this task can be included in the random daily task pool")] public bool addToTaskPool = true; [Tooltip("Weighted random selection weight")] public int selectionWeight = 1; } public enum TaskType { Login, PlaySong, FullCombo, TotalScore, WatchStory, UseItem, ShareGame, SpendCoins, GameDuration, SingleRunCombo, SingleRunScore, OnlineDuration, DifferentSongs } public enum RewardType { coins, expBottle, dushMaterial } public enum RefreshFrequency { OnLogin, DailyReset, Never } }