using Otter;
using System.Collections.Generic;

namespace PpbbffttMiningHa.Utility
{
    public class SoundManager
    {
        #region Public Static
        public static Dictionary<string, Sound> sounds = new Dictionary<string, Sound>();
        public static bool isSoundEnabled = true;
        #endregion

        #region Private Variables
        private static float _volume = 0;
        #region menu sounds
        private readonly Sound _open = new Sound(Assets.SFX_OPEN);
        private readonly Sound _openTwo = new Sound(Assets.SFX_OPEN2);
        private readonly Sound _openThree = new Sound(Assets.SFX_OPEN3);
        private readonly Sound _close = new Sound(Assets.SFX_CLOSE);
        private readonly Sound _blip = new Sound(Assets.SFX_BLIP);
        private readonly Sound _blip1 = new Sound(Assets.SFX_BLIP);
        private readonly Sound _blip2 = new Sound(Assets.SFX_BLIP);
        private readonly Sound _blip3 = new Sound(Assets.SFX_BLIP);
        private readonly Sound _tone = new Sound(Assets.SFX_TONE);
        private readonly Sound _airsound = new Sound(Assets.SFX_AIRSOUND);
        private readonly Sound _alligatorCreep = new Sound(Assets.SFX_ALLIGATORCREEP);
        private readonly Sound _alligatorDying = new Sound(Assets.SFX_ALLIGATORDYING);
        private readonly Sound _alligatorHurt = new Sound(Assets.SFX_ALLIGATORHURT1);
        private readonly Sound _alligatorHurt2 = new Sound(Assets.SFX_ALLIGATORHURT2);
        private readonly Sound _alligatorHurt3 = new Sound(Assets.SFX_ALLIGATORHURT3);
        private readonly Sound _alligatorHurt4 = new Sound(Assets.SFX_ALLIGATORHURT4);
        private readonly Sound _alligatorHurt5 = new Sound(Assets.SFX_ALLIGATORHURT5);
        private readonly Sound _alligatorHurt6 = new Sound(Assets.SFX_ALLIGATORHURT6);
        private readonly Sound _alligatorHurt7 = new Sound(Assets.SFX_ALLIGATORHURT7);
        private readonly Sound _alligatorHurt8 = new Sound(Assets.SFX_ALLIGATORHURT8);
        private readonly Sound _alligatorHurt9 = new Sound(Assets.SFX_ALLIGATORHURT9);
        private readonly Sound _alligatorHurt10 = new Sound(Assets.SFX_ALLIGATORHURT10);
        private readonly Sound _alligatorHurt11 = new Sound(Assets.SFX_ALLIGATORHURT11);
        private readonly Sound _ancientDeath = new Sound(Assets.SFX_ANCIENTDEATH);
        private readonly Sound _ancientHurt = new Sound(Assets.SFX_ANCIENTHURT1);
        private readonly Sound _ancientHurt2 = new Sound(Assets.SFX_ANCIENTHURT2);
        private readonly Sound _ancientHurt3 = new Sound(Assets.SFX_ANCIENTHURT3);
        private readonly Sound _ancientHurt4 = new Sound(Assets.SFX_ANCIENTHURT4);
        private readonly Sound _ancientHurt5 = new Sound(Assets.SFX_ANCIENTHURT5);
        private readonly Sound _ancientHurt6 = new Sound(Assets.SFX_ANCIENTHURT6);
        private readonly Sound _badBellRing2 = new Sound(Assets.SFX_BADBELLRING2);
        private readonly Sound _ballBounce = new Sound(Assets.SFX_BALLBOUNCE1);
        private readonly Sound _ballBounce2 = new Sound(Assets.SFX_BALLBOUNCE2);
        private readonly Sound _ballBounce3 = new Sound(Assets.SFX_BALLBOUNCE3);
        private readonly Sound _ballBounce4 = new Sound(Assets.SFX_BALLBOUNCE4);
        private readonly Sound _ballBounce5 = new Sound(Assets.SFX_BALLBOUNCE5);
        private readonly Sound _ballBounce6 = new Sound(Assets.SFX_BALLBOUNCE6);
        private readonly Sound _ballBounce7 = new Sound(Assets.SFX_BALLBOUNCE7);
        private readonly Sound _ballBounce8 = new Sound(Assets.SFX_BALLBOUNCE8);
        private readonly Sound _ballHitTrashCan = new Sound(Assets.SFX_BALLHITTRASHCAN);
        private readonly Sound _bellClunk = new Sound(Assets.SFX_BELLCLUNK1);
        private readonly Sound _bellClunk2 = new Sound(Assets.SFX_BELLCLUNK2);
        private readonly Sound _bellRing = new Sound(Assets.SFX_BELLRING1);
        private readonly Sound _bombLong = new Sound(Assets.SFX_BOMB1);
        private readonly Sound _bombLong2 = new Sound(Assets.SFX_BOMB2);
        private readonly Sound _bombLong3 = new Sound(Assets.SFX_BOMB3);
        private readonly Sound _bombMedium = new Sound(Assets.SFX_BOMB4);
        private readonly Sound _bombMedium2 = new Sound(Assets.SFX_BOMB5);
        private readonly Sound _bombMedium3 = new Sound(Assets.SFX_BOMB6);
        private readonly Sound _bombShort = new Sound(Assets.SFX_BOMB7);
        private readonly Sound _bombShort2 = new Sound(Assets.SFX_BOMB8);
        private readonly Sound _bombShort3 = new Sound(Assets.SFX_BOMB9);
        private readonly Sound _bombSetDown = new Sound(Assets.SFX_BOMBSETDOWN);
        private readonly Sound _bombSetDown2 = new Sound(Assets.SFX_BOMBSETDOWN2);
        private readonly Sound _bombSetDown3 = new Sound(Assets.SFX_BOMBSETDOWN3);
        private readonly Sound _bombSetDown4 = new Sound(Assets.SFX_BOMBSETDOWN4);
        private readonly Sound _bombSetDown5 = new Sound(Assets.SFX_BOMBSETDOWN5);
        private readonly Sound _bombSetDown6 = new Sound(Assets.SFX_BOMBSETDOWN6);
        private readonly Sound _closeDoor = new Sound(Assets.SFX_CLOSEDOOR);
        private readonly Sound _creepySound = new Sound(Assets.SFX_CREEPYSOUND);
        private readonly Sound _doorOpen = new Sound(Assets.SFX_DOOROPEN1);
        private readonly Sound _doorOpen2 = new Sound(Assets.SFX_DOOROPEN2);
        private readonly Sound _doubleTap = new Sound(Assets.SFX_DOUBLETAP);
        private readonly Sound _duckcall = new Sound(Assets.SFX_DUCKCALL);
        private readonly Sound _gemBounce = new Sound(Assets.SFX_GEMBOUNCE);
        private readonly Sound _gemBounce2 = new Sound(Assets.SFX_GEMBOUNCE2);
        private readonly Sound _gemBounce3 = new Sound(Assets.SFX_GEMBOUNCE3);
        private readonly Sound _gemBounce4 = new Sound(Assets.SFX_GEMBOUNCE4);
        private readonly Sound _gemBounce5 = new Sound(Assets.SFX_GEMBOUNCE5);
        private readonly Sound _gemBounce6 = new Sound(Assets.SFX_GEMBOUNCE6);
        private readonly Sound _gemBounce7 = new Sound(Assets.SFX_GEMBOUNCE7);
        private readonly Sound _gemBounce8 = new Sound(Assets.SFX_GEMBOUNCE8);
        private readonly Sound _gemBounce9 = new Sound(Assets.SFX_GEMBOUNCE9);
        private readonly Sound _humanHurt = new Sound(Assets.SFX_HUMANHURT1);
        private readonly Sound _humanHurt2 = new Sound(Assets.SFX_HUMANHURT2);
        private readonly Sound _humanHurt3 = new Sound(Assets.SFX_HUMANHURT3);
        private readonly Sound _jetPack = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _jetPack1 = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _jetPack2 = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _jetPack3 = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _jetPack4 = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _jetPack5 = new Sound(Assets.SFX_JETPACK);
        private readonly Sound _keyBounce = new Sound(Assets.SFX_KEYBOUNCE1);
        private readonly Sound _keyBounce2 = new Sound(Assets.SFX_KEYBOUNCE2);
        private readonly Sound _keyBounce3 = new Sound(Assets.SFX_KEYBOUNCE3);
        private readonly Sound _keyBounce4 = new Sound(Assets.SFX_KEYBOUNCE4);
        private readonly Sound _keyBounce5 = new Sound(Assets.SFX_KEYBOUNCE5);
        private readonly Sound _keyBounce6 = new Sound(Assets.SFX_KEYBOUNCE6);
        private readonly Sound _keyBounce7 = new Sound(Assets.SFX_KEYBOUNCE7);
        private readonly Sound _keyBounce8 = new Sound(Assets.SFX_KEYBOUNCE8);
        private readonly Sound _keyBounce9 = new Sound(Assets.SFX_KEYBOUNCE9);
        private readonly Sound _keyPickup = new Sound(Assets.SFX_KEYPICKUP1);
        private readonly Sound _keyPickup2 = new Sound(Assets.SFX_KEYPICKUP2);
        private readonly Sound _keyPickup3 = new Sound(Assets.SFX_KEYPICKUP3);
        private readonly Sound _keyPickup4 = new Sound(Assets.SFX_KEYPICKUP4);
        private readonly Sound _keyPickup5 = new Sound(Assets.SFX_KEYPICKUP5);
        private readonly Sound _lightPlasticClick = new Sound(Assets.SFX_LIGHTPLASTICCLICK);
        private readonly Sound _lightTapSound = new Sound(Assets.SFX_LIGHTTAPSOUND);
        private readonly Sound _loudKeyDrop = new Sound(Assets.SFX_LOUDKEYDROP);
        private readonly Sound _lowSoundPass = new Sound(Assets.SFX_LOWSOUNDPASS);
        private readonly Sound _metalBang = new Sound(Assets.SFX_METALBANG);
        private readonly Sound _metalBang2 = new Sound(Assets.SFX_METALBANG2);
        private readonly Sound _money = new Sound(Assets.SFX_MONEY);
        private readonly Sound _money2 = new Sound(Assets.SFX_MONEY2);
        private readonly Sound _money3 = new Sound(Assets.SFX_MONEY3);
        private readonly Sound _money4 = new Sound(Assets.SFX_MONEY4);
        private readonly Sound _money5 = new Sound(Assets.SFX_MONEY5);
        private readonly Sound _monsterYell = new Sound(Assets.SFX_MONSTERYELL);
        private readonly Sound _monsterYell2 = new Sound(Assets.SFX_MONSTERYELL2);
        private readonly Sound _monsterYell3 = new Sound(Assets.SFX_MONSTERYELL3);
        private readonly Sound _monsterYell4 = new Sound(Assets.SFX_MONSTERYELL4);
        private readonly Sound _monsterYell5 = new Sound(Assets.SFX_MONSTERYELL5);
        private readonly Sound _moveThroughDirt = new Sound(Assets.SFX_MOVETHROUGHDIRT1);
        private readonly Sound _moveThroughDirt2 = new Sound(Assets.SFX_MOVETHROUGHDIRT2);
        private readonly Sound _moveThroughDirt3 = new Sound(Assets.SFX_MOVETHROUGHDIRT3);
        private readonly Sound _moveThroughDirt4 = new Sound(Assets.SFX_MOVETHROUGHDIRT4);
        private readonly Sound _praireDogYip = new Sound(Assets.SFX_PRAIREDOGYIP);
        private readonly Sound _praireDogYip2 = new Sound(Assets.SFX_PRAIREDOGYIP2);
        private readonly Sound _titleScreenOpenSound = new Sound(Assets.SFX_TITLESCREENOPEN);
        private readonly Sound _unlockDoor = new Sound(Assets.SFX_UNLOCKDOOR);
        private readonly Sound _waterDrain = new Sound(Assets.SFX_WATERDRAIN);
        private readonly Sound _woodSliding = new Sound(Assets.SFX_WOODSLIDING);
        #endregion
        #region SoundInstances
        private static Sound locatedSound;
        #region Additional Set Down References
        /* This is when we want to make the same sound, but have more than one going off at a time.
         * Through experience I've found it better to just make 10 unique sounds for this sound and have each one of those play randomly that way they
         * don't stack and fail to play like this one. Then you just add the amount of sounds based on the frequency you want to hear.*/
        private readonly Sound _bombSetDown7 = new Sound(Assets.SFX_BOMBSETDOWN6);
        private readonly Sound _bombSetDown8 = new Sound(Assets.SFX_BOMBSETDOWN);
        private readonly Sound _bombSetDown9 = new Sound(Assets.SFX_BOMBSETDOWN2);
        private readonly Sound _bombSetDown10 = new Sound(Assets.SFX_BOMBSETDOWN3);
        private readonly Sound _bombSetDown11 = new Sound(Assets.SFX_BOMBSETDOWN4);
        private readonly Sound _bombSetDown12 = new Sound(Assets.SFX_BOMBSETDOWN5);
        private readonly Sound _bombSetDown13 = new Sound(Assets.SFX_BOMBSETDOWN6);
        private readonly Sound _bombSetDown14 = new Sound(Assets.SFX_BOMBSETDOWN);
        private readonly Sound _bombSetDown15 = new Sound(Assets.SFX_BOMBSETDOWN2);
        private readonly Sound _bombSetDown16 = new Sound(Assets.SFX_BOMBSETDOWN3);
        private readonly Sound _bombSetDown17 = new Sound(Assets.SFX_BOMBSETDOWN4);
        private readonly Sound _bombSetDown18 = new Sound(Assets.SFX_BOMBSETDOWN5);
        #endregion
        #region Additional Bomb Explosion References
        /* This is when we want to make the same sound, but have more than one going off at a time.
         * Through experience I've found it better to just make 10 unique sounds for this sound and have each one of those play randomly that way they
         * don't stack and fail to play like this one. Then you just add the amount of sounds based on the frequency you want to hear.*/
        private readonly Sound _bombShort4 = new Sound(Assets.SFX_BOMB7);
        private readonly Sound _bombShort5 = new Sound(Assets.SFX_BOMB8);
        private readonly Sound _bombShort6 = new Sound(Assets.SFX_BOMB9);
        private readonly Sound _bombShort7 = new Sound(Assets.SFX_BOMB7);
        private readonly Sound _bombShort8 = new Sound(Assets.SFX_BOMB8);
        private readonly Sound _bombShort9 = new Sound(Assets.SFX_BOMB9);
        private readonly Sound _bombLong4 = new Sound(Assets.SFX_BOMB1);
        private readonly Sound _bombLong5 = new Sound(Assets.SFX_BOMB2);
        private readonly Sound _bombLong6 = new Sound(Assets.SFX_BOMB3);
        private readonly Sound _bombLong7 = new Sound(Assets.SFX_BOMB1);
        private readonly Sound _bombLong8 = new Sound(Assets.SFX_BOMB2);
        private readonly Sound _bombLong9 = new Sound(Assets.SFX_BOMB3);
        private readonly Sound _bombMedium4 = new Sound(Assets.SFX_BOMB4);
        private readonly Sound _bombMedium5 = new Sound(Assets.SFX_BOMB5);
        private readonly Sound _bombMedium6 = new Sound(Assets.SFX_BOMB6);
        private readonly Sound _bombMedium7 = new Sound(Assets.SFX_BOMB4);
        private readonly Sound _bombMedium8 = new Sound(Assets.SFX_BOMB5);
        private readonly Sound _bombMedium9 = new Sound(Assets.SFX_BOMB6);
        #endregion
        #endregion
        #endregion

