67 lines
1.5 KiB
C#
67 lines
1.5 KiB
C#
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
|
|
[CreateAssetMenu(fileName = "NewUserTasksPool", menuName = "DailyTask/UserTasksPool")]
|
|
public class userTasksPool : ScriptableObject
|
|
{
|
|
[Header("Task Definitions")]
|
|
public List<TaskDefinition> tasks = new List<TaskDefinition>();
|
|
|
|
[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;
|
|
|
|
[Tooltip("Target value to complete the task (e.g., 100 combo, 3 songs)")]
|
|
public float targetValue;
|
|
|
|
[Tooltip("Type of reward given upon completion")]
|
|
public RewardType rewardType;
|
|
|
|
[Tooltip("Quantity of the reward")]
|
|
public int rewardAmount;
|
|
|
|
[Tooltip("是否加入任务池")]
|
|
public bool addToTaskPool = true;
|
|
|
|
}
|
|
|
|
public enum TaskType
|
|
{
|
|
Login,
|
|
PlaySong,
|
|
FullCombo,
|
|
TotalScore,
|
|
WatchStory,
|
|
UseItem,
|
|
ShareGame
|
|
}
|
|
|
|
public enum RewardType
|
|
{
|
|
player_money,
|
|
player_material,
|
|
bottleOfEXP,
|
|
playerEXP
|
|
}
|
|
|
|
public enum RefreshFrequency
|
|
{
|
|
OnLogin,
|
|
DailyReset,
|
|
Never
|
|
}
|
|
}
|