Beispiel #1
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Enemy")
        {
            if (IN.IsInvincible)
            {
            }

            else
            {
                SoundManager.PlaySound("Getting Hurt");
                health -= 1;
                IN.ActivateInvulnerability();
                spriteDmg.color = RedHurt;
                StartCoroutine(colorSwap());
                spriteDmg.color = normal;
            }
            KB.KnockBack();

            if (health <= 0)
            {
                restartHP();
                transform.position = GameManager.Instance.lastCheckPointPos;
                SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            }
        }

        if (collision.gameObject.tag == "Boss")
        {
            if (IN.IsInvincible)
            {
            }

            else
            {
                SoundManager.PlaySound("Getting Hurt");
                health -= 1;
                IN.ActivateInvulnerability();
                spriteDmg.color = RedHurt;
                StartCoroutine(colorSwap());
                spriteDmg.color = normal;
            }
            KB.KnockBack();

            if (health <= 0)
            {
                restartHP();
                transform.position = GameManager.Instance.lastCheckPointPos;
                SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            }
        }
    }
Beispiel #2
0
 void OnTriggerEnter2D(Collider2D target)
 {
     if (target.gameObject.tag == targetTag)
     {
         StartCoroutine(knockBack.KnockBack(0.001f, 1f));
     }
 }
Beispiel #3
0
    public void TakeDamage(float damageTaken, GameObject damageGiver)
    {
        if (invulnerable)
        {
            return;
        }

        StartCoroutine(IFrames());
        currHealth -= damageTaken;
        SoundsManager.instance.PlayClip(SoundsManager.Sound.PlayerDamaged);
        DamageTaken?.Invoke();
        if (currHealth <= 0f)
        {
            Destroy();
        }
        else
        {
            Knockback kB = GetComponent <Knockback>();
            if (kB != null)
            {
                StartCoroutine(kB.KnockBack(damageGiver.gameObject.transform));
                GetComponent <PlayerMovement>().ChangeState(PlayerState.Stagger);
            }
        }
    }
Beispiel #4
0
    public void Damage(float damage, Entity attacker)
    {
        health -= damage;
        Game.Slow();
        Game.ShowHit(0.5f * (transform.position + attacker.transform.position));
        knockback.KnockBack(damage * 30f, attacker);

        if (onDamage != null)
        {
            onDamage();
        }

        if (health <= 0)
        {
            Die();
        }
    }
Beispiel #5
0
 public void TakeDamage(float damageTaken, GameObject damageGiver)
 {
     currHealth -= damageTaken;
     if (currHealth <= 0f)
     {
         Destroy();
     }
     else
     {
         Knockback kB = GetComponent <Knockback>();
         if (kB != null)
         {
             ChangeState(EnemyState.Stagger);
             StartCoroutine(kB.KnockBack(damageGiver.transform));
         }
     }
 }