Project Alice
Loading...
Searching...
No Matches
ai.cpp File Reference
#include "ai.hpp"
#include "system_state.hpp"
#include "demographics.hpp"
#include "effects.hpp"
#include "gui_effect_tooltips.hpp"
#include "math_fns.hpp"
#include "military.hpp"
#include "politics.hpp"
#include "prng.hpp"
#include "province_templates.hpp"
#include "triggers.hpp"
Include dependency graph for ai.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ai::crisis_str
 
struct  ai::possible_cb
 
struct  ai::classified_province
 

Namespaces

namespace  ai
 

Enumerations

enum class  ai::province_class : uint8_t {
  ai::interior = 0 , ai::coast = 1 , ai::low_priority_border = 2 , ai::border = 3 ,
  ai::threat_border = 4 , ai::hostile_border = 5 , ai::count = 6
}
 

Functions

float ai::estimate_strength (sys::state &state, dcon::nation_id n)
 
float ai::estimate_defensive_strength (sys::state &state, dcon::nation_id n)
 
float ai::estimate_additional_offensive_strength (sys::state &state, dcon::nation_id n, dcon::nation_id target)
 
void ai::update_ai_general_status (sys::state &state)
 
void ai::form_alliances (sys::state &state)
 
void ai::prune_alliances (sys::state &state)
 
bool ai::ai_is_close_enough (sys::state &state, dcon::nation_id target, dcon::nation_id from)
 
bool ai::ai_will_accept_alliance (sys::state &state, dcon::nation_id target, dcon::nation_id from)
 
void ai::explain_ai_alliance_reasons (sys::state &state, dcon::nation_id target, text::layout_base &contents, int32_t indent)
 
bool ai::ai_will_grant_access (sys::state &state, dcon::nation_id target, dcon::nation_id from)
 
void ai::explain_ai_access_reasons (sys::state &state, dcon::nation_id target, text::layout_base &contents, int32_t indent)
 
void ai::update_ai_research (sys::state &state)
 
void ai::initialize_ai_tech_weights (sys::state &state)
 
void ai::update_influence_priorities (sys::state &state)
 
void ai::perform_influence_actions (sys::state &state)
 
void ai::identify_focuses (sys::state &state)
 
void ai::update_focuses (sys::state &state)
 
void ai::take_ai_decisions (sys::state &state)
 
float ai::estimate_pop_party_support (sys::state &state, dcon::nation_id n, dcon::political_party_id pid)
 
bool ai::ai_can_appoint_political_party (sys::state &state, dcon::nation_id n)
 
void ai::update_ai_ruling_party (sys::state &state)
 
void ai::get_desired_factory_types (sys::state &state, dcon::nation_id nid, std::vector< dcon::factory_type_id > &desired_types)
 
void ai::update_ai_econ_construction (sys::state &state)
 
void ai::update_ai_colonial_investment (sys::state &state)
 
void ai::update_ai_colony_starting (sys::state &state)
 
void ai::upgrade_colonies (sys::state &state)
 
void ai::civilize (sys::state &state)
 
void ai::take_reforms (sys::state &state)
 
bool ai::will_be_crisis_primary_attacker (sys::state &state, dcon::nation_id n)
 
bool ai::will_be_crisis_primary_defender (sys::state &state, dcon::nation_id n)
 
crisis_str ai::estimate_crisis_str (sys::state &state)
 
bool ai::will_join_crisis_with_offer (sys::state &state, dcon::nation_id n, sys::crisis_join_offer const &offer)
 
bool ai::ai_offer_cb (sys::state &state, dcon::cb_type_id t)
 
void ai::state_target_list (std::vector< dcon::state_instance_id > &result, sys::state &state, dcon::nation_id for_nation, dcon::nation_id within)
 
void ai::update_crisis_leaders (sys::state &state)
 
bool ai::will_accept_crisis_peace_offer (sys::state &state, dcon::nation_id to, bool is_concession, bool missing_wg)
 
bool ai::will_accept_crisis_peace_offer (sys::state &state, dcon::nation_id to, dcon::peace_offer_id peace)
 
void ai::update_war_intervention (sys::state &state)
 
dcon::cb_type_id ai::pick_fabrication_type (sys::state &state, dcon::nation_id from, dcon::nation_id target)
 
bool ai::valid_construction_target (sys::state &state, dcon::nation_id from, dcon::nation_id target)
 
void ai::update_cb_fabrication (sys::state &state)
 
bool ai::will_join_war (sys::state &state, dcon::nation_id n, dcon::war_id w, bool as_attacker)
 
void ai::place_instance_in_result_war (sys::state &state, std::vector< possible_cb > &result, dcon::nation_id n, dcon::nation_id target, dcon::war_id w, dcon::cb_type_id cb, std::vector< dcon::state_instance_id > const &target_states)
 
