using Sirenix.OdinInspector;
using UnityEngine;
using VOID.ScriptableObjects;

namespace VOID.Generic.Status.Effect
{
    [TypeRegistryItem("Add Status")]
    public class AddStatusEffect : BasicEffect
    {
        public BasicStatus status => _status;
        [SerializeField, Required] private BasicStatus _status;

        public override void OnApply() => forObject.statusManager.AddStatus(_status, source);
        public override void OnEnd() {}
        public override void OnTurnSelfEnd() {}
        public override void OnTurnSelfStart() {}
        public override void OnCancel() => OnEnd();
        
        public override string GetSimpleDescription() => $"add status: {_status.displayName}";
    }
}