Пример #1
0
    protected virtual void Update()
    {
        List <Targetable> targets = targetter.GetAllTargets();

        if (targets.Count == 0)
        {
            Destroy(line);
        }
        if (targets.Count > 0)
        {
            foreach (Targetable target in targets)
            {
                if (target != null)
                {
                    target.TakeDamage(damager.damage * Time.deltaTime, target.position, damager.alignmentProvider);

                    if (line == null)
                    {
                        line = this.gameObject.AddComponent <LineRenderer>();
                    }
                    line.material   = mat;
                    line.startWidth = line.endWidth = 0.1f;
                    line.SetPosition(0, lamps[Random.Range(0, 1)].position);
                    line.SetPosition(1, target.transform.position);
                }
            }
        }
    }
Пример #2
0
    protected virtual void FireProjectile()
    {
        // Shoot at all possible enemies.
        if (isMultiAttack)
        {
            int i = 0;
            List <Targetable> targetables = targetter.GetAllTargets();
            foreach (Targetable t in targetables)
            {
                if (t != null)
                {
                    Projectile projectile = Poolable.TryGetPoolable <Projectile>(projectilePrefab);
                    projectile.Launch(projectilePoints[i].position, t);
                }
                i++;
            }
        }
        // Shoot at the cloiest one and stick to it.
        else
        {
            Projectile projectile = Poolable.TryGetPoolable <Projectile>(projectilePrefab);

            projectile.Launch(projectilePoints[0].position, trackingEnemy);
        }
    }
Пример #3
0
    /// <summary>
    /// Common logic when attacking
    /// </summary>
    protected virtual void FireProjectile()
    {
        if (m_TrackingEnemy == null)
        {
            return;
        }

        if (isMultiAttack)
        {
            List <Targetable> enemies = m_Targetter.GetAllTargets();
            m_Launcher.Launch(enemies, projectile, projectilePoints);
        }
        else
        {
            m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints);
        }
        if (randomAudioSource != null)
        {
            randomAudioSource.PlayRandomClip();
        }
    }
Пример #4
0
        /// <summary>
        /// Common logic when attacking
        /// </summary>
        protected virtual void FireProjectile()
        {
            if (m_TrackingEnemy == null)
            {
                return;
            }

            if (isMultiAttack)
            {
                List <Targetable> enemies = towerTargetter.GetAllTargets();
                m_Launcher.Launch(enemies, projectile, projectilePoints);
            }
            else
            {
                m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints);
            }
            if (randomAudioSource != null)
            {
                randomAudioSource.PlayRandomClip();
                //WWiseEventPlayer myEventPlayer = gameObject.AddComponent(typeof(WWiseEventPlayer)) as WWiseEventPlayer;
                //myEventPlayer.PlayWwiseEvent("ui_objectFireProjectile");
            }
        }