Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/QuestData.cs
2026-03-04 09:37:33 +08:00

53 lines
945 B
C#

using System;
using Obvious.Soap;
using UnityEngine;
[CreateAssetMenu(fileName = "QuestData", menuName = "Scriptable Objects/QuestData")]
public class QuestData : ScriptableObject
{
public int id;
public int mapId;
public string questName;
public string questDescription;
public QuestType questType;
public int requiredLevel;
public float xpReward;
public float timeBased;
public int requiredActionAmount;
public ScriptableEventNoParam onRequiredActionPush;
public ScriptableEventInt onRequiredActionAmountPush;
public Action<QuestData> onQuestComplete;
public void ApplyEventsToHandler()
{
_ = questType;
onRequiredActionPush.OnRaised += ListenerHandler;
}
public void RevertEventsToHandler()
{
_ = questType;
onRequiredActionPush.OnRaised -= ListenerHandler;
}
private void ListenerHandler()
{
requiredActionAmount--;
if (requiredActionAmount <= 0)
{
onQuestComplete?.Invoke(this);
}
}
}