MayHeCome/Assets/Scripts/GlobalBuffElement.cs
2024-12-18 17:55:34 +08:00

51 lines
1.4 KiB
C#

using UnityEngine;
public class GlobalBuffElement: ScriptableObject, BuffElement
{
public string Name;
public string Description;
public float MaxTime = -1;
private float CurrentTime = 0;
public int ClickAdder = 1;
public float ClickTimeMultiplier = 0f;
public float ClickMultiplier = 0f;
public float GlobalMultiplier = 0f;
public void OnStaringEffect()
{
GlobalBuffSystem.Instance.ClickAdder += ClickAdder;
GlobalBuffSystem.Instance.ClickTimeMultiplier += ClickTimeMultiplier;
GlobalBuffSystem.Instance.ClickMultiplier += ClickMultiplier;
GlobalBuffSystem.Instance.GlobalMultiplier += GlobalMultiplier;
this.CurrentTime = this.MaxTime;
}
public void OnBeforeComputing()
{
}
public void OnAfterComputing()
{
}
public void OnUpdatingEffect(float delta)
{
if (this.MaxTime < 0) return;
this.CurrentTime -= delta;
if (this.CurrentTime <= 0)
{
this.OnEndingEffect();
}
}
public void OnEndingEffect()
{
GlobalBuffSystem.Instance.ClickAdder -= ClickAdder;
GlobalBuffSystem.Instance.ClickTimeMultiplier -= ClickTimeMultiplier;
GlobalBuffSystem.Instance.ClickMultiplier -= ClickMultiplier;
GlobalBuffSystem.Instance.GlobalMultiplier -= GlobalMultiplier;
}
}