        public SoundManager()
        {
            LoadSounds();
        }
        #region Public Properties
        public bool SoundIsEnabled
        {
            get
            {
                return isSoundEnabled;
            }

            set
            {
                isSoundEnabled = value;
            }
        }
        #endregion

        #region Public Methods and Operators
        public static void PlayRequestedSound(string sound, float volume = 1.0f)
        {
            _volume = volume;
            //get sound.
            //if sound is playing, get the sound again and set it to a new instance,
            //if new sound is playing, get the sound again and set it to a new instance,
            //if new sound is playing, get the sound again and...
            try
            {
                for (var i = 1; i < 20; i++)//max sounds is the biggest number in there
                {
                    sounds.TryGetValue(sound, out locatedSound);
                    if (locatedSound.IsPlaying)
                    {
                        //Console.WriteLine("sound " + i + " is playing.");
                        if (i != 1)
                        {
                            if (i.ToString().Length > 1)
                                sound = sound.TrimEnd(sound[sound.Length - 2]);
                            else
                                sound = sound.TrimEnd(sound[sound.Length - 1]);
                        }
                        sound = sound + i.ToString();
                        //Console.WriteLine("sound?: " + sound);
                        sounds.TryGetValue(sound, out locatedSound);
                    }
                    else if (isSoundEnabled)
                    {
                        //i need the volume of the sound to decrease the more you have playing at the same time.
                        //so if 1 full sound. 2 a little less, 3 etc.
                        #region SetSoundVolumeBasedOnNumberOfSoundsPlayingAtOnce
                        if (_volume == 1)//this represents the Default volume settings if I don't try to set the volume.
                        {
                            if (i == 1)
                                volume = 1f;
                            else if (i == 2)
                                volume = .9f;
                            else if (i == 3)
                                volume = .8f;
                            else if (i == 4)
                                volume = .7f;
                            else if (i == 5)
                                volume = .6f;
                            else if (i == 6)
                                volume = .5f;
                            else if (i == 7)
                                volume = .4f;
                            else if (i == 8)
                                volume = .3f;
                            else if (i == 9)
                                volume = .2f;
                            else if (i == 10)
                                volume = .1f;
                            else if (i == 11)
                                volume = .09f;
                            else if (i >= 12)
                                volume = .08f;
                        }
                        else//if i do set the volume. Just reduce the level of sound as we go?
                        {
                            if (i == 1)
                                volume = _volume;//reset the volume to whatever we initially set it to.
                            else if (i >= 2 && i < 12 && volume > .01f)//reduce the volume by a slower rate
                                volume -= .02f;
                            else if (i >= 12 && volume > .01f)
                                volume -= .1f;//now really reduce it
                        }
                        #endregion
                        locatedSound.Volume = volume;
                        locatedSound.Play();
                        break;
                    }
                }
            }
            catch
            {
                //System.Console.WriteLine("playing the sound Failed");
            }
        }

