﻿using UnityEngine;
using System.Collections;

namespace NDRLiteFPS
{
    public enum SurfaceType : int
    {
        Generic,
        Blood,
        Concrete,
        Dirt,
        Glass,
        Metal,
        Water,
        Wood,
        Crate,
        Carpet,
        Vent,
        Ladder
    }
    public class WeaponsGFX : MonoBehaviour
    {


        #region Singleton
        public static WeaponsGFX instance;
        private void Awake()
        {
            instance = this;
        }
        #endregion

        [SerializeField] Impact[] impacts;

        public Impact GetImpact(SurfaceType surfaceType)
        {
            return impacts[(int)surfaceType];
        }


    }

    [System.Serializable]
    public struct Impact
    {
        [SerializeField]
        string name;
        [SerializeField]
        GameObject[] bulletImpacts;
        [SerializeField] AudioClip[] impactClips;

        public SurfaceImpact GetSurfaceImpact
        {
            get
            {
                SurfaceImpact impact = bulletImpacts[Random.Range(0, bulletImpacts.Length)].GetComponent<SurfaceImpact>();

                //if (impact.AudioSource.enabled)
                //    impact.AudioSource.PlayOneShot(ImpactSFX);

                return impact;
            }
        }

        public GameObject SurfaceImpact
        {
            get
            {
                return bulletImpacts[Random.Range(0, bulletImpacts.Length)];
            }
        }

        public AudioClip ImpactSFX { get => impactClips[Random.Range(0, impactClips.Length)]; }
    }
}