// Update is called once per frame public void TakeDamage(int damage) { if (currHealth > damage) { pm.enabled = false; currHealth -= damage; CamDictionary.CamShake(0.2f, 10f); rb.AddForce(getDamageForce, ForceMode2D.Impulse); pm.enabled = true; } else { UnityEngine.SceneManagement.SceneManager.LoadScene("Menu"); } }
private void FixedUpdate() { if (damageItems) { if (GroundCheck.isGrounded) { rb.velocity = new Vector2(0, rb.velocity.y); } Collider2D[] damageableColliders = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsDamageableByPlayer); Collider2D[] enemyColliders = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsEnemy); Collider2D[] hitableColliders = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsHitableByPlayer); foreach (Collider2D c in enemyColliders) { c.gameObject.GetComponent <EnemyHealth>().TakeDamage(40); } if (damageableColliders.Length > 0) { /*if (transform.localScale.x < 0) * { * rb.AddForce(attackForce, ForceMode2D.Impulse); * } * else if (transform.localScale.x > 0) * { * Vector2 negAttackForce = new Vector2(-attackForce.x, attackForce.y); * rb.AddForce(negAttackForce, ForceMode2D.Impulse); * }*/ //#TODO Add damage //CamDictionary.CamShake(0.02f, 2f); } else { Collider2D[] allCollidersInRange = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsHitableByPlayer); if (allCollidersInRange.Length > 0) { CamDictionary.CamShake(0.07f, 3f); } } damageItems = false; } }