public void Fire(Vector3 aimDirection, EnemyS enemyReference)
    {
        _rigidbody  = GetComponent <Rigidbody>();
        _myRenderer = GetComponentInChildren <SpriteRenderer>();
        _myEnemy    = enemyReference;

        FaceDirection((aimDirection).normalized);

        Vector3 shootForce = transform.right * shotSpeed * Time.deltaTime;

        _rigidbody.AddForce(shootForce, ForceMode.Impulse);

        Vector3 knockbackForce = -(aimDirection).normalized * shotSpeed * selfKnockbackMult * Time.deltaTime;


        if (stopEnemy)
        {
            _myEnemy.myRigidbody.velocity = Vector3.zero;
        }

        _myEnemy.AttackKnockback(knockbackForce);


        DoShake();
    }
    public void SetEnemy(EnemyS enemy)
    {
        myEnemy = enemy;

        foreach(EnemyBehaviorS behavior in behaviorSet){
            behavior.SetEnemy(enemy);
            behavior.SetState(this);
        }
    }
    public void SetEnemy(EnemyS enemy)
    {
        myEnemy = enemy;

        foreach (EnemyBehaviorS behavior in behaviorSet)
        {
            behavior.SetEnemy(enemy);
            behavior.SetState(this);
        }
    }
Esempio n. 4
0
 public void EraseCurEnemies()
 {
     EnemyS[] enemies = new EnemyS[100];
     enemies = FindObjectsOfType <EnemyS>();
     for (int i = 0; i < enemies.Length; i++)
     {
         if (enemies != null)
         {
             enemies[i].Erase();
         }
     }
 }
Esempio n. 5
0
    void OnTriggerExit(Collider other)
    {
        if (other.gameObject.tag == "Enemy")
        {
            EnemyS otherEnemy = other.gameObject.GetComponent <EnemyS>();

            if (!otherEnemy.isDead)
            {
                enemiesInRange.Remove(otherEnemy);
            }
        }
    }
Esempio n. 6
0
 void Punsh()
 {
     {
         if (pt > 1)
         {
             if (anim)
             {
                 foreach (RaycastHit2D col in Physics2D.RaycastAll(transform.position, Vector2.right, range))
                 {
                     EnemyS e = col.transform.GetComponent <EnemyS>();
                     if (e)
                     {
                         e.Damaged(damage);
                     }
                 }
                 pt = 0;
             }
         }
     }
 }
    private void SpawnEnemy()
    {
        float chanceEnemySpawns = Random.Range(0f, 1f);

        if (chanceEnemySpawns <= chanceToSpawn){

            int enemyToSpawn = Mathf.RoundToInt(Random.Range(0, enemyPool.Length));

            GameObject newEnemy = Instantiate(enemyPool[enemyToSpawn], transform.position, Quaternion.identity)
                as GameObject;

            currentEnemyReference = newEnemy.GetComponent<EnemyS>();

            newEnemy.transform.parent = transform;

        }else{
            didNotSpawnEnemy = true;
        }

        _enemySpawned = true;
    }
    public void Fire(Vector3 aimDirection, EnemyS enemyReference)
    {
        _rigidbody = GetComponent<Rigidbody>();
        _myRenderer = GetComponentInChildren<SpriteRenderer>();
        _myEnemy = enemyReference;

        FaceDirection((aimDirection).normalized);

        Vector3 shootForce = transform.right * shotSpeed * Time.deltaTime;

        _rigidbody.AddForce(shootForce, ForceMode.Impulse);

        Vector3 knockbackForce = -(aimDirection).normalized * shotSpeed * selfKnockbackMult *Time.deltaTime;

        if (stopEnemy){
            _myEnemy.myRigidbody.velocity = Vector3.zero;
        }

        _myEnemy.AttackKnockback(knockbackForce);

        DoShake();
    }
Esempio n. 9
0
    private void FindClosestEnemy()
    {
        _closestEnemy = null;

        if (enemiesInRange.Count > 0)
        {
            Vector2 closestEnemyPosition = Vector2.zero;
            Vector2 otherEnemyPosition   = Vector2.zero;

            float closestDistance = 0;

            foreach (EnemyS enemy in enemiesInRange)
            {
                if (_closestEnemy == null)
                {
                    _closestEnemy          = enemy;
                    closestEnemyPosition.x = _closestEnemy.transform.position.x;
                    closestEnemyPosition.y = _closestEnemy.transform.position.y;

                    closestDistance = Vector2.Distance(playerPosition2D(), closestEnemyPosition);
                }
                else
                {
                    otherEnemyPosition.x = enemy.transform.position.x;
                    otherEnemyPosition.y = enemy.transform.position.y;
                    float newDistance = Vector2.Distance(playerPosition2D(), otherEnemyPosition);

                    if (newDistance < closestDistance)
                    {
                        _closestEnemy          = enemy;
                        closestEnemyPosition.x = _closestEnemy.transform.position.x;
                        closestEnemyPosition.y = _closestEnemy.transform.position.y;

                        closestDistance = Vector2.Distance(playerPosition2D(), closestEnemyPosition);
                    }
                }
            }
        }
    }
    private void SpawnEnemy()
    {
        float chanceEnemySpawns = Random.Range(0f, 1f);

        if (chanceEnemySpawns <= chanceToSpawn)
        {
            int enemyToSpawn = Mathf.RoundToInt(Random.Range(0, enemyPool.Length));

            GameObject newEnemy = Instantiate(enemyPool[enemyToSpawn], transform.position, Quaternion.identity)
                                  as GameObject;

            currentEnemyReference = newEnemy.GetComponent <EnemyS>();

            newEnemy.transform.parent = transform;
        }
        else
        {
            didNotSpawnEnemy = true;
        }


        _enemySpawned = true;
    }
 public virtual void SetEnemy(EnemyS newEnemy)
 {
     myEnemy = newEnemy;
 }
