protected override IEnumerator FindEnemies() { if (Placed) { Hit = Physics2D.OverlapCircleAll(transform.position, Radius + 0.1f); foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && enemy.GetComponent <BaseEnemy>().isSlow == false) { if (enemy.GetComponent <BaseEnemy>().isCamo == false) { SlowEnemies(enemy); } else if (enemy.GetComponent <BaseEnemy>().isCamo == true && canSeeCamo == true) { SlowEnemies(enemy); } } } } yield return(new WaitForSeconds(FireRate)); if (ShootAnim != null) { ShootAnim.SetActive(false); } StartCoroutine(FindEnemies()); }
protected override IEnumerator FindEnemies() { if (Placed) { Hit = Physics2D.OverlapCircleAll(transform.position, Radius); //Target = null; float Distance = 0; foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && Distance <= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { if (enemy.GetComponent <BaseEnemy>().isCamo == false) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; TurretHead.transform.LookAt(Enemy.transform); TurretHead.transform.localEulerAngles = new Vector3(0, TurretHead.transform.localEulerAngles.y + 80, 0); GetEnemy(); } else if (enemy.GetComponent <BaseEnemy>().isCamo == true && canSeeCamo == true) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; GetEnemy(); } } } if (Enemy != null) { Hit = Physics2D.OverlapCircleAll(Enemy.transform.position, radius); foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy") { enemy.GetComponent <IDamagable>().TakeDamage(Damage, MoneyUpgrade); KillCount++; Player.UpdateKillCount(); if (MultiAttack) { MultiAttackFunc(); } } } } } yield return(new WaitForSeconds(FireRate)); Enemy = null; if (ShootAnim != null) { ShootAnim.SetActive(false); } foreach (GameObject anim in Anims) { anim.SetActive(false); } StartCoroutine(FindEnemies()); }
private void GetEnemy() { TurretHead.transform.LookAt(Enemy.transform); TurretHead.transform.localEulerAngles = new Vector3(0, TurretHead.transform.localEulerAngles.y + 80, 0); if (ShootAnim != null) { ShootAnim.SetActive(true); } LightningEnd.position = new Vector2(Enemy.transform.position.x, Enemy.transform.position.y); }
private void GetEnemy() { Vector3 relativePos = Enemy.transform.position - transform.position; Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.back); TurretHead.transform.rotation = rotation; //UpdateLaser(Target.transform); if (ShootAnim != null) { ShootAnim.SetActive(true); } }
protected override IEnumerator FindEnemies() { if (Placed) { Hit = Physics2D.OverlapCircleAll(transform.position, Radius / 1.9f); float Distance = 0; foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && Distance <= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { if (enemy.GetComponent <BaseEnemy>().isCamo == false) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; GetEnemy(); } else if (enemy.GetComponent <BaseEnemy>().isCamo == true && canSeeCamo == true) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; GetEnemy(); } } } if (Enemy != null) { Enemy.GetComponent <IDamagable>().TakeDamage(Damage, MoneyUpgrade); KillCount++; Player.UpdateKillCount(); Enemy = null; } } yield return(new WaitForSeconds(FireRate)); if (ShootAnim != null) { ShootAnim.SetActive(false); } if (DualHeads) { TurretHead1Anim.SetActive(false); TurretHead2Anim.SetActive(false); } StartCoroutine(FindEnemies()); }
private void GetEnemy() { if (!DoubleRockets) { TurretHead.transform.LookAt(Enemy.transform); TurretHead.transform.localEulerAngles = new Vector3(0, TurretHead.transform.localEulerAngles.y - 90, 0); } else { TurretHead.transform.LookAt(Enemy.transform); TurretHead.transform.localEulerAngles = new Vector3(TurretHead.transform.localEulerAngles.x - 90, TurretHead.transform.localEulerAngles.y, 0); } if (ShootAnim != null) { ShootAnim.SetActive(true); } }
public void RecomputeDelay() { animDelay = Math.Max(0.25f, audioTime - _nextShootAnim); if (!hasShot) { Shoot(); } if (nextIsLong) { SetShootTime(nextShoot + longInterval); } else { SetShootTime(nextShoot + shortInterval); } nextIsLong = !nextIsLong; ShootAnim.Stop(); LoadAnim.Stop(); shooting = false; loading = false; }
public void SlowEnemies(Collider2D enemy) { if (ShootAnim != null) { ShootAnim.SetActive(true); } Enemy = enemy.GetComponent <BaseEnemy>(); if (TakeDamage) { Enemy.TakeDamage(Damage, MoneyUpgrade); KillCount++; Player.UpdateKillCount(); } if (!Reverse) { StartCoroutine(Enemy.SlowDown(SlowTime, SlowAmount)); } else { StartCoroutine(Enemy.Reverse()); } }
private void GetEnemy() { Vector3 relativePos = Enemy.transform.position - transform.position; Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.back); if (!DualHeads) { TurretHead.transform.rotation = rotation; } else { DualTurretHead.transform.rotation = rotation; } if (ShootAnim != null) { ShootAnim.SetActive(true); } if (DualHeads) { TurretHead1Anim.SetActive(true); TurretHead2Anim.SetActive(true); } }
protected override IEnumerator FindEnemies() { if (Placed) { Hit = Physics2D.OverlapCircleAll(transform.position, Radius + 0.1f); Enemy = null; Collider2D Target2 = null; float Distance = 0; foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && Distance <= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { if (enemy.GetComponent <BaseEnemy>().isCamo == false) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; GetEnemy(); } else if (enemy.GetComponent <BaseEnemy>().isCamo == true && canSeeCamo == true) { Enemy = enemy.GetComponent <BaseEnemy>(); Distance = Enemy.DistanceTravelled; GetEnemy(); } } } if (DoubleRockets) { foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && Distance >= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { if (enemy.GetComponent <BaseEnemy>().isCamo == false) { Distance = enemy.GetComponent <BaseEnemy>().DistanceTravelled; Target2 = enemy; } else if (enemy.GetComponent <BaseEnemy>().isCamo == true && canSeeCamo == true) { Distance = enemy.GetComponent <BaseEnemy>().DistanceTravelled; Target2 = enemy; } } } } if (Enemy != null) { Missile Missile = Instantiate(missile, firePoint.transform.position, firePoint.transform.rotation).GetComponent <Missile>(); Missile.damage = Damage; Missile.speed = MissileSpeed; Missile.radius = MissileRadius; Missile.moneyUpgrade = MoneyUpgrade; Missile.gameObject.transform.position = new Vector3(firePoint.transform.position.x, firePoint.transform.position.y, 0); Missile.sender = this; Missile.target = Enemy.gameObject; } if (DoubleRockets) { if (Target2 != null) { Missile Missile = Instantiate(missile, FirePoint3.transform.position, firePoint.transform.rotation).GetComponent <Missile>(); Missile.damage = Damage; Missile.speed = MissileSpeed; Missile.radius = MissileRadius; Missile.moneyUpgrade = MoneyUpgrade; Missile.gameObject.transform.position = new Vector3(firePoint.transform.position.x, firePoint.transform.position.y, 0); Missile.sender = this; Missile.target = Target2.gameObject; } } } yield return(new WaitForSeconds(FireRate)); if (ShootAnim != null) { ShootAnim.SetActive(false); } StartCoroutine(FindEnemies()); }
private void PlayShootAnim() { shooting = true; ShootAnim.Play(); }
protected override IEnumerator FindEnemies() { if (Placed) { Hit = Physics2D.OverlapCircleAll(FP1.position, WingRadius); foreach (Collider2D enemy in Hit) { if (enemy.tag == "Enemy" && distance <= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { Enemy = enemy.GetComponent <BaseEnemy>(); distance = Enemy.DistanceTravelled; } } if (Enemy != null) { if (ShootMissiles) { Missile missile = Instantiate(MissileGO, FP1.position, FP1.rotation).GetComponent <Missile>(); //missile.IsHoming = true; missile.speed = 5; missile.damage = 1; missile.radius = 1; missile.moneyUpgrade = MoneyUpgrade; missile.target = Enemy.gameObject; missile.sender = this; } else { ShootAnim.transform.LookAt(Enemy.transform); ShootAnim.transform.localEulerAngles = new Vector3(0, ShootAnim.transform.localEulerAngles.y, 0); if (ShootAnim != null) { ShootAnim.SetActive(true); } Enemy.TakeDamage(Damage, MoneyUpgrade); KillCount++; Player.UpdateKillCount(); } } hit = Physics2D.OverlapCircleAll(FP2.position, WingRadius); foreach (Collider2D enemy in hit) { if (enemy.tag == "Enemy" && enemy != Enemy && distance >= enemy.GetComponent <BaseEnemy>().DistanceTravelled) { Enemy2 = enemy.GetComponent <BaseEnemy>(); distance = Enemy2.DistanceTravelled; } } if (Enemy2 != null) { if (ShootMissiles) { Missile missile = Instantiate(MissileGO, FP2.position, FP2.rotation).GetComponent <Missile>(); //missile.IsHoming = true; missile.speed = 5; missile.damage = Damage; missile.radius = 1; missile.moneyUpgrade = MoneyUpgrade; missile.target = Enemy2.gameObject; missile.sender = this; } else { ShootAnim2.transform.LookAt(Enemy2.transform); ShootAnim2.transform.localEulerAngles = new Vector3(0, ShootAnim2.transform.localEulerAngles.y, 0); if (ShootAnim2 != null) { ShootAnim2.SetActive(true); } Enemy2.TakeDamage(Damage, MoneyUpgrade); KillCount++; Player.UpdateKillCount(); } } } Enemy = null; Enemy2 = null; yield return(new WaitForSeconds(FireRate)); if (ShootAnim != null) { ShootAnim.SetActive(false); } if (ShootAnim2 != null) { ShootAnim2.SetActive(false); } StartCoroutine(FindEnemies()); }
private void Awake() { instance = this; }