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_; } }
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_; } }
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; } }