Ejemplo n.º 1
0
    ////Rifled tower bullet dmg.
    //protected void OnCollisionEnter(Collision collision) //    protected void OnCollisionEnter(Collision collision)
    //{
    //    print("im trhit!");
    //    if (collision.gameObject.GetComponent<RifledBullet>())
    //    {
    //        RifledBullet bullet = collision.gameObject.GetComponent<RifledBullet>();
    //        string towerName = "";
    //        float dmg = 0;
    //        dmg = bullet.damage;
    //        towerName = bullet.towerName;
    //        ProcessHit(dmg, towerName);
    //        if (hitPoints <= 0)
    //        {
    //            //Adds gold upon death, then deletes the enemy.
    //            damageLog.UpdateKills(towerName, enemyName);
    //            KillsEnemyandAddsGold();
    //        }
    //        else
    //        {
    //            GetComponent<AudioSource>().PlayOneShot(enemyHitAudio);
    //        }
    //    }
    //}

    private void OnTriggerEnter(Collider other)
    {
        print("im trigger!");
        if (other.gameObject.GetComponent <RifledBullet>())
        {
            RifledBullet bullet    = other.gameObject.GetComponent <RifledBullet>();
            string       towerName = "";
            float        dmg       = 0;
            dmg = bullet.damage;
            bullet.SetDamageToZero();
            towerName = bullet.towerName;
            ProcessHit(dmg, towerName);
            if (hitPoints <= 0)
            {
                if (!hasGold) // debate this.  NOt sure if ishould use thi or try to find WHY more. l THis should fix it but its a meh fix.
                {
                    return;
                }
                hasGold = false;
                //Adds gold upon death, then deletes the enemy.
                damageLog.UpdateKills(towerName, enemyName);
                KillsEnemyandAddsGold();
            }
            else
            {
                GetComponent <AudioSource>().PlayOneShot(enemyHitAudio);
            }
        }
    }
Ejemplo n.º 2
0
    private void FireAtEnemy()
    {
        float distanceToEnemy = Vector3.Distance(targetEnemy.transform.position, gameObject.transform.position);

        if (distanceToEnemy <= currentAttackRange && targetEnemyBody.isTargetable && distanceToEnemy >= minRange)
        {
            //Shoot(true);
            //New shot setup
            if (attackTimer >= attackSpeed)
            {
                attackTimer = 0f;
                RifledBullet bulletShot   = Instantiate(bullet, transform.position, Quaternion.identity);
                float        heightOffset = GetComponentInChildren <MeshFilter>().sharedMesh.bounds.extents.y * 1.10f;
                bulletShot.Instantiate(targetEnemy, currentTowerDmg, TowerTypeName, heightOffset);
            }
        }
        else
        {
            //Shoot(false);
            SetTargetEnemy();
        }
    }