using UnityEngine;

namespace mgaia.Utils.LayerSystem
{
    /// <summary>
    /// Behaviour padrão de aúdio que toca um efeito quando o botão é tocado e deixa de ser tocado
    /// </summary>
    /// <owner>Victor</owner>
    public abstract class AbstractSoundEffect : ITouchableEffects
    {
        [SerializeField]
        private string _touchBeganEffectAlias;

        [SerializeField]
        private string _touchEndedEffectAlias;

        public override void OnTouchBegan()
        {
            PlayEffect(_touchBeganEffectAlias);
        }

        public override void OnTouchEnded()
        {
            PlayEffect(_touchEndedEffectAlias);
        }

        /// <summary>
        /// Toca o efeito de alias passado
        /// </summary>
        /// <owner>Victor</owner>
        protected abstract void PlayEffect(string alias);
    }
}