﻿using ImpactCFX.Pooling;
using UnityEngine;

namespace ImpactCFX.MasterAudio
{
    public class MasterAudioEffectProxyPool : ObjectPool<MasterAudioEffectProxy>
    {
        private EffectAttachMode effectAttachMode;
        private float audioFadeOutTime;

        public void Setup(EffectAttachMode effectAttachMode, float audioFadeOutTime)
        {
            this.effectAttachMode = effectAttachMode;
            this.audioFadeOutTime = audioFadeOutTime;
        }

        protected override MasterAudioEffectProxy createPooledObjectInstance(int index)
        {
            GameObject g = new GameObject("Master Audio Effect Proxy " + index);
            MasterAudioEffectProxy f = g.AddComponent<MasterAudioEffectProxy>();

            f.EffectAttachMode = effectAttachMode;
            f.AudioFadeTime = audioFadeOutTime;
            f.SetParentPoolGameObject(this.gameObject);
            f.ReturnToPool();

            return f;
        }
    }
}