        public void LoadSounds()
        {
            sounds.Add("_open", _open);
            sounds.Add("_openTwo", _openTwo);
            sounds.Add("_openThree", _openThree);
            sounds.Add("_close", _close);
            sounds.Add("_blip", _blip);
            sounds.Add("_blip1", _blip1);
            sounds.Add("_blip2", _blip2);
            sounds.Add("_blip3", _blip3);
            sounds.Add("_tone", _tone);

            sounds.Add("_airsound", _airsound);
            sounds.Add("_alligatorCreep", _alligatorCreep);
            sounds.Add("_alligatorDying", _alligatorDying);
            sounds.Add("_alligatorHurt", _alligatorHurt);
            sounds.Add("_alligatorHurt2", _alligatorHurt2);
            sounds.Add("_alligatorHurt3", _alligatorHurt3);
            sounds.Add("_alligatorHurt4", _alligatorHurt4);
            sounds.Add("_alligatorHurt5", _alligatorHurt5);
            sounds.Add("_alligatorHurt6", _alligatorHurt6);
            sounds.Add("_alligatorHurt7", _alligatorHurt7);
            sounds.Add("_alligatorHurt8", _alligatorHurt8);
            sounds.Add("_alligatorHurt9", _alligatorHurt9);
            sounds.Add("_alligatorHurt10", _alligatorHurt10);
            sounds.Add("_alligatorHurt11", _alligatorHurt11);
            sounds.Add("_ancientDeath", _ancientDeath);
            sounds.Add("_ancientHurt", _ancientHurt);
            sounds.Add("_ancientHurt2", _ancientHurt2);
            sounds.Add("_ancientHurt3", _ancientHurt3);
            sounds.Add("_ancientHurt4", _ancientHurt4);
            sounds.Add("_ancientHurt5", _ancientHurt5);
            sounds.Add("_ancientHurt6", _ancientHurt6);
            sounds.Add("_badBellRing2", _badBellRing2);
            sounds.Add("_ballBounce", _ballBounce);
            sounds.Add("_ballBounce2", _ballBounce2);
            sounds.Add("_ballBounce3", _ballBounce3);
            sounds.Add("_ballBounce4", _ballBounce4);
            sounds.Add("_ballBounce5", _ballBounce5);
            sounds.Add("_ballBounce6", _ballBounce6);
            sounds.Add("_ballBounce7", _ballBounce7);
            sounds.Add("_ballBounce8", _ballBounce8);
            sounds.Add("_ballHitTrashCan", _ballHitTrashCan);
            sounds.Add("_bellClunk", _bellClunk);
            sounds.Add("_bellClunk2", _bellClunk2);
            sounds.Add("_bellRing", _bellRing);
            sounds.Add("_bombLong", _bombLong);
            sounds.Add("_bombLong2", _bombLong2);
            sounds.Add("_bombLong3", _bombLong3);
            sounds.Add("_bombMedium", _bombMedium);
            sounds.Add("_bombMedium2", _bombMedium2);
            sounds.Add("_bombMedium3", _bombMedium3);
            sounds.Add("_bombShort", _bombShort);
            sounds.Add("_bombShort2", _bombShort2);
            sounds.Add("_bombShort3", _bombShort3);
            sounds.Add("_bombSetDown", _bombSetDown);
            sounds.Add("_bombSetDown2", _bombSetDown2);
            sounds.Add("_bombSetDown3", _bombSetDown3);
            sounds.Add("_bombSetDown4", _bombSetDown4);
            sounds.Add("_bombSetDown5", _bombSetDown5);
            sounds.Add("_bombSetDown6", _bombSetDown6);
            sounds.Add("_closeDoor", _closeDoor);
            sounds.Add("_creepySound", _creepySound);
            sounds.Add("_doorOpen", _doorOpen);
            sounds.Add("_doorOpen2", _doorOpen2);
            sounds.Add("_doubleTap", _doubleTap);
            sounds.Add("_duckcall", _duckcall);
            sounds.Add("_gemBounce", _gemBounce);
            sounds.Add("_gemBounce2", _gemBounce2);
            sounds.Add("_gemBounce3", _gemBounce3);
            sounds.Add("_gemBounce4", _gemBounce4);
            sounds.Add("_gemBounce5", _gemBounce5);
            sounds.Add("_gemBounce6", _gemBounce6);
            sounds.Add("_gemBounce7", _gemBounce7);
            sounds.Add("_gemBounce8", _gemBounce8);
            sounds.Add("_gemBounce9", _gemBounce9);
            sounds.Add("_humanHurt", _humanHurt);
            sounds.Add("_humanHurt2", _humanHurt2);
            sounds.Add("_humanHurt3", _humanHurt3);
            sounds.Add("_jetPack", _jetPack);
            //sounds.Add("_jetPack1", _jetPack1);
            // sounds.Add("_jetPack2", _jetPack2);
            // sounds.Add("_jetPack3", _jetPack3);
            // sounds.Add("_jetPack4", _jetPack4);
            //sounds.Add("_jetPack5", _jetPack5);
            sounds.Add("_keyBounce", _keyBounce);
            sounds.Add("_keyBounce2", _keyBounce2);
            sounds.Add("_keyBounce3", _keyBounce3);
            sounds.Add("_keyBounce4", _keyBounce4);
            sounds.Add("_keyBounce5", _keyBounce5);
            sounds.Add("_keyBounce6", _keyBounce6);
            sounds.Add("_keyBounce7", _keyBounce7);
            sounds.Add("_keyBounce8", _keyBounce8);
            sounds.Add("_keyBounce9", _keyBounce9);
            sounds.Add("_keyPickup", _keyPickup);
            sounds.Add("_keyPickup2", _keyPickup2);
            sounds.Add("_keyPickup3", _keyPickup3);
            sounds.Add("_keyPickup4", _keyPickup4);
            sounds.Add("_keyPickup5", _keyPickup5);
            sounds.Add("_lightPlasticClick", _lightPlasticClick);
            sounds.Add("_lightTapSound", _lightTapSound);
            sounds.Add("_loudKeyDrop", _loudKeyDrop);
            sounds.Add("_lowSoundPass", _lowSoundPass);
            sounds.Add("_metalBang", _metalBang);
            sounds.Add("_metalBang2", _metalBang2);
            sounds.Add("_money", _money);
            sounds.Add("_money2", _money2);
            sounds.Add("_money3", _money3);
            sounds.Add("_money4", _money4);
            sounds.Add("_money5", _money5);
            sounds.Add("_monsterYell", _monsterYell);
            sounds.Add("_monsterYell2", _monsterYell2);
            sounds.Add("_monsterYell3", _monsterYell3);
            sounds.Add("_monsterYell4", _monsterYell4);
            sounds.Add("_monsterYell5", _monsterYell5);
            sounds.Add("_moveThroughDirt", _moveThroughDirt);
            sounds.Add("_moveThroughDirt2", _moveThroughDirt2);
            sounds.Add("_moveThroughDirt3", _moveThroughDirt3);
            sounds.Add("_moveThroughDirt4", _moveThroughDirt4);
            sounds.Add("_praireDogYip", _praireDogYip);
            sounds.Add("_praireDogYip2", _praireDogYip2);
            sounds.Add("_titleScreenOpenSound", _titleScreenOpenSound);
            sounds.Add("_unlockDoor", _unlockDoor);
            sounds.Add("_waterDrain", _waterDrain);
            sounds.Add("_woodSliding", _woodSliding);

            #region different bubble sound
            /*
            sounds.Add("_differentBubbleSound", _differentBubbleSound);
            sounds.Add("_differentBubbleSound1", _differentBubbleSound1);
            sounds.Add("_differentBubbleSound2", _differentBubbleSound2);
            sounds.Add("_differentBubbleSound3", _differentBubbleSound3);
            */
            #endregion
            #region Additional setdown sound placement
            sounds.Add("_bombSetDown7", _bombSetDown7);
            sounds.Add("_bombSetDown8", _bombSetDown8);
            sounds.Add("_bombSetDown9", _bombSetDown9);
            sounds.Add("_bombSetDown10", _bombSetDown10);
            sounds.Add("_bombSetDown11", _bombSetDown11);
            sounds.Add("_bombSetDown12", _bombSetDown12);
            sounds.Add("_bombSetDown13", _bombSetDown13);
            sounds.Add("_bombSetDown14", _bombSetDown14);
            sounds.Add("_bombSetDown15", _bombSetDown15);
            sounds.Add("_bombSetDown16", _bombSetDown16);
            sounds.Add("_bombSetDown17", _bombSetDown17);
            sounds.Add("_bombSetDown18", _bombSetDown18);
            #endregion

            #region Additional Explosions placement
            sounds.Add("_bombShort4", _bombShort4);
            sounds.Add("_bombShort5", _bombShort5);
            sounds.Add("_bombShort6", _bombShort6);
            sounds.Add("_bombShort7", _bombShort7);
            sounds.Add("_bombShort8", _bombShort8);
            sounds.Add("_bombShort9", _bombShort9);
            sounds.Add("_bombLong4", _bombLong4);
            sounds.Add("_bombLong5", _bombLong5);
            sounds.Add("_bombLong6", _bombLong6);
            sounds.Add("_bombLong7", _bombLong7);
            sounds.Add("_bombLong8", _bombLong8);
            sounds.Add("_bombLong9", _bombLong9);
            sounds.Add("_bombMedium4", _bombMedium4);
            sounds.Add("_bombMedium5", _bombMedium5);
            sounds.Add("_bombMedium6", _bombMedium6);
            sounds.Add("_bombMedium7", _bombMedium7);
            sounds.Add("_bombMedium8", _bombMedium8);
            sounds.Add("_bombMedium9", _bombMedium9);
            #endregion
        }
        #endregion
    }

}

