public void updateReactToCloakedPyroState(double s_elapsed) {
    if (!target_unit.isVisible()) {
      return;
    }
    can_growl = true;
    if (!target_unit.isInMap()) {
      initState(RobotPilotState.INACTIVE);
      can_growl = true;
    }
    else if (target_object_room.equals(current_room)) {
      if (target_unit.getRoom().equals(target_object_room)) {
        if (!target_unit.isCloaked()) {
          initState(RobotPilotState.REACT_TO_PYRO);
          return;
        }
        setTargetLocation(target_unit);
      }
    }
    else if (MapUtils.canSeeObjectInNeighborRoom(bound_object, target_unit, target_object_room_info.getKey())) {
      if (!target_unit.isCloaked()) {
        initState(RobotPilotState.REACT_TO_PYRO);
        return;
      }
      setTargetLocation(target_unit);
    }
  }