示例#1
0
    void OnTriggerEnter(Collider col)
    {
        if (col.tag == "Ring")
        {
            return;
        }
        if (shipController.shield.enabled)
        {
            TurretBullet bullet = col.gameObject.GetComponent <TurretBullet>();
            if (bullet != null)
            {
                if (bullet.bounce)
                {
                    return;
                }

                bullet.bounce = true;
                bullet.speed *= -.7f;
                col.transform.Rotate(col.transform.up, Random.Range(-30f, 30f));
                col.transform.Rotate(col.transform.right, Random.Range(-30f, 30f));
                return;
            }
        }
        DamageDistribution(col.gameObject);
    }
示例#2
0
    private void AutoAttack()
    {
        if (_reloadTimer >= reloadTime)
        {
            // Spawn a new bullet
            GameObject newBullet = GetPooledBullet();

            newBullet.transform.position = transform.position;
            newBullet.transform.rotation = transform.rotation;

            TurretBullet bulletScript = newBullet.GetComponent <TurretBullet>();

            bulletScript.target         = _target;
            bulletScript.damage         = damage;
            bulletScript._movementSpeed = bulletSpeed;

            // Reset the reloadTimer after the turret fired;
            _reloadTimer = 0;
        }
        else
        {
            // Increment reload timer between shots
            _reloadTimer += Time.deltaTime;
        }
    }
示例#3
0
 private void OnTriggerEnter(Collider c)
 {
     if (enabled)
     {
         if (c.gameObject.tag == "Projectile")
         {
             TurretBullet bullet = c.gameObject.GetComponent <TurretBullet> ();
             if (!bullet.hit)
             {
                 isAlive = false;
                 Vector3 forcePosition = new Vector3(c.transform.position.x, 0f, c.transform.position.z);
                 breakUp.Activate(forcePosition, c.gameObject.GetComponent <TurretBullet> ().breakForce);
                 uiObject.gameObject.SetActive(false);
                 SpawnDestroyVFX(c.transform.position);
                 StartCoroutine(Despawn());
                 bullet.hit         = true;
                 audioSource.clip   = EnemyManager.main.GetAudioClip(type, EnemyManager.AudioClipType.Death);
                 audioSource.pitch  = Random.Range(0.9f, 1.1f);
                 audioSource.volume = 0.85f;
                 audioSource.Play();
                 bullet.Deactivate();
             }
         }
     }
 }
示例#4
0
    void Shoot()
    {
        GameObject   bulletGO = (GameObject)Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        TurretBullet bullet   = bulletGO.GetComponent <TurretBullet> ();

        if (bullet != null)
        {
            bullet.Seek(target);
        }
    }
示例#5
0
    void Shoot()
    {
        GameObject   bulletInstance = (GameObject)Instantiate(finalBulletPrefab, firePoint.position, Quaternion.Euler(firePoint.rotation.eulerAngles.x, firePoint.rotation.eulerAngles.y + 90f, firePoint.rotation.eulerAngles.z));
        TurretBullet bullet         = bulletInstance.GetComponent <TurretBullet>();

        if (bullet != null)
        {
            bullet.Seek(target);
        }
    }
示例#6
0
    private void Shoot()
    {
        GameObject bulletAttack = Instantiate(bullet, projectileSpawner.position, Quaternion.identity) as GameObject;

        bullet.GetComponent <Rigidbody>().velocity = bulletSpeed * projectileSpawner.forward;
        bulletScript = bulletAttack.GetComponent <TurretBullet>();
        Vector3 _player = GameObject.FindGameObjectWithTag("Player").transform.position;

        bulletScript.Move(_player);
        Destroy(bulletAttack, lifeSpan);
    }
示例#7
0
 void ShootEnemy(Enemy enemy)
 {
     timeSinceShot += Time.deltaTime;
     if (timeSinceShot >= shootFrequency)
     {
         GetComponent <AudioSource>().PlayOneShot(shootSound);
         timeSinceShot = 0;
         TurretBullet bullet = Instantiate(bulletPrefab);
         bullet.transform.position = transform.position;
         bullet.enemyPos           = enemy.transform.position;
         enemy.Hit();
     }
 }
示例#8
0
    private void Fire()
    {
        // Instantiate bullet
        if (m_Target != null)
        {
            GameObject   m_BulletInstance = Instantiate(m_BulletPrefab, transform.position, Quaternion.identity);
            TurretBullet script           = m_BulletInstance.GetComponent <TurretBullet>();

            // Set Destination and Velocity (In front of first troop of list)
            Vector3 m_BulletTarget = (m_Target.transform.position - transform.position).normalized;
            script.InitSpeed(m_BulletSpeed, m_BulletTarget);
        }
    }
