public override void Activate() { base.Activate (); tracked_enemy = null; current_node = null; id = global_id_counter ++; parameters.hp_current = parameters.hp_max; }
public bool HasEnemyAround() { if (!ValidEnemy() ) { tracked_enemy = GetClosestActiveEnemy(); if ( tracked_enemy != null ) last_tracked_enemy_id = tracked_enemy.id; } return tracked_enemy != null; }
public void DealDamageToTrackedEnemy() { tracked_enemy.parameters.hp_current -= parameters.attack_damage; Debug.DrawLine (transform.position, tracked_enemy.transform.position, debug_attack_color); if (tracked_enemy.parameters.hp_current <= 0) { tracked_enemy.Deactivate(); tracked_enemy = null; } }
void ReselectTarget() { var r = GetClosestActiveEnemy (); if (r != null) { tracked_enemy = r; last_tracked_enemy_id = r.id; } }
public bool ValidEnemy() { if (tracked_enemy == null) return false; if (!tracked_enemy.isActiveAndEnabled | tracked_enemy.id != last_tracked_enemy_id) { tracked_enemy = null; return false; } return true; }
//# public f public void IgnoreCurrentEnemy() { tracked_enemy = null; }
/* ########################## core mono functions ######################## */ void Awake() { reactor = GetComponent<Reactor> (); core = GetComponent<AgentX2> (); }