![]() |
Freeciv21
Develop your civilization from humble roots to a global empire
|
#include <cstring>#include "log.h"#include "game.h"#include "government.h"#include "player.h"#include "research.h"#include "tech.h"#include "plrhand.h"#include "srv_log.h"#include "techtools.h"#include "advdata.h"#include "aidata.h"#include "ailog.h"#include "aiplayer.h"#include "aitools.h"#include "daieffects.h"#include "aitech.h"
Include dependency graph for aitech.cpp:Go to the source code of this file.
Classes | |
| struct | ai_tech_choice |
Functions | |
| static void | dai_select_tech (struct ai_type *ait, struct player *pplayer, struct ai_tech_choice *choice, struct ai_tech_choice *goal) |
| Massage the numbers provided to us by ai.tech_want into unrecognizable pulp. More... | |
| static adv_want | dai_tech_base_want (struct ai_type *ait, struct player *pplayer, struct city *pcity, struct advance *padv) |
| Calculates want for some techs by actually adding the tech and measuring the effect. More... | |
| static void | dai_tech_effect_values (struct ai_type *ait, struct player *pplayer) |
| Add effect values in to tech wants. More... | |
| void | dai_manage_tech (struct ai_type *ait, struct player *pplayer) |
| Key AI research function. More... | |
| struct unit_type * | dai_wants_defender_against (struct ai_type *ait, struct player *pplayer, struct city *pcity, const struct unit_type *att, int want) |
| Returns the best defense multiplier unit we can build, or nullptr if none. More... | |
| struct unit_type * | dai_wants_role_unit (struct ai_type *ait, struct player *pplayer, struct city *pcity, int role, int want) |
| Returns the best unit we can build, or nullptr if none. More... | |
| void | dai_clear_tech_wants (struct ai_type *ait, struct player *pplayer) |
| Zero player tech wants. More... | |
Zero player tech wants.
Definition at line 604 of file aitech.cpp.
Referenced by dai_do_last_activities().
Key AI research function.
Disable if we are in a team with human team mates in a research pool.
Definition at line 335 of file aitech.cpp.
Referenced by dai_do_last_activities().
|
static |
Massage the numbers provided to us by ai.tech_want into unrecognizable pulp.
TODO: Write a transparent formula.
Notes: 1. research_goal_unknown_techs returns 0 for known techs, 1 if tech is immediately available etc.
Definition at line 64 of file aitech.cpp.
Referenced by dai_manage_tech().
|
static |
Calculates want for some techs by actually adding the tech and measuring the effect.
Definition at line 212 of file aitech.cpp.
Referenced by dai_tech_effect_values().
Add effect values in to tech wants.
Definition at line 239 of file aitech.cpp.
Referenced by dai_manage_tech().
| struct unit_type* dai_wants_defender_against | ( | struct ai_type * | ait, |
| struct player * | pplayer, | ||
| struct city * | pcity, | ||
| const struct unit_type * | att, | ||
| int | want | ||
| ) |
Returns the best defense multiplier unit we can build, or nullptr if none.
Assigns tech wants for techs to get better units, but only for the cheapest to research.
Definition at line 397 of file aitech.cpp.
Referenced by assess_danger().
| struct unit_type* dai_wants_role_unit | ( | struct ai_type * | ait, |
| struct player * | pplayer, | ||
| struct city * | pcity, | ||
| int | role, | ||
| int | want | ||
| ) |
Returns the best unit we can build, or nullptr if none.
"Best" here means last in the unit list as defined in the ruleset. Assigns tech wants for techs to get better units with given role, but only for the cheapest to research "next" unit up the "chain".
Definition at line 518 of file aitech.cpp.
Referenced by dai_choose_help_wonder(), dai_choose_role_unit(), dai_choose_trade_route(), and domestic_advisor_choose_build().