35 namespace ai {
class unit_advancements_aspect; }
36 namespace ai {
class ai_composite; }
37 namespace ai {
class ai_context; }
38 namespace ai {
class component; }
39 namespace ai {
class default_ai_context; }
40 namespace ai {
class readonly_context; }
41 namespace ai {
class readwrite_context; }
42 namespace ai {
class side_context; }
61 const std::string describe_ai();
65 void modify_ai(
const config& cfg);
66 void micro_ai(
const config& cfg);
68 void append_ai(
const config& cfg);
70 const std::string get_ai_overview();
72 const std::string get_ai_structure();
74 const std::string get_ai_identifier()
const;
97 : number_(number), command_(command)
121 static const std::size_t MAX_HISTORY_SIZE = 200;
147 assert(singleton_ !=
nullptr);
153 return singleton_ !=
nullptr;
189 void raise_user_interact();
195 void raise_sync_network();
200 void raise_gamestate_changed();
205 void raise_tod_changed();
210 void raise_recruit_list_changed();
215 void raise_turn_started();
220 void raise_map_changed();
251 void remove_recruit_list_changed_observer(
events::observer* event_observer );
278 const std::string evaluate_command(
side_number side,
const std::string& str );
293 bool add_ai_for_side_from_file(
side_number side,
const std::string& file,
bool replace =
true );
304 bool add_ai_for_side_from_config(
side_number side,
const config &cfg,
bool replace =
true);
351 std::string get_active_ai_overview_for_side(
side_number side );
358 std::string get_active_ai_structure_for_side(
side_number side );
365 std::string get_active_ai_identifier_for_side(
side_number side );
455 const std::string internal_evaluate_command(
side_number side,
const std::string& str );
462 bool should_intercept(
const std::string& str )
const;
471 std::stack< holder >& get_or_create_ai_stack_for_side(
side_number side);
496 friend class ::game_launcher;
static const std::string AI_TYPE_DFOOL_AI
std::unique_ptr< ai_composite > composite_ai_ptr
const std::string & get_command() const
static manager & get_singleton()
static bool has_manager()
events::generic_event gamestate_changed_
Class that manages AIs for all sides and manages AI redeployment.
std::unique_ptr< readonly_context > readonly_context_
Definitions for the interface to Wesnoth Markup Language (WML).
command_history_item(int number, const std::string &command)
std::unique_ptr< side_context > side_context_
A small explanation about what's going on here: Each action has access to two game_info objects First...
struct utils::detail::formula_initer init
std::deque< command_history_item > history_
events::generic_event user_interact_
static const std::string AI_TYPE_AI2
std::unique_ptr< default_ai_context > default_ai_context_
static const std::string AI_TYPE_DEFAULT
static const std::string AI_TYPE_IDLE_AI
events::generic_event sync_network_
static const std::string AI_TYPE_COMPOSITE_AI
Game information for the AI.
events::generic_event map_changed_
events::generic_event turn_started_
long history_item_counter_
events::generic_event tod_changed_
std::map< side_number, std::stack< holder > > AI_map_of_stacks
Handling of system events.
static manager * singleton_
static const std::string AI_TYPE_FORMULA_AI
static const std::string AI_TYPE_SAMPLE_AI
std::unique_ptr< readwrite_context > readwrite_context_
A config object defines a single node in a WML file, with access to child nodes.
events::generic_event recruit_list_changed_
Base class that holds the AI and current AI parameters.