void ai::sort_avilable_cbs (std::vector< possible_cb > &result, sys::state &state, dcon::nation_id n, dcon::war_id w)
 
void ai::place_instance_in_result (sys::state &state, std::vector< possible_cb > &result, dcon::nation_id n, dcon::nation_id target, dcon::cb_type_id cb, std::vector< dcon::state_instance_id > const &target_states)
 
void ai::sort_avilable_declaration_cbs (std::vector< possible_cb > &result, sys::state &state, dcon::nation_id n, dcon::nation_id target)
 
void ai::add_free_ai_cbs_to_war (sys::state &state, dcon::nation_id n, dcon::war_id w)
 
dcon::cb_type_id ai::pick_gw_extra_cb_type (sys::state &state, dcon::nation_id from, dcon::nation_id target)
 
dcon::nation_id ai::pick_gw_target (sys::state &state, dcon::nation_id from, dcon::war_id w, bool is_attacker)
 
void ai::add_wg_to_great_war (sys::state &state, dcon::nation_id n, dcon::war_id w)
 
void ai::add_gw_goals (sys::state &state)
 
bool ai::has_cores_occupied (sys::state &state, dcon::nation_id n)
 
void ai::make_peace_offers (sys::state &state)
 
bool ai::will_accept_peace_offer_value (sys::state &state, dcon::nation_id n, dcon::nation_id from, dcon::nation_id prime_attacker, dcon::nation_id prime_defender, float primary_warscore, float scoreagainst_me, bool offer_from_attacker, bool concession, int32_t overall_po_value, int32_t my_po_target, int32_t target_personal_po_value, int32_t potential_peace_score_against, int32_t my_side_against_target, int32_t my_side_peace_cost, int32_t war_duration, bool contains_sq)
 
bool ai::will_accept_peace_offer (sys::state &state, dcon::nation_id n, dcon::nation_id from, dcon::peace_offer_id p)
 
bool ai::naval_supremacy (sys::state &state, dcon::nation_id n, dcon::nation_id target)
 
void ai::make_war_decs (sys::state &state)
 
void ai::update_budget (sys::state &state)
 
void ai::remove_ai_data (sys::state &state, dcon::nation_id n)
 
bool ai::unit_on_ai_control (sys::state &state, dcon::army_id a)
 
void ai::update_ships (sys::state &state)
 
void ai::build_ships (sys::state &state)
 
dcon::province_id ai::get_home_port (sys::state &state, dcon::nation_id n)
 
void ai::refresh_home_ports (sys::state &state)
 
void ai::daily_cleanup (sys::state &state)
 
bool ai::navy_needs_repair (sys::state &state, dcon::navy_id n)
 
bool ai::naval_advantage (sys::state &state, dcon::nation_id n)
 
void ai::send_fleet_home (sys::state &state, dcon::navy_id n, fleet_activity moving_status=fleet_activity::returning_to_base, fleet_activity at_base=fleet_activity::idle)
 
bool ai::set_fleet_target (sys::state &state, dcon::nation_id n, dcon::province_id start, dcon::navy_id for_navy)
 
void ai::unload_units_from_transport (sys::state &state, dcon::navy_id n)
 
bool ai::merge_fleet (sys::state &state, dcon::navy_id n, dcon::province_id p, dcon::nation_id owner)
 
void ai::pickup_idle_ships (sys::state &state)
 
void ai::distribute_guards (sys::state &state, dcon::nation_id n)
 
dcon::navy_id ai::find_transport_fleet (sys::state &state, dcon::nation_id controller)
 
void ai::move_idle_guards (sys::state &state)
 
void ai::update_naval_transport (sys::state &state)
 
bool ai::army_ready_for_battle (sys::state &state, dcon::nation_id n, dcon::army_id a)
 
void ai::gather_to_battle (sys::state &state, dcon::nation_id n, dcon::province_id p)
 
float ai::estimate_balanced_composition_factor (sys::state &state, dcon::army_id a)
 
float ai::estimate_army_defensive_strength (sys::state &state, dcon::army_id a)
 
float ai::estimate_army_offensive_strength (sys::state &state, dcon::army_id a)
 
float ai::estimate_enemy_defensive_force (sys::state &state, dcon::province_id target, dcon::nation_id by)
 
void ai::assign_targets (sys::state &state, dcon::nation_id n)
 
void ai::make_attacks (sys::state &state)
 
void ai::make_defense (sys::state &state)
 
void ai::move_gathered_attackers (sys::state &state)
 
void ai::update_land_constructions (sys::state &state)
 
void ai::new_units_and_merging (sys::state &state)
 
void ai::general_ai_unit_tick (sys::state &state)
 
float ai::estimate_rebel_strength (sys::state &state, dcon::province_id p)
 

Variables

constexpr float ai::ally_overestimate = 2.f