using System; using UnityEngine; [Serializable] public abstract class EffectEventHandler { public abstract void HandleEvent(Effect effect); } [Serializable] public abstract class EffectUpdateHandler { public abstract void OnStart(Effect effect); public abstract void OnUpdate(); public abstract void OnEnd(); } public abstract class Effect : Entity { object owner; public void SetOwner(object owner) { this.owner = owner; } public T GetOwner() where T : class { return owner as T; } public abstract bool IsPlaying { get; protected set; } public abstract void Play(); public abstract void Play(Vector2 position); }