Esempio n. 12
0
    private void Update()
    {
        //Spawn Enemies
        if (Time.timeScale != 0)
        {
            if (asteroidTime == 110)
            {
                for (int i = 0; i < playerPrefabs.Length; i++)
                {
                    GameObject asteroid1 = Instantiate(asteroid, new Vector3(Random.Range(-50, 50), Random.Range(47, 49), 0), Quaternion.Euler(0, 0, 0));
                    GameObject asteroid2 = Instantiate(asteroid, new Vector3(Random.Range(-50, 50), Random.Range(-47, -49), 0), Quaternion.Euler(0, 0, 0));
                    GameObject asteroid3 = Instantiate(asteroid, new Vector3(Random.Range(-55, -50), Random.Range(-47, 47), 0), Quaternion.Euler(0, 0, 0));
                    GameObject asteroid4 = Instantiate(asteroid, new Vector3(Random.Range(50, 55), Random.Range(-47, 47), 0), Quaternion.Euler(0, 0, 0));

                    Color color1 = new Color(255, 238, 2, 1.0f);
                    Color color2 = new Color(255, 226, 3, 1.0f);
                    Color color3 = new Color(203, 131, 7, 1.0f);
                    Color color4 = new Color(217, 224, 21, 1.0f);

                    asteroid1.transform.localScale *= Random.Range(0.1f, 6);
                    SpriteRenderer sr = asteroid1.GetComponentInChildren <SpriteRenderer>();
                    sr.color = color1;
                    asteroid2.transform.localScale *= Random.Range(0.1f, 6);
                    SpriteRenderer sr2 = asteroid2.GetComponentInChildren <SpriteRenderer>();
                    sr2.color = color2;
                    asteroid3.transform.localScale *= Random.Range(0.1f, 6);
                    SpriteRenderer sr3 = asteroid3.GetComponentInChildren <SpriteRenderer>();
                    sr3.color = color3;
                    asteroid4.transform.localScale *= Random.Range(0.1f, 6);
                    SpriteRenderer sr4 = asteroid4.GetComponentInChildren <SpriteRenderer>();
                    sr4.color = color4;

                    asteroidTime = 0;
                }
            }


            if (time % 340 / Mathf.Round(Time.time / 10) == 0)
            {
                for (int i = 0; i < playerPrefabs.Length; i++)
                {
                    int r = Random.Range(0, 5);
                    if (r == 1)
                    {
                        eL = Instantiate(enemyL, new Vector3(Random.Range(-35, 35), Random.Range(37, 39), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyL>();
                    }
                    else if (r == 2)
                    {
                        eL = Instantiate(enemyL, new Vector3(Random.Range(-35, 35), Random.Range(-37, 39), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyL>();
                    }
                    else if (r == 3)
                    {
                        eL = Instantiate(enemyL, new Vector3(Random.Range(35, 37), Random.Range(-37, 37), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyL>();
                    }
                    else
                    {
                        eL = Instantiate(enemyL, new Vector3(Random.Range(-35, 37), Random.Range(-37, 37), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyL>();
                    }


                    eL.SetPlayer(players[i]);
                }
            }

            if (time % 510 / Mathf.Round(Time.time / 10) == 0)
            {
                for (int i = 0; i < playerPrefabs.Length; i++)
                {
                    int r = Random.Range(0, 5);
                    if (r == 1)
                    {
                        eS = Instantiate(enemyS, new Vector3(Random.Range(-35, 35), Random.Range(37, 39), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyS>();
                    }
                    else if (r == 2)
                    {
                        eS = Instantiate(enemyS, new Vector3(Random.Range(-35, 35), Random.Range(-37, 39), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyS>();
                    }
                    else if (r == 3)
                    {
                        eS = Instantiate(enemyS, new Vector3(Random.Range(35, 37), Random.Range(-37, 37), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyS>();
                    }
                    else
                    {
                        eS = Instantiate(enemyS, new Vector3(Random.Range(-35, 37), Random.Range(-37, 37), 0), Quaternion.Euler(0, 0, 0)).GetComponent <EnemyS>();
                    }

                    eS.SetPlayer(players[i]);
                }
            }

            SpawnPlayers();

            asteroidTime++;
            time++;
        }

        //GetScore
        GetMultiplierTime();
        GetScore();
        GetKillstreak();
        SetStreakTime();
        SetTimeText();
    }
 public virtual void SetEnemy(EnemyS newEnemy)
 {
     myEnemy = newEnemy;
 }