private void Shoot()
    {
        //GameObject bulletGO = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);

        //GameObject bulletGO;// = new GameObject();

        if (BulletPooling.Instance().HasBullets(BulletType.BUCKET_BULLET))
        {
            GameObject bulletGO = BulletPooling.Instance().GetBullet(firePoint.position, firePoint.rotation, BulletType.BUCKET_BULLET);

            Debug.Log("Enemy Shooting");
            audioSource.Play();

            BulletBehaviour bullet = bulletGO.GetComponent <BulletBehaviour>();

            if (bullet != null)
            {
                bullet.Seek(target);
            }
        }
        else
        {
            return;
        }
    }
Exemple #2
0
    private void Start()
    {
        LoadButtonBehaviour.loadGameOnStartup = false;

        // Prepare Bullet pool using by Towers
        BulletPooling.Instance().Init(MaxFireballs, bucketType, pumpkinType);
    }
    public static BulletPooling Instance()
    {
        if (m_instance == null)
        {
            m_instance = new BulletPooling();
        }

        return(m_instance);
    }
    private void HitTarget()
    {
        if (target.GetComponent <EnemyBehaviour>())
        {
            target.GetComponent <EnemyBehaviour>().PlayCollisionSound();

            Health enemyHealth = target.GetComponent <Health>();
            if (enemyHealth != null)
            {
                enemyHealth.ModifyHealth(-damage);
            }
        }
        else if (target.gameObject.CompareTag("Tower"))
        {
            // Play collision sound

            // Not the parent, therefore check this gameobject's parent for the component
            if (target.gameObject.transform.root != target.gameObject.transform)
            {
                Health towerHealth = target.gameObject.GetComponentInParent <Health>();
                if (towerHealth != null)
                {
                    towerHealth.ModifyHealth(-damage);
                }
            }
            else if (target.gameObject.transform.root == target.gameObject.transform)
            {
                Health towerHealth = target.GetComponent <Health>();
                if (towerHealth != null)
                {
                    towerHealth.ModifyHealth(-damage);
                }
            }
        }

        GameObject effectIns = (GameObject)Instantiate(impactEffect, transform.position, transform.rotation);

        Destroy(effectIns, 2.0f);

        //Destroy(gameObject);
        damage = baseDamage;
        BulletPooling.Instance().ReturnBullet(gameObject, bulletType);
    }
Exemple #5
0
    private void Shoot()
    {
        if (BulletPooling.Instance().HasBullets(bulletType))
        {
            GameObject bulletGO = BulletPooling.Instance().GetBullet(firePoint.position, firePoint.rotation, bulletType);

            BulletBehaviour bullet = bulletGO.GetComponent <BulletBehaviour>();
            bullet.damage = (int)((float)bullet.damage * strength);

            Debug.Log("Shooting");
            audioSource.Play();

            if (bullet != null)
            {
                bullet.Seek(target);
            }
        }
        else
        {
            return;
        }
    }