79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
[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 = 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
|
|
}
|
|
}
|