Esempio n. 1
0
    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);
    }
Esempio n. 4
0
    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());
    }
Esempio n. 6
0
    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);
        }
    }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 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);
        }
    }
Esempio n. 10
0
    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());
    }
Esempio n. 11
0
 private void PlayShootAnim()
 {
     shooting = true;
     ShootAnim.Play();
 }
Esempio n. 12
0
    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;
 }