Exemple #1
0
 void CheckForDamage()
 {
     if ((collider_.IsTouching(hero_circle_collider_) || collider_.IsTouching(hero_edge_collider_)) && damage_timer_ == 0)
     {
         MBehaviour    = Hurt;
         damage_timer_ = 30;
     }
     if (monster.HP <= 0 && isAlive)
     {
         MBehaviour = Die;
         isAlive    = false;
     }
     if (damage_timer_ > 0)
     {
         --damage_timer_;
     }
 }
Exemple #2
0
    private void CheckForDamage()
    {
        if ((collider_.IsTouching(hero_circle_collider_) || collider_.IsTouching(hero_edge_collider_)) && damage_timer_ == 0)
        {
            MBehaviour = Hurt;
            TakeDamage((int)ValueControler.Strength);
            damage_timer_ = 30;
        }

        if (damage_timer_ == 0)
        {
            Collider2D[] colliders = Physics2D.OverlapBoxAll(transform.position, collider_.size, 0);

            for (int i = 0; i < colliders.Length; ++i)
            {
                if (colliders[i].tag == "Fireball")
                {
                    MBehaviour = Hurt;
                    TakeDamage((int)ValueControler.Intelegence * 5);
                    GameObject.Destroy(colliders[i].gameObject);
                    damage_timer_ = 30;
                    break;
                }

                if (colliders[i].tag == "Shock")
                {
                    MBehaviour = Hurt;
                    TakeDamage((int)ValueControler.Intelegence);
                    damage_timer_ = 30;
                    break;
                }
            }
        }

        if (monster.HP <= 0 && isAlive)
        {
            MBehaviour = Die;
            isAlive    = false;
        }
        if (damage_timer_ > 0)
        {
            --damage_timer_;
        }
    }
Exemple #3
0
    void CheckForPlayer()
    {
        Vector3 hero_distance = Hero.transform.position - transform.position;

        float agro_range_sqr = agro_range * agro_range;

        if (hero_distance.sqrMagnitude <= attack_range * attack_range)
        {
            MBehaviour = Attack;
        }
        else if (hero_distance.sqrMagnitude <= agro_range_sqr)
        {
            MBehaviour = Track;
        }
        else
        {
            MBehaviour = Patrol;
        }
    }