Exemplo n.º 1
0
 void OnTriggerEnter2D(Collider2D hitInfo)
 {
     if (hitInfo.CompareTag("Enemy"))
     {
         EnemyHandler enemy = hitInfo.GetComponent <EnemyHandler>();
         enemy.GetHealthSystem().Damage(dmg);
         enemy.KnockBack(400000);
         CreateText(hitInfo.transform.position);
     }
     else if (hitInfo.CompareTag("EnemyRanged"))
     {
         EnemyRangedHandler enemy = hitInfo.GetComponent <EnemyRangedHandler>();
         enemy.GetHealthSystem().Damage(dmg);
         enemy.KnockBack(400000);
         CreateText(hitInfo.transform.position);
     }
     else if (hitInfo.CompareTag("EnemySlower"))
     {
         EnemySlowerHandler enemy = hitInfo.GetComponent <EnemySlowerHandler>();
         enemy.GetHealthSystem().Damage(dmg);
         enemy.KnockBack(400000);
         CreateText(hitInfo.transform.position);
     }
     else if (hitInfo.CompareTag("Boss"))
     {
         BossHandler boss = hitInfo.GetComponent <BossHandler>();
         boss.GetHealthSystem().Damage(dmg);
         CreateText(hitInfo.transform.position);
     }
 }
Exemplo n.º 2
0
    private EnemyRangedHandler GetClosestEnemyRangedHandler(Vector3 playerPosition)
    {
        const float        maxDistance = 50f;
        EnemyRangedHandler closest     = null;

        foreach (EnemyRangedHandler enemyRangedHandler in enemyRangedHandlerList)
        {
            if (Vector3.Distance(playerPosition, enemyRangedHandler.GetPosition()) > maxDistance)
            {
                continue;
            }

            if (closest == null)
            {
                closest = enemyRangedHandler;
            }
            else
            {
                if (Vector3.Distance(playerPosition, enemyRangedHandler.GetPosition()) < Vector3.Distance(playerPosition, closest.GetPosition()))
                {
                    closest = enemyRangedHandler;
                }
            }
        }
        return(closest);
    }
Exemplo n.º 3
0
    private void EnemyRangedHandler_OnDead(object sender, System.EventArgs e)
    {
        EnemyRangedHandler enemyRangedHandler = sender as EnemyRangedHandler;

        enemyRangedHandler.GetComponent <ParticleSystem>().Play();
        FindObjectOfType <AudioManager>().Play("SlashEnemyKill");
        enemyRangedHandlerList.Remove(enemyRangedHandler);
        playerHandler.GetRewards(30 + lvl, 7 + lvl);
        Instantiate(GameAssets.i.psRanged, enemyRangedHandler.transform.position, Quaternion.identity);
    }
Exemplo n.º 4
0
 public void SpawnRangedEnemy()
 {
     for (int i = 0; i < 30; i++)
     {
         Vector3      spawnPosition = playerHandler.GetPosition() + UtilsClass.GetRandomDir() * UnityEngine.Random.Range(2.5f, 3f);
         Collider2D[] colliders     = Physics2D.OverlapCircleAll(spawnPosition, 1, wallLayer);
         if (colliders.Length == 0)
         {
             EnemyRangedHandler enemyRangedHandler = EnemyRangedHandler.CreateEnemy(spawnPosition, playerHandler);
             enemyRangedHandler.OnDead += EnemyRangedHandler_OnDead;
             enemyRangedHandlerList.Add(enemyRangedHandler);
             break;
         }
     }
 }
Exemplo n.º 5
0
    public static EnemyRangedHandler CreateEnemy(Vector3 spawnPosition, PlayerHandler playerHandler)
    {
        Transform          enemyTransform     = Instantiate(GameAssets.i.pfEnemyRangedTransform, spawnPosition, Quaternion.identity);
        EnemyRangedHandler enemyRangedHandler = enemyTransform.GetComponent <EnemyRangedHandler>();

        HealthSystem healthSystem = new HealthSystem(75 + (GameControl.control.lvl * 9));
        HealthBar    healthBar    = Instantiate(GameAssets.i.pfHealthBar, spawnPosition + new Vector3(0, 1.5f), Quaternion.identity, enemyTransform).GetComponent <HealthBar>();

        healthBar.Setup(healthSystem);

        enemyRangedHandler.Setup(playerHandler, healthSystem);


        return(enemyRangedHandler);
    }
Exemplo n.º 6
0
 void OnTriggerEnter2D(Collider2D col)
 {
     if (col.CompareTag("EnemyRanged"))
     {
         EnemyRangedHandler enemy = col.GetComponent <EnemyRangedHandler>();
         enemy.KnockBack(1000000);
         if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
         {
             enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
         }
         if (enemy.switched == false)
         {
             StartCoroutine(enemy.SwapState(stunDuration));
         }
     }
     if (col.CompareTag("Enemy"))
     {
         EnemyHandler enemy = col.GetComponent <EnemyHandler>();
         enemy.KnockBack(1000000);
         if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
         {
             enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
         }
         if (enemy.switched == false)
         {
             StartCoroutine(enemy.SwapState(stunDuration));
         }
     }
     if (col.CompareTag("EnemySlower"))
     {
         EnemySlowerHandler enemy = col.GetComponent <EnemySlowerHandler>();
         enemy.KnockBack(1000000);
         if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
         {
             enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
         }
         if (enemy.switched == false)
         {
             StartCoroutine(enemy.SwapState(stunDuration));
         }
     }
 }
