public void TakeDamage() { Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPos.position, attackRange, enemies); for (int i = 0; i < enemiesToDamage.Length; i++) { if (enemiesToDamage[i].tag != "Bar") { CharacterHealth characterHealth = enemiesToDamage[i].GetComponent <CharacterHealth>(); if (characterHealth != null) { characterHealth.TakeDamage(damage); } if (enemiesToDamage[i].tag == "Hand") { } } else { MachineTrigger machineTrigger = enemiesToDamage[i].GetComponent <MachineTrigger>(); if (machineTrigger != null) { machineTrigger.StateChange(); } } Vector2 pushDir = enemiesToDamage[i].transform.position - transform.position; pushDir = -pushDir.normalized; if (enemiesToDamage [i].tag == "Enemy") { //Debug.Log ("back"); enemiesToDamage [i].GetComponent <Rigidbody2D> ().AddForce(-pushDir * hitForce * 100000000); } } //StartCoroutine(SetAttackRange()); }
public void TakeAttackRange() { charSprite.GetComponent <SpritesOutline>().outlineSize = 16; Collider2D[] enemiesToDamage = Physics2D.OverlapAreaAll(startPos.position, endPos.position, enemies); for (int i = 0; i < enemiesToDamage.Length; i++) { if (enemiesToDamage[i].tag == "Player" || enemiesToDamage[i].tag == "King" || enemiesToDamage[i].tag == "Boss" || enemiesToDamage[i].tag == "Hand" || enemiesToDamage[i].tag == "Enemy") { CharacterHealth characterHealth = enemiesToDamage [i].GetComponent <CharacterHealth> (); if (characterHealth != null) { characterHealth.TakeDamage(damage); } } else if (enemiesToDamage[i].tag == "Bar") { MachineTrigger machineTrigger = enemiesToDamage [i].GetComponent <MachineTrigger> (); if (machineTrigger != null) { machineTrigger.StateChange(); } } else if (enemiesToDamage[i].tag == "Breakable") { BreakableWall breakableWall = enemiesToDamage [i].GetComponent <BreakableWall> (); if (breakableWall != null) { breakableWall.WallChange(); } } } coolDownTime = startTime; }