public void updateReactToPyroState(double s_elapsed) {
    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)) {
        initState(RobotPilotState.INACTIVE);
      }
      else if (target_unit.isCloaked()) {
        initState(RobotPilotState.REACT_TO_CLOAKED_PYRO);
      }
    }
    else {
      if (!target_unit.getRoom().equals(target_object_room) ||
              !MapUtils.canSeeObjectInNeighborRoom(bound_object, target_unit,
                      target_object_room_info.getKey())) {
        initState(RobotPilotState.INACTIVE);
      }
      else if (target_unit.isCloaked()) {
        initState(RobotPilotState.REACT_TO_CLOAKED_PYRO);
      }
    }
  }