#include <aspect.hpp>
Public Member Functions | |
aspect (readonly_context &context, const config &cfg, const std::string &id) | |
virtual | ~aspect () |
void | invalidate () const |
virtual const wfl::variant & | get_variant () const =0 |
virtual std::shared_ptr< wfl::variant > | get_variant_ptr () const =0 |
virtual void | get_lua (lua_State *L) const =0 |
virtual void | recalculate () const =0 |
virtual void | on_create () |
virtual bool | redeploy (const config &cfg, const std::string &id) |
virtual config | to_config () const |
virtual bool | delete_all_facets () |
void | handle_generic_event (const std::string &) |
virtual bool | active () const |
virtual std::string | get_name () const |
virtual std::string | get_id () const |
virtual std::string | get_engine () const |
![]() | |
readonly_context_proxy () | |
virtual | ~readonly_context_proxy () |
void | init_readonly_context_proxy (readonly_context &target) |
virtual readonly_context & | get_readonly_context () override |
virtual void | on_readonly_context_create () override |
virtual const team & | current_team () const override |
virtual void | diagnostic (const std::string &msg) override |
virtual void | log_message (const std::string &msg) override |
virtual attack_result_ptr | check_attack_action (const map_location &attacker_loc, const map_location &defender_loc, int attacker_weapon) override |
virtual move_result_ptr | check_move_action (const map_location &from, const map_location &to, bool remove_movement=true, bool unreach_is_ok=false) override |
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()) override |
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()) override |
virtual stopunit_result_ptr | check_stopunit_action (const map_location &unit_location, bool remove_movement=true, bool remove_attacks=false) override |
virtual synced_command_result_ptr | check_synced_command_action (const std::string &lua_code, const map_location &location=map_location::null_location()) override |
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 override |
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 override |
virtual const game_info & | get_info () const override |
virtual void | raise_user_interact () const override |
virtual int | get_recursion_count () const override |
Get the value of the recursion counter. More... | |
const defensive_position & | best_defensive_position (const map_location &unit, const move_map &dstsrc, const move_map &srcdst, const move_map &enemy_dstsrc) const override |
virtual std::map< map_location, defensive_position > & | defensive_position_cache () const override |
virtual const unit_advancements_aspect & | get_advancements () const override |
virtual double | get_aggression () const override |
virtual bool | get_allow_ally_villages () const override |
virtual const aspect_map & | get_aspects () const override |
virtual aspect_map & | get_aspects () override |
virtual void | add_aspects (std::vector< aspect_ptr > &aspects) override |
virtual void | add_facet (const std::string &id, const config &cfg) const override |
virtual const attacks_vector & | get_attacks () const override |
virtual const wfl::variant & | get_attacks_as_variant () const override |
virtual const terrain_filter & | get_avoid () const override |
virtual double | get_caution () const override |
virtual const move_map & | get_dstsrc () const override |
virtual const move_map & | get_enemy_dstsrc () const override |
virtual const moves_map & | get_enemy_possible_moves () const override |
virtual const move_map & | get_enemy_srcdst () const override |
virtual engine_ptr | get_engine_by_cfg (const config &cfg) override |
get engine by cfg, creating it if it is not created yet but known More... | |
virtual const std::vector< engine_ptr > & | get_engines () const override |
virtual std::vector< engine_ptr > & | get_engines () override |
virtual std::string | get_grouping () const override |
virtual const std::vector< goal_ptr > & | get_goals () const override |
virtual std::vector< goal_ptr > & | get_goals () override |
virtual double | get_leader_aggression () const override |
virtual config | get_leader_goal () const override |
virtual utils::variant< bool, std::vector< std::string > > | get_leader_ignores_keep () const override |
virtual double | get_leader_value () const override |
virtual utils::variant< bool, std::vector< std::string > > | get_passive_leader () const override |
virtual utils::variant< bool, std::vector< std::string > > | get_passive_leader_shares_keep () const override |
virtual const moves_map & | get_possible_moves () const override |
virtual double | power_projection (const map_location &loc, const move_map &dstsrc) const override |
Function which finds how much 'power' a side can attack a certain location with. More... | |
virtual double | get_recruitment_diversity () const override |
virtual const config | get_recruitment_instructions () const override |
virtual const std::vector< std::string > | get_recruitment_more () const override |
virtual const std::vector< std::string > | get_recruitment_pattern () const override |
virtual int | get_recruitment_randomness () const override |
virtual const config | get_recruitment_save_gold () const override |
virtual const move_map & | get_srcdst () const override |
virtual double | get_retreat_enemy_weight () const override |
virtual double | get_retreat_factor () const override |
virtual double | get_scout_village_targeting () const override |
virtual bool | get_simple_targeting () const override |
virtual bool | get_support_villages () const override |
virtual double | get_village_value () const override |
virtual int | get_villages_per_scout () const override |
virtual bool | is_active (const std::string &time_of_day, const std::string &turns) const override |
virtual bool | is_keep_ignoring_leader (const std::string &id) const override |
virtual bool | is_passive_leader (const std::string &id) const override |
virtual bool | is_passive_keep_sharing_leader (const std::string &id) const override |
virtual bool | is_dst_src_valid_lua () const override |
virtual bool | is_dst_src_enemy_valid_lua () const override |
virtual bool | is_src_dst_valid_lua () const override |
virtual bool | is_src_dst_enemy_valid_lua () const override |
virtual void | invalidate_defensive_position_cache () const override |
virtual void | invalidate_move_maps () const override |
virtual void | invalidate_keeps_cache () const override |
virtual const std::set< map_location > & | keeps () const override |
virtual bool | leader_can_reach_keep () const override |
virtual const map_location & | nearest_keep (const map_location &loc) const override |
virtual void | recalculate_move_maps () const override |
virtual void | recalculate_move_maps_enemy () const override |
virtual void | set_dst_src_valid_lua () override |
virtual void | set_dst_src_enemy_valid_lua () override |
virtual void | set_src_dst_valid_lua () override |
virtual void | set_src_dst_enemy_valid_lua () override |
virtual const map_location & | suitable_keep (const map_location &leader_location, const pathfind::paths &leader_paths) const override |
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 override |
serialize to config More... | |
virtual unit_stats_cache_t & | unit_stats_cache () const override |
![]() | |
readonly_context () | |
virtual | ~readonly_context () |
![]() | |
virtual | ~side_context () |
empty destructor More... | |
side_context () | |
empty constructor More... | |
![]() | |
side_context_proxy () | |
virtual | ~side_context_proxy () |
void | init_side_context_proxy (side_context &target) |
virtual side_number | get_side () const override |
Get the side number. More... | |
virtual void | set_side (side_number side) override |
Set the side number. More... | |
virtual side_context & | get_side_context () override |
unwrap More... | |
virtual config | to_side_context_config () const override |
serialize this context to config More... | |
![]() | |
virtual | ~observer () |
![]() | |
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 lg::log_domain & | log () |
Protected Attributes | |
std::string | time_of_day_ |
std::string | turns_ |
bool | valid_ |
bool | valid_variant_ |
bool | valid_lua_ |
config | cfg_ |
bool | invalidate_on_turn_start_ |
bool | invalidate_on_tod_change_ |
bool | invalidate_on_gamestate_change_ |
std::string | engine_ |
std::string | name_ |
std::string | id_ |
Additional Inherited Members | |
![]() | |
typedef std::map< std::pair< map_location, const unit_type * >, std::pair< battle_context_unit_stats, battle_context_unit_stats > > | unit_stats_cache_t |
Definition at line 35 of file aspect.hpp.
ai::aspect::aspect | ( | readonly_context & | context, |
const config & | cfg, | ||
const std::string & | id | ||
) |
Definition at line 32 of file aspect.cpp.
References DBG_AI_ASPECT, engine_, id_, ai::readonly_context_proxy::init_readonly_context_proxy(), name_, redeploy(), time_of_day_, and turns_.
|
virtual |
Definition at line 46 of file aspect.cpp.
References ai::manager::get_singleton(), invalidate_on_gamestate_change_, invalidate_on_tod_change_, invalidate_on_turn_start_, ai::manager::remove_gamestate_observer(), ai::manager::remove_tod_changed_observer(), and ai::manager::remove_turn_started_observer().
|
virtual |
Definition at line 124 of file aspect.cpp.
References ai::readonly_context_proxy::is_active(), time_of_day_, and turns_.
Referenced by handle_generic_event().
|
virtual |
Reimplemented in ai::composite_aspect< T >.
Definition at line 129 of file aspect.cpp.
Referenced by invalidate().
|
inlinevirtual |
|
inlinevirtual |
|
pure virtual |
Implemented in ai::typesafe_aspect< T >, ai::typesafe_aspect< config >, and ai::typesafe_aspect< attacks_vector >.
Referenced by invalidate().
|
inlinevirtual |
Implements ai::component.
Definition at line 71 of file aspect.hpp.
References name_.
Referenced by ai::typesafe_known_aspect< T >::add_facet(), and ai::typesafe_known_aspect< T >::set().
|
pure virtual |
Implemented in ai::typesafe_aspect< T >, ai::typesafe_aspect< config >, and ai::typesafe_aspect< attacks_vector >.
Referenced by ai::typesafe_aspect< attacks_vector >::get_ptr(), and invalidate().
|
pure virtual |
Implemented in ai::typesafe_aspect< T >, ai::typesafe_aspect< config >, and ai::typesafe_aspect< attacks_vector >.
Referenced by ai::typesafe_aspect< attacks_vector >::get_variant(), and invalidate().
|
inlinevirtual |
Implements events::observer.
Definition at line 64 of file aspect.hpp.
References active(), and invalidate().
|
inline |
Definition at line 41 of file aspect.hpp.
References delete_all_facets(), get_lua(), get_variant(), get_variant_ptr(), on_create(), recalculate(), redeploy(), to_config(), valid_, valid_lua_, and valid_variant_.
Referenced by handle_generic_event().
|
static |
Definition at line 60 of file aspect.cpp.
References ai::log_ai_aspect.
Referenced by ai::typesafe_known_aspect< T >::add_facet(), get_engine(), ai::typesafe_known_aspect< T >::set(), and ai::standard_aspect< config >::standard_aspect().
|
virtual |
Definition at line 65 of file aspect.cpp.
Referenced by invalidate().
|
pure virtual |
Implemented in ai::lua_aspect< T >, ai::standard_aspect< T >, ai::standard_aspect< config >, ai::composite_aspect< T >, ai::default_recruitment::recruitment_aspect, ai::typesafe_aspect< T >, ai::typesafe_aspect< config >, ai::typesafe_aspect< attacks_vector >, ai::aspect_attacks_lua, and ai::ai_default_rca::aspect_attacks_base.
Referenced by ai::typesafe_aspect< attacks_vector >::get_lua(), ai::typesafe_aspect< attacks_vector >::get_ptr(), ai::typesafe_aspect< attacks_vector >::get_variant_ptr(), and invalidate().
|
virtual |
Definition at line 69 of file aspect.cpp.
References ai::manager::add_gamestate_observer(), ai::manager::add_tod_changed_observer(), ai::manager::add_turn_started_observer(), cfg_, DBG_AI_ASPECT, engine_, ai::manager::get_singleton(), id_, invalidate_on_gamestate_change_, invalidate_on_tod_change_, invalidate_on_turn_start_, name_, ai::manager::remove_gamestate_observer(), ai::manager::remove_tod_changed_observer(), ai::manager::remove_turn_started_observer(), valid_, valid_lua_, and valid_variant_.
Referenced by aspect(), and invalidate().
|
virtual |
Reimplemented in ai::lua_aspect< T >, ai::standard_aspect< T >, ai::standard_aspect< config >, ai::composite_aspect< T >, ai::aspect_attacks_lua, and ai::ai_default_rca::aspect_attacks.
Definition at line 106 of file aspect.cpp.
References engine_, id_, invalidate_on_gamestate_change_, invalidate_on_tod_change_, invalidate_on_turn_start_, name_, time_of_day_, and turns_.
Referenced by invalidate(), ai::ai_default_rca::aspect_attacks::to_config(), ai::aspect_attacks_lua::to_config(), ai::composite_aspect< T >::to_config(), ai::standard_aspect< config >::to_config(), ai::lua_aspect< T >::to_config(), ai::ai_default_rca::aspect_attacks::~aspect_attacks(), and ai::aspect_attacks_lua::~aspect_attacks_lua().
|
protected |
Definition at line 90 of file aspect.hpp.
Referenced by ai::composite_aspect< T >::composite_aspect(), redeploy(), and ai::standard_aspect< config >::standard_aspect().
|
protected |
Definition at line 94 of file aspect.hpp.
Referenced by aspect(), get_engine(), redeploy(), and to_config().
|
protected |
Definition at line 96 of file aspect.hpp.
Referenced by aspect(), get_id(), redeploy(), and to_config().
|
protected |
Definition at line 93 of file aspect.hpp.
Referenced by redeploy(), to_config(), and ~aspect().
|
protected |
Definition at line 92 of file aspect.hpp.
Referenced by redeploy(), to_config(), and ~aspect().
|
protected |
Definition at line 91 of file aspect.hpp.
Referenced by redeploy(), to_config(), and ~aspect().
|
protected |
Definition at line 95 of file aspect.hpp.
Referenced by aspect(), ai::aspect_attacks_lua::aspect_attacks_lua(), get_name(), ai::lua_aspect< T >::lua_aspect(), redeploy(), ai::standard_aspect< config >::standard_aspect(), and to_config().
|
protected |
Definition at line 83 of file aspect.hpp.
Referenced by active(), aspect(), and to_config().
|
protected |
Definition at line 84 of file aspect.hpp.
Referenced by active(), aspect(), and to_config().
|
mutableprotected |
Definition at line 86 of file aspect.hpp.
Referenced by ai::typesafe_aspect< attacks_vector >::get_ptr(), ai::typesafe_aspect< attacks_vector >::get_variant_ptr(), invalidate(), ai::ai_default_rca::aspect_attacks_base::recalculate(), ai::default_recruitment::recruitment_aspect::recalculate(), ai::composite_aspect< T >::recalculate(), ai::standard_aspect< config >::recalculate(), and redeploy().
|
mutableprotected |
Definition at line 88 of file aspect.hpp.
Referenced by ai::typesafe_aspect< attacks_vector >::get_ptr(), ai::typesafe_aspect< attacks_vector >::get_variant_ptr(), invalidate(), ai::lua_aspect< T >::recalculate(), and redeploy().
|
mutableprotected |
Definition at line 87 of file aspect.hpp.
Referenced by ai::typesafe_aspect< attacks_vector >::get_ptr(), ai::typesafe_aspect< attacks_vector >::get_variant_ptr(), invalidate(), and redeploy().