Exemplo n.º 7
0
    IEnumerator AoE()
    {
        aoe = true;
        audioManager.Play("Explosion");
        gameObject.GetComponent <ParticleSystem>().Play();

        StartCoroutine(FadeTo(aoeCd, aoeFire));

        Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(transform.position, attackRange * 4, whatIsEnemies);

        for (int i = 0; i < enemiesToDamage.Length; i++)
        {
            if (enemiesToDamage[i].gameObject.CompareTag("EnemyRanged"))
            {
                EnemyRangedHandler enemy = enemiesToDamage[i].GetComponent <EnemyRangedHandler>();
                enemy.GetHealthSystem().Damage(aoeDmg);
                enemy.KnockBack(1000000);

                CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + aoeDmg);
                if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                {
                    enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                }
            }
            else if (enemiesToDamage[i].gameObject.CompareTag("Enemy"))
            {
                EnemyHandler enemy = enemiesToDamage[i].GetComponent <EnemyHandler>();
                enemy.GetHealthSystem().Damage(aoeDmg);
                enemy.KnockBack(1000000);

                CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + aoeDmg);
                if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                {
                    enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                }
            }
            else if (enemiesToDamage[i].gameObject.CompareTag("EnemySlower"))
            {
                EnemySlowerHandler enemy = enemiesToDamage[i].GetComponent <EnemySlowerHandler>();
                enemy.GetHealthSystem().Damage(aoeDmg);
                enemy.KnockBack(1000000);

                CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + aoeDmg);
                if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                {
                    enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                }
            }
            else if (enemiesToDamage[i].gameObject.CompareTag("Boss"))
            {
                BossHandler boss = enemiesToDamage[i].GetComponent <BossHandler>();
                boss.GetHealthSystem().Damage(aoeDmg);

                CreateText(Color.grey, new Vector3(boss.transform.position.x, boss.transform.position.y + 1), new Vector2(0, 5), "-" + aoeDmg);
                if (boss.GetHealthSystem().GetHealthPercent() < 0.25)
                {
                    boss.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                }
            }
        }
        yield return(new WaitForSeconds(aoeCd));

        aoeFire.color = new Color(1, 1, 1, 1);
        aoe           = false;
    }
Exemplo n.º 8
0
    private void HandleAttack()
    {
        if ((Input.GetButtonDown("Basic") || phoneAttack) && timeBtwAttack <= 0)
        {
            StartCoroutine(TmpBusy(0.1f));
            animator.SetTrigger("Attack");
            phoneAttack = false;

            Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, whatIsEnemies);
            if (enemiesToDamage.Length > 0)
            {
                audioManager.Play("SlashSuccess");

                for (int i = 0; i < enemiesToDamage.Length; i++)
                {
                    if (enemiesToDamage[i].gameObject.CompareTag("EnemyRanged"))
                    {
                        EnemyRangedHandler enemy = enemiesToDamage[i].GetComponent <EnemyRangedHandler>();
                        enemy.GetHealthSystem().Damage(basicAtkDmg);
                        enemy.KnockBack(200000);

                        CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + basicAtkDmg);

                        if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                        {
                            enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                        }
                    }
                    else if (enemiesToDamage[i].gameObject.CompareTag("Enemy"))
                    {
                        EnemyHandler enemy = enemiesToDamage[i].GetComponent <EnemyHandler>();
                        enemy.GetHealthSystem().Damage(basicAtkDmg);
                        enemy.KnockBack(200000);

                        CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + basicAtkDmg);

                        if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                        {
                            enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                        }
                    }
                    else if (enemiesToDamage[i].gameObject.CompareTag("EnemySlower"))
                    {
                        EnemySlowerHandler enemy = enemiesToDamage[i].GetComponent <EnemySlowerHandler>();
                        enemy.GetHealthSystem().Damage(basicAtkDmg);
                        enemy.KnockBack(200000);

                        CreateText(Color.grey, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1), new Vector2(0, 5), "-" + basicAtkDmg);

                        if (enemy.GetHealthSystem().GetHealthPercent() < 0.25)
                        {
                            enemy.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                        }
                    }
                    else if (enemiesToDamage[i].gameObject.CompareTag("Boss"))
                    {
                        BossHandler boss = enemiesToDamage[i].GetComponent <BossHandler>();
                        boss.GetHealthSystem().Damage(basicAtkDmg);

                        CreateText(Color.grey, new Vector3(boss.transform.position.x, boss.transform.position.y + 1), new Vector2(0, 5), "-" + basicAtkDmg);

                        if (boss.GetHealthSystem().GetHealthPercent() < 0.1)
                        {
                            boss.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.5f);
                        }
                    }
                }
            }
            else
            {
                audioManager.Play("SlashFail");
            }
            timeBtwAttack = startTimeBtwAttack;
        }
        else
        {
            phoneAttack    = false;
            timeBtwAttack -= Time.deltaTime;
        }
    }