private void StopCurrentSound(VulcanSoundManagerComponent manager)
 {
     if (manager.CurrentSound != null)
     {
         manager.CurrentSound.Stop();
     }
 }
 private void PlayNextSound(AudioSource sound, VulcanSoundManagerComponent manager)
 {
     this.StopCurrentSound(manager);
     if (sound != null)
     {
         manager.CurrentSound = sound;
         this.PlaySound(sound, manager);
     }
 }
        public void PlaySpeedUpSounds(NodeAddedEvent evt, VulcanSpeedUpNode weapon)
        {
            AudioSource soundSource = weapon.vulcanTurbineSoundEffect.SoundSource;
            AudioSource sound       = weapon.vulcanChainStartSoundEffect.SoundSource;
            VulcanSoundManagerComponent vulcanSoundManager = weapon.vulcanSoundManager;

            weapon.vulcanSlowDownAfterSpeedUpSoundEffect.AdditionalStartTimeOffset = weapon.vulcanWeapon.SpeedUpTime * (1f - weapon.vulcanWeaponState.State);
            this.PlayNextSound(soundSource, vulcanSoundManager);
            this.PlaySound(sound, vulcanSoundManager);
        }
        public void InitEffects(NodeAddedEvent evt, [Combine] VulcanAllSoundEffectsNode weapon, SingleNode <SoundListenerBattleStateComponent> soundListener)
        {
            Transform soundRoot = weapon.weaponSoundRoot.transform;
            VulcanSoundManagerComponent soundManagerComponent = new VulcanSoundManagerComponent();

            this.InitSoundEffect(weapon.vulcanAfterShootingSoundEffect, soundManagerComponent, soundRoot);
            this.InitSoundEffect(weapon.vulcanChainStartSoundEffect, soundManagerComponent, soundRoot);
            this.InitSoundEffect(weapon.vulcanSlowDownAfterSpeedUpSoundEffect, soundManagerComponent, soundRoot);
            this.InitSoundEffect(weapon.vulcanTurbineSoundEffect, soundManagerComponent, soundRoot);
            float length = weapon.vulcanTurbineSoundEffect.SoundSource.clip.length;

            weapon.vulcanTurbineSoundEffect.StartTimePerSec  = length - weapon.vulcanWeapon.SpeedUpTime;
            weapon.vulcanTurbineSoundEffect.SoundSource.time = weapon.vulcanTurbineSoundEffect.StartTimePerSec;
            weapon.Entity.AddComponent(soundManagerComponent);
        }
 private void PlaySound(AudioSource sound, VulcanSoundManagerComponent manager)
 {
     sound.PlayDelayed(manager.SoundsWithDelay[sound]);
 }
        private void InitSoundEffect(AbstractVulcanSoundEffectComponent soundEffectComponent, VulcanSoundManagerComponent soundManagerComponent, Transform soundRoot)
        {
            GameObject obj2 = Object.Instantiate <GameObject>(soundEffectComponent.EffectPrefab);

            obj2.transform.parent        = soundRoot;
            obj2.transform.localPosition = Vector3.zero;
            AudioSource component = obj2.GetComponent <AudioSource>();

            soundEffectComponent.SoundSource = component;
            component.time = soundEffectComponent.StartTimePerSec;
            soundManagerComponent.SoundsWithDelay.Add(component, soundEffectComponent.DelayPerSec);
        }