#pragma once

#include "gui_fsm.hpp"

struct Autowalker {
  int enemy_count = 0;
  int item_count = 0;
  int device_count = 0;
  gui::FSM& fsm;

  Autowalker(gui::FSM& fsm)
    : fsm(fsm) {}

  void autowalk();
  void start_autowalk();
  void send_event(gui::Event ev);
  void window_events();
  void process_combat();
  bool path_player(Pathing& paths, Point &target_out);
  Point get_current_position();
  void rotate_player(Point current, Point target);
  bool player_has_moved(Point target);
  void process_move();
  Pathing path_to_enemies();
  Pathing path_to_items();
  Pathing path_to_devices();
  void show_map_overlay(matrix::Matrix& map, Point current);
};
