////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); } } }
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(); } }