using Sirenix.OdinInspector; using VOID.Generic.Objects.Abstract; using VOID.Generic.Objects.Unit; using VOID.ScriptableObjects; namespace VOID.Generic.Status.Effect { [System.Serializable] public abstract class BasicEffect { [ReadOnly] protected AbstractObject forObject; [ReadOnly] protected BasicStatus forStatus; [ReadOnly] protected UnitObject source; public void Init(AbstractObject forObject, BasicStatus forStatus, UnitObject source = null) { this.forObject = forObject; this.forStatus = forStatus; this.source = source; } public abstract void OnApply(); public abstract void OnEnd(); public abstract void OnTurnSelfStart(); public abstract void OnTurnSelfEnd(); public abstract void OnCancel(); public abstract string GetSimpleDescription(); } }