public void Attack() //since this is a ranged attack, we need to override the melee attack function { if (enemy.returnElapsedTime() > enemy.wpnSpeed + Random.value * 0.5f) { /*GameObject newArrow = Instantiate (arrowPrefab, arrowSpawn.transform.position, arrowSpawn.transform.rotation) as GameObject; * newArrow.transform.eulerAngles = new Vector3(0, 0, transform.eulerAngles.z+90.9f);*/ GameObject newBullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, bulletSpawn.transform.rotation) as GameObject; //newBullet.GetComponent<Enemy_Projectile> ().dir = enemy.returnTargetPosition () - bulletSpawn.transform.position; newBullet.GetComponent <Enemy_Projectile> ().wpnDmg = enemy.wpnDmg; newBullet.tag = "Enemy_Projectile"; enemy.setElapsedTime(0); } enemy.incElapsedTime(); }
public void Attack() { if (enemy.returnElapsedTime() > enemy.wpnSpeed && enemy.inCombat) { if (enemy.returnTarget().GetComponent <Ally_Melee> () != null) { if (enemy.returnTarget().GetComponent <Ally_Melee> ().ally.isAlive()) { enemy.returnTarget().GetComponent <Ally_Melee> ().ally.takeDamage(enemy.wpnDmg); } else { enemy.nullTarget(); enemy.GetTarget(); } } else if (enemy.returnTarget().GetComponent <Ally_Ranged> () != null) { if (enemy.returnTarget().GetComponent <Ally_Ranged> ().ally.isAlive()) { enemy.returnTarget().GetComponent <Ally_Ranged> ().ally.takeDamage(enemy.wpnDmg); } else { enemy.nullTarget(); enemy.GetTarget(); } } else if (enemy.returnTarget().GetComponent <Player> () != null) { if (enemy.returnTarget().GetComponent <Player> ().isAlive()) { enemy.returnTarget().GetComponent <Player> ().takeDamage(enemy.wpnDmg); } else { enemy.nullTarget(); enemy.GetTarget(); } } enemy.setElapsedTime(0); } enemy.incElapsedTime(); }
public void Attack() //since this is a ranged attack, we need to override the melee attack function { if (enemy.returnElapsedTime() > enemy.wpnSpeed && ammo > 0) { /*GameObject newArrow = Instantiate (arrowPrefab, arrowSpawn.transform.position, arrowSpawn.transform.rotation) as GameObject; * newArrow.transform.eulerAngles = new Vector3(0, 0, transform.eulerAngles.z+90.9f);*/ for (int i = 0; i < pelletCount; i++) { GameObject newBullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, bulletSpawn.transform.rotation) as GameObject; newBullet.transform.eulerAngles = new Vector3(0, 0, newBullet.transform.eulerAngles.z - pelletSpread / 2 + (Random.value * pelletSpread)); newBullet.GetComponent <Enemy_Projectile> ().wpnDmg = enemy.wpnDmg; newBullet.tag = "Enemy_Projectile"; } enemy.setElapsedTime(0); ammo--; if (ammo <= 0) { reloading = true; } } enemy.incElapsedTime(); }