using UnityEngine; public class Effect : ScriptableObject { [SerializeField] private EffectInstance effectInstanceObject; [Header("Stats")] public float duration; public bool isConstant; //that means if it uses the tick function or not public virtual void ApplyEffect(Entity affectedEntity) { EffectInstance newEffectInstance = Instantiate(effectInstanceObject, affectedEntity.transform); newEffectInstance.affectedEntity = affectedEntity; } public virtual void EffectTick(Entity affectedEntity) { } public virtual void RemoveEffect(Entity affectedEntity) { } }