Exploring raycasters and possibly make a little "doom like" game based on it.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
raycaster/autowalker.hpp

42 lines
995 B

#pragma once
#include "ai.hpp"
#include "gui_fsm.hpp"
struct InventoryStats;
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 handle_window_events();
void handle_boss_fight();
void handle_player_walk(ai::State& start, ai::State& goal);
void send_event(gui::Event ev);
void process_combat();
bool path_player(Pathing& paths, Point &target_out);
void path_fail(Matrix& bad_paths, Point pos);
Point get_current_position();
void rotate_player(Point current, Point target);
void process_move(Pathing& paths);
void log(std::string msg);
void status(std::string msg);
void close_status();
bool player_health_good();
void player_use_healing();
InventoryStats player_item_count();
ai::State update_state(ai::State start);
Pathing path_to_enemies();
Pathing path_to_items();
Pathing path_to_devices();
};