示例#9
0
    public void Shoot()
    {
        audioSource.time = 0f;
        audioSource.Play();
        TurretBullet bullet = ((GameObject)Instantiate(bulletPrefab)).GetComponent <TurretBullet>();

        bullet.transform.position = transform.position + transform.TransformDirection(bulletOffset);
        bullet.Inialise(transform.forward, bulletParent);
        if (UIManager.main != null)
        {
            UIManager.main.ReloadBulletUI();
        }
        recticleTimeT = 0f;
    }
示例#10
0
    private void Shoot()
    {
        // Shoot a bullet!
        TurretBullet bullet = Instantiate(ResourcesHandler.Instance.TurretBullet).GetComponent <TurretBullet>();

        bullet.Initialize(MyRoom, this);

        // Tween!
        LeanTween.cancel(sr_body.gameObject);
        sr_body.transform.localScale = new Vector3(bodyScaleNeutral.x * 0.5f, bodyScaleNeutral.y * 1.2f, 1f);
        LeanTween.moveLocal(sr_body.gameObject, Vector3.zero, 0.4f).setEaseOutQuart();
        LeanTween.scale(sr_body.gameObject, bodyScaleNeutral, 0.4f).setEaseOutQuart();

        // Plan next shot!
        SetTimeUntilShoot(timeUntilShoot + interval);
    }
示例#11
0
    void OnTriggerEnter2D(Collider2D collision)
    {
        parry = GetComponent <Bloqueo>();
        //Cogemos la referencia de las balas que entren al trigger de bloqueo
        //Identificacion
        purpleBulletComponent = collision.gameObject.GetComponent <PrestBullet>();
        redBulletComponent    = collision.gameObject.GetComponent <Bullet>();
        turretBulletComponent = collision.gameObject.GetComponent <TurretBullet>();
        //GameObject para cambiar de layer
        bullet = collision.gameObject;
        //Rb para cambiar el sentido
        rbBullet = collision.gameObject.GetComponent <Rigidbody2D>();

        //Si el bloqueo esta activado devolvemos las balas (cambiamos el sentido y la layer para que impacten contra los enemigos)
        if ((purpleBulletComponent != null || redBulletComponent != null || turretBulletComponent != null) && parry.enabled)
        {
            rbBullet.velocity = -rbBullet.velocity;
            bullet.layer      = 13;
        }
    }
示例#12
0
 void ShootAndWait()
 {
     longTimer += Time.deltaTime;
     if (longTimer >= longInterval)
     {
         shortTimer += Time.deltaTime;
         if (shortTimer >= shortInterval)
         {
             thisBullet = Instantiate(turretBullet, firepoint.position, firepoint.rotation) as GameObject;
             TurretBullet TB = thisBullet.GetComponent <TurretBullet>();
             TB.setDir(GetShootDirection());
             shortTimer  = 0;
             bulletShot += 1;
             if (bulletShot == bulletNum)
             {
                 bulletShot = 0;
                 longTimer  = 0;
             }
         }
     }
 }
示例#13
0
    protected void FireProjectile(Vector3 direction, float force)
    {
        GameObject projectile = GameObject.CreatePrimitive(PrimitiveType.Sphere);

        projectile.transform.position   = transform.position + direction;
        projectile.transform.forward    = direction;
        projectile.transform.localScale = Vector3.one * 0.4f;
        projectile.GetComponent <Renderer>().shadowCastingMode = ShadowCastingMode.Off;
        projectile.GetComponent <Collider>().isTrigger         = true;
        Rigidbody pRBody = projectile.AddComponent <Rigidbody>();

        pRBody.useGravity = false;
        foreach (var c in GetComponents <Collider>())
        {
            Physics.IgnoreCollision(projectile.GetComponentInChildren <Collider>(), c);
        }
        pRBody.mass = 0.1f;
        pRBody.AddForce(direction * force);

        TurretBullet bullet = projectile.AddComponent <TurretBullet>();

        bullet.OnLaunch();
    }
示例#14
0
    void Shot()
    {
        if (!Search())
        {
            return;
        }

        curFireRate += Time.deltaTime;
        if (curFireRate > fireRate)
        {
            Transform point = GetPoint();
            curFireRate = 0;

            if (bulletPrefab != null)
            {
                TurretBullet bullet = Instantiate(bulletPrefab, point.position, Quaternion.identity) as TurretBullet;
                bullet.SetBullet(layerMask, point.forward);
            }
            else if (IsRaycastHit(point))
            {
                target.GetComponent <UnitHP>().Adjust(-damage);
            }
        }
    }
示例#15
0
    private void Awake()
    {
        var a = ObjectsPooler.Instance;

        turretBulletPrefab = Resources.Load <TurretBullet>(BULLET_PATH);
    }