Esempio n. 1
0
        //Helper function that returns a random sound effect for this biome corresponding to the explosion type required.
        public AudioClip GetRandomExplosionSound(ExplosionClass explosionType)
        {
            EffectsGroup activeGroup = m_EffectsGroups[m_ActiveEffectsGroup];

            switch (explosionType)
            {
            case ExplosionClass.Small:
                return(activeGroup.smallExplosionSounds[Random.Range(0, activeGroup.smallExplosionSounds.Length)]);

            case ExplosionClass.Large:
                return(activeGroup.largeExplosionSounds[Random.Range(0, activeGroup.largeExplosionSounds.Length)]);

            case ExplosionClass.ExtraLarge:
                return(activeGroup.extraLargeExplosionSounds[Random.Range(0, activeGroup.extraLargeExplosionSounds.Length)]);

            case ExplosionClass.BounceExplosion:
                return(activeGroup.bouncyBombExplosionSounds[Random.Range(0, activeGroup.bouncyBombExplosionSounds.Length)]);

            case ExplosionClass.TankExplosion:
                return(activeGroup.tankExplosionSounds[Random.Range(0, activeGroup.tankExplosionSounds.Length)]);

            case ExplosionClass.TurretExplosion:
                return(activeGroup.turretExplosionSounds[Random.Range(0, activeGroup.turretExplosionSounds.Length)]);

            default:
                return(null);
            }
        }
Esempio n. 2
0
    private void CreateVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal,
                                       ExplosionClass explosionClass)
    {
        Effect spawnedEffect;

        switch (explosionClass)
        {
        case ExplosionClass.ExtraLarge:
            spawnedEffect = Instantiate(m_EffectsGroup.extraLargeExplosion);
            break;

        case ExplosionClass.Large:
            spawnedEffect = Instantiate(m_EffectsGroup.largeExplosion);
            break;

        case ExplosionClass.Small:
            spawnedEffect = Instantiate(m_EffectsGroup.smallExplosion);
            break;

        case ExplosionClass.TankExplosion:
            spawnedEffect = Instantiate(m_EffectsGroup.tankExplosion);
            break;

        case ExplosionClass.TurretExplosion:
            spawnedEffect = Instantiate(m_EffectsGroup.turretExplosion);
            break;

        case ExplosionClass.BounceExplosion:
            spawnedEffect = Instantiate(m_EffectsGroup.smallExplosion);
            break;

        case ExplosionClass.FiringExplosion:
            spawnedEffect = Instantiate(m_EffectsGroup.firingExplosion);
            break;

        default:
            spawnedEffect = null;
            break;
        }

        if (spawnedEffect == null)
        {
            return;
        }

        spawnedEffect.transform.position = explosionPosition;
        spawnedEffect.transform.up       = explosionNormal;

        var sound = spawnedEffect.GetComponentInChildren <AudioSource>();

        if (sound == null)
        {
            return;
        }
        sound.clip = ThemedEffectsLibrary.Instance.GetRandomExplosionSound(explosionClass);
        sound.Play();
    }
Esempio n. 3
0
        /// <summary>
        /// Make a pretty explosion on clients
        /// </summary>
        public void DestroyExplosion(GameObject destoryObj, ExplosionClass explosionClass)
        {
            int            ClassIndex = (int)explosionClass;
            ExplosionCache pool       = m_ExplosionCache[ClassIndex];

            if (pool != null)
            {
                destoryObj.SetActive(false);
            }
            else
            {
                MonoBehaviour.Destroy(destoryObj);
            }
        }
Esempio n. 4
0
    /// <summary>
    /// Make a pretty explosion on clients
    /// </summary>

    private void RpcVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal, ExplosionClass explosionClass)
    {
        CreateVisualExplosion(explosionPosition, explosionNormal, explosionClass);
    }
Esempio n. 5
0
    private void CreateVisualExplosion(Vector3 explosionPosition, Vector3 explosionNormal, ExplosionClass explosionClass)
    {
        Effect spawnedEffect = null;

/*
 *              switch (explosionClass)
 *              {
 *                      case ExplosionClass.ExtraLarge:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.extraLargeExplosion);
 *                              break;
 *                      case ExplosionClass.Large:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.largeExplosion);
 *                              break;
 *                      case ExplosionClass.Small:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.smallExplosion);
 *                              break;
 *                      case ExplosionClass.TankExplosion:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.tankExplosion);
 *                              break;
 *                      case ExplosionClass.TurretExplosion:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.turretExplosion);
 *                              break;
 *                      case ExplosionClass.BounceExplosion:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.smallExplosion);
 *                              break;
 *                      case ExplosionClass.FiringExplosion:
 *                              spawnedEffect = Instantiate<Effect>(m_EffectsGroup.firingExplosion);
 *                              break;
 *              }
 */
        spawnedEffect = Instantiate <Effect>(firingExplosion);

        if (spawnedEffect != null)
        {
            spawnedEffect.transform.position = explosionPosition;
            spawnedEffect.transform.up       = explosionNormal;

/*
 *                      AudioSource sound = spawnedEffect.GetComponentInChildren<AudioSource>();
 *                      if (sound != null)
 *                      {
 *                              sound.clip = ThemedEffectsLibrary.s_Instance.GetRandomExplosionSound(explosionClass);
 *                              sound.Play();
 *                      }
 */
        }
    }