#include <ai.hpp>
Public Member Functions | |
ai_composite (default_ai_context &context, const config &cfg) | |
Constructor. More... | |
virtual | ~ai_composite () |
Destructor. More... | |
void | play_turn () |
Play the turn. More... | |
virtual std::string | evaluate (const std::string &str) |
Evaluate command (using fai) More... | |
virtual void | new_turn () |
On new turn. More... | |
std::string | describe_self () const |
virtual config | to_config () const |
serialize More... | |
int | get_recursion_count () const |
Get the value of the recursion counter. More... | |
void | switch_side (side_number side) |
virtual bool | add_goal (const config &cfg) |
virtual bool | add_stage (const config &cfg) |
void | create_stage (std::vector< stage_ptr > &stages, const config &cfg) |
void | create_goal (std::vector< goal_ptr > &goals, const config &cfg) |
void | create_engine (std::vector< engine_ptr > &engines, const config &cfg) |
void | replace_aspect (std::map< std::string, aspect_ptr > &aspects, const config &cfg, std::string id) |
void | on_create () |
virtual ai_context & | get_ai_context () |
unwrap More... | |
virtual std::string | get_id () const |
virtual std::string | get_name () const |
virtual std::string | get_engine () const |
Public Member Functions inherited from ai::default_ai_context | |
default_ai_context () | |
Constructor. More... | |
virtual | ~default_ai_context () |
Destructor. More... | |
Public Member Functions inherited from ai::readwrite_context | |
readwrite_context () | |
virtual | ~readwrite_context () |
Public Member Functions inherited from ai::readonly_context | |
readonly_context () | |
virtual | ~readonly_context () |
Public Member Functions inherited from ai::side_context | |
virtual | ~side_context () |
empty destructor More... | |
side_context () | |
empty constructor More... | |
Public Member Functions inherited from ai::default_ai_context_proxy | |
int | count_free_hexes_in_castle (const map_location &loc, std::set< map_location > &checked_hexes) |
default_ai_context_proxy () | |
virtual | ~default_ai_context_proxy () |
virtual const std::vector < target > & | additional_targets () const |
virtual void | add_target (const target &t) const |
virtual void | clear_additional_targets () const |
virtual default_ai_context & | get_default_ai_context () |
virtual std::vector< target > | find_targets (const move_map &enemy_dstsrc) |
void | init_default_ai_context_proxy (default_ai_context &target) |
virtual int | rate_terrain (const unit &u, const map_location &loc) const |
virtual config | to_default_ai_context_config () const |
Public Member Functions inherited from ai::readwrite_context_proxy | |
readwrite_context_proxy () | |
void | init_readwrite_context_proxy (readwrite_context &target) |
virtual readwrite_context & | get_readwrite_context () |
virtual attack_result_ptr | execute_attack_action (const map_location &attacker_loc, const map_location &defender_loc, int attacker_weapon) |
virtual move_result_ptr | execute_move_action (const map_location &from, const map_location &to, bool remove_movement=true, bool unreach_is_ok=false) |
virtual recall_result_ptr | execute_recall_action (const std::string &id, const map_location &where=map_location::null_location(), const map_location &from=map_location::null_location()) |
virtual recruit_result_ptr | execute_recruit_action (const std::string &unit_name, const map_location &where=map_location::null_location(), const map_location &from=map_location::null_location()) |
virtual stopunit_result_ptr | execute_stopunit_action (const map_location &unit_location, bool remove_movement=true, bool remove_attacks=false) |
virtual synced_command_result_ptr | execute_synced_command_action (const std::string &lua_code, const map_location &location=map_location::null_location()) |
virtual team & | current_team_w () |
virtual void | raise_gamestate_changed () const |
virtual game_info & | get_info_w () |
virtual config | to_readwrite_context_config () const |
serialize this context to config More... | |
Public Member Functions inherited from ai::readonly_context_proxy | |
readonly_context_proxy () | |
virtual | ~readonly_context_proxy () |
void | init_readonly_context_proxy (readonly_context &target) |
virtual readonly_context & | get_readonly_context () |
virtual void | on_readonly_context_create () |
virtual const team & | current_team () const |
virtual void | diagnostic (const std::string &msg) |
virtual void | log_message (const std::string &msg) |
virtual attack_result_ptr | check_attack_action (const map_location &attacker_loc, const map_location &defender_loc, int attacker_weapon) |
virtual move_result_ptr | check_move_action (const map_location &from, const map_location &to, bool remove_movement=true, bool unreach_is_ok=false) |
virtual recall_result_ptr | check_recall_action (const std::string &id, const map_location &where=map_location::null_location(), const map_location &from=map_location::null_location()) |
virtual recruit_result_ptr | check_recruit_action (const std::string &unit_name, const map_location &where=map_location::null_location(), const map_location &from=map_location::null_location()) |
virtual stopunit_result_ptr | check_stopunit_action (const map_location &unit_location, bool remove_movement=true, bool remove_attacks=false) |
virtual synced_command_result_ptr | check_synced_command_action (const std::string &lua_code, const map_location &location=map_location::null_location()) |
virtual void | calculate_possible_moves (std::map< map_location, pathfind::paths > &possible_moves, move_map &srcdst, move_map &dstsrc, bool enemy, bool assume_full_movement=false, const terrain_filter *remove_destinations=nullptr) const |
virtual void | calculate_moves (const unit_map &units, std::map< map_location, pathfind::paths > &possible_moves, move_map &srcdst, move_map &dstsrc, bool enemy, bool assume_full_movement=false, const terrain_filter *remove_destinations=nullptr, bool see_all=false) const |
virtual const game_info & | get_info () const |
virtual void | raise_user_interact () const |
defensive_position const & | best_defensive_position (const map_location &unit, const move_map &dstsrc, const move_map &srcdst, const move_map &enemy_dstsrc) const |
virtual std::map< map_location, defensive_position > & | defensive_position_cache () const |
virtual const unit_advancements_aspect & | get_advancements () const |
virtual double | get_aggression () const |
virtual int | get_attack_depth () const |
virtual const aspect_map & | get_aspects () const |
virtual aspect_map & | get_aspects () |
virtual void | add_aspects (std::vector< aspect_ptr > &aspects) |
virtual void | add_facet (const std::string &id, const config &cfg) const |
virtual const attacks_vector & | get_attacks () const |
virtual const variant & | get_attacks_as_variant () const |
virtual const terrain_filter & | get_avoid () const |
virtual double | get_caution () const |
virtual const move_map & | get_dstsrc () const |
virtual const move_map & | get_enemy_dstsrc () const |
virtual const moves_map & | get_enemy_possible_moves () const |
virtual const move_map & | get_enemy_srcdst () const |
virtual engine_ptr | get_engine_by_cfg (const config &cfg) |
get engine by cfg, creating it if it is not created yet but known More... | |
virtual const std::vector < engine_ptr > & | get_engines () const |
virtual std::vector< engine_ptr > & | get_engines () |
virtual std::string | get_grouping () const |
virtual const std::vector < goal_ptr > & | get_goals () const |
virtual std::vector< goal_ptr > & | get_goals () |
virtual double | get_leader_aggression () const |
virtual config | get_leader_goal () const |
virtual bool | get_leader_ignores_keep () const |
virtual double | get_leader_value () const |
virtual bool | get_passive_leader () const |
virtual bool | get_passive_leader_shares_keep () const |
virtual const moves_map & | get_possible_moves () const |
virtual double | power_projection (const map_location &loc, const move_map &dstsrc) const |
Function which finds how much 'power' a side can attack a certain location with. More... | |
virtual const std::vector < unit_ptr > & | get_recall_list () const |
virtual double | get_recruitment_diversity () const |
virtual const config | get_recruitment_instructions () const |
virtual const std::vector < std::string > | get_recruitment_more () const |
virtual const std::vector < std::string > | get_recruitment_pattern () const |
virtual int | get_recruitment_randomness () const |
virtual const config | get_recruitment_save_gold () const |
virtual const move_map & | get_srcdst () const |
virtual double | get_scout_village_targeting () const |
virtual bool | get_simple_targeting () const |
virtual bool | get_support_villages () const |
virtual double | get_village_value () const |
virtual int | get_villages_per_scout () const |
virtual bool | is_active (const std::string &time_of_day, const std::string &turns) const |
virtual bool | is_dst_src_valid_lua () const |
virtual bool | is_dst_src_enemy_valid_lua () const |
virtual bool | is_src_dst_valid_lua () const |
virtual bool | is_src_dst_enemy_valid_lua () const |
virtual void | invalidate_defensive_position_cache () const |
virtual void | invalidate_move_maps () const |
virtual void | invalidate_keeps_cache () const |
virtual const std::set < map_location > & | keeps () const |
virtual bool | leader_can_reach_keep () const |
virtual const map_location & | nearest_keep (const map_location &loc) const |
virtual void | recalculate_move_maps () const |
virtual void | recalculate_move_maps_enemy () const |
virtual void | set_dst_src_valid_lua () |
virtual void | set_dst_src_enemy_valid_lua () |
virtual void | set_src_dst_valid_lua () |
virtual void | set_src_dst_enemy_valid_lua () |
virtual const map_location & | suitable_keep (const map_location &leader_location, const pathfind::paths &leader_paths) |
get most suitable keep for leader - nearest free that can be reached in 1 turn, if none - return nearest occupied that can be reached in 1 turn, if none - return nearest keep, if none - return null_location More... | |
virtual config | to_readonly_context_config () const |
serialize to config More... | |
virtual unit_stats_cache_t & | unit_stats_cache () const |
Public Member Functions inherited from ai::side_context_proxy | |
side_context_proxy () | |
virtual | ~side_context_proxy () |
void | init_side_context_proxy (side_context &target) |
virtual side_number | get_side () const |
Get the side number. More... | |
virtual void | set_side (side_number side) |
Set the side number. More... | |
virtual side_context & | get_side_context () |
unwrap More... | |
virtual config | to_side_context_config () const |
serialize this context to config More... | |
Public Member Functions inherited from ai::component | |
component () | |
virtual | ~component () |
virtual component * | get_child (const path_element &child) |
virtual std::vector< component * > | get_children (const std::string &type) |
virtual std::vector< std::string > | get_children_types () |
virtual bool | change_child (const path_element &child, const config &cfg) |
virtual bool | add_child (const path_element &child, const config &cfg) |
virtual bool | delete_child (const path_element &child) |
property_handler_map & | property_handlers () |
Static Public Member Functions | |
static config | preparse_cfg (ai_context &ctx, const config &cfg) |
Protected Attributes | |
const config & | cfg_ |
Config of the AI. More... | |
std::vector< stage_ptr > | stages_ |
Stages of the composite AI. More... | |
recursion_counter | recursion_counter_ |
Recursion counter. More... | |
Additional Inherited Members | |
Public Types inherited from ai::readonly_context | |
typedef std::map< std::pair < map_location, const unit_type * >, std::pair < battle_context_unit_stats, battle_context_unit_stats > > | unit_stats_cache_t |
ai::ai_composite::ai_composite | ( | default_ai_context & | context, |
const config & | cfg | ||
) |
Constructor.
Definition at line 49 of file ai.cpp.
References ai::default_ai_context_proxy::init_default_ai_context_proxy().
|
virtual |
Definition at line 135 of file ai.cpp.
References create_goal(), and ai::readonly_context_proxy::get_goals().
|
virtual |
Definition at line 122 of file ai.cpp.
References create_stage(), and stages_.
Referenced by on_create().
void ai::ai_composite::create_engine | ( | std::vector< engine_ptr > & | engines, |
const config & | cfg | ||
) |
Definition at line 104 of file ai.cpp.
References ai::engine::parse_engine_from_config().
Referenced by on_create().
Definition at line 98 of file ai.cpp.
References ai::engine::parse_goal_from_config().
Referenced by add_goal(), and on_create().
Definition at line 92 of file ai.cpp.
References ai::engine::parse_stage_from_config().
Referenced by add_stage(), and on_create().
std::string ai::ai_composite::describe_self | ( | ) | const |
|
virtual |
Evaluate command (using fai)
Definition at line 174 of file ai.cpp.
References ai::readonly_context_proxy::get_engine_by_cfg().
Referenced by ai::manager::evaluate_command().
|
virtual |
unwrap
Implements ai::ai_context.
Definition at line 208 of file ai.cpp.
Referenced by intf_debug_ai().
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Get the value of the recursion counter.
Reimplemented from ai::readwrite_context_proxy.
Definition at line 198 of file ai.cpp.
References ai::recursion_counter::get_count(), and recursion_counter_.
|
virtual |
On new turn.
Definition at line 187 of file ai.cpp.
References ai::default_ai_context_proxy::clear_additional_targets(), ai::readonly_context_proxy::invalidate_defensive_position_cache(), ai::readonly_context_proxy::invalidate_keeps_cache(), ai::readonly_context_proxy::recalculate_move_maps(), and ai::readonly_context_proxy::unit_stats_cache().
Referenced by ai::manager::play_turn().
void ai::ai_composite::on_create | ( | ) |
Definition at line 55 of file ai.cpp.
References add_stage(), cfg_, config::child_range(), create_engine(), create_goal(), create_stage(), ai::readonly_context_proxy::get_aspects(), ai::readonly_context_proxy::get_engine_by_cfg(), ai::readonly_context_proxy::get_engines(), ai::readonly_context_proxy::get_goals(), ai::side_context_proxy::get_side(), LOG_AI_COMPOSITE, ai::component::property_handlers(), ai::register_aspect_property(), ai::register_vector_property(), replace_aspect(), and stages_.
void ai::ai_composite::play_turn | ( | ) |
Play the turn.
Definition at line 148 of file ai.cpp.
References stages_.
Referenced by ai::manager::play_turn().
|
static |
Definition at line 226 of file ai.cpp.
References config::add_child(), ai::side_context::get_side(), and ai::configuration::parse_side_config().
void ai::ai_composite::replace_aspect | ( | std::map< std::string, aspect_ptr > & | aspects, |
const config & | cfg, | ||
std::string | id | ||
) |
Definition at line 110 of file ai.cpp.
References ai::engine::parse_aspect_from_config().
Referenced by on_create().
void ai::ai_composite::switch_side | ( | side_number | side | ) |
Definition at line 203 of file ai.cpp.
References ai::side_context_proxy::set_side().
|
virtual |
|
protected |
Config of the AI.
Definition at line 119 of file ai.hpp.
Referenced by get_engine(), get_id(), get_name(), and on_create().
|
protected |
|
protected |
Stages of the composite AI.
Definition at line 125 of file ai.hpp.
Referenced by add_stage(), on_create(), play_turn(), and to_config().