public override void Use(Character character) { Collider2D[] collisions = AttackType.GetColliders(character); foreach (Collider2D collision in collisions) { if (collision == character.Body.Collider) { continue; } Strikeable strikeable = collision.gameObject.GetComponent <Strikeable>(); if (strikeable) { StrikeData strike = new StrikeData( DamageType.Name, Damage, character.Entity, Time.time ); strikeable.Strike(strike); } } }
public bool PerformStrike() { RaycastHit2D[] hits = Physics2D.CircleCastAll(collider.bounds.center, collider.radius, Vector2.right, 0.0f); //print("Striking: " + hits.Length); for (int i = 0; i < hits.Length; i++) { //print("hit: " + hits[i].collider.gameObject.name); Strikeable strikeable = hits[i].collider.gameObject.GetComponent <Strikeable>(); if (strikeable != null) { strikeable.Strike(parent, damage); } } return(hits.Length > 0); }