Example #1
0
        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);
    }