Freeciv-3.2
Loading...
Searching...
No Matches
Functions
aihunt.c File Reference
#include "bitvector.h"
#include "log.h"
#include "city.h"
#include "combat.h"
#include "game.h"
#include "map.h"
#include "movement.h"
#include "nation.h"
#include "player.h"
#include "unit.h"
#include "unitlist.h"
#include "pf_tools.h"
#include "citytools.h"
#include "srv_log.h"
#include "unithand.h"
#include "unittools.h"
#include "advdata.h"
#include "advgoto.h"
#include "advtools.h"
#include "autosettlers.h"
#include "handicaps.h"
#include "aitools.h"
#include "daicity.h"
#include "daiplayer.h"
#include "aihunt.h"

Go to the source code of this file.

Functions

static struct unitdai_hunter_find (struct player *pplayer, struct city *pcity)
 
static struct unit_typedai_hunter_guess_best (struct city *pcity, enum terrain_class tc, struct ai_type *ait, bool allow_gold_upkeep)
 
static void dai_hunter_missile_want (struct player *pplayer, struct city *pcity, struct adv_choice *choice)
 
static void eval_hunter_want (struct ai_type *ait, struct player *pplayer, struct city *pcity, struct adv_choice *choice, struct unit_type *best_type, int veteran)
 
void dai_hunter_choice (struct ai_type *ait, struct player *pplayer, struct city *pcity, struct adv_choice *choice, bool allow_gold_upkeep)
 
bool dai_hunter_qualify (struct player *pplayer, struct unit *punit)
 
static void dai_hunter_try_launch (struct ai_type *ait, struct player *pplayer, struct unit *punit, struct unit *target)
 
static void dai_hunter_juiciness (struct player *pplayer, struct unit *punit, struct unit *target, unsigned *stackthreat, unsigned *stackcost)
 
int dai_hunter_manage (struct ai_type *ait, struct player *pplayer, struct unit *punit)
 

Function Documentation

◆ dai_hunter_choice()

void dai_hunter_choice ( struct ai_type ait,
struct player pplayer,
struct city pcity,
struct adv_choice choice,
bool  allow_gold_upkeep 
)

Check if we want to build a hunter.

Definition at line 254 of file aihunt.c.

Referenced by military_advisor_choose_build().

◆ dai_hunter_find()

static struct unit * dai_hunter_find ( struct player pplayer,
struct city pcity 
)
static

We don't need a hunter in this city if we already have one. Return existing hunter if any.

Definition at line 63 of file aihunt.c.

Referenced by dai_hunter_choice().

◆ dai_hunter_guess_best()

static struct unit_type * dai_hunter_guess_best ( struct city pcity,
enum terrain_class  tc,
struct ai_type ait,
bool  allow_gold_upkeep 
)
static

Guess best hunter unit type.

Definition at line 83 of file aihunt.c.

Referenced by dai_hunter_choice().

◆ dai_hunter_juiciness()

static void dai_hunter_juiciness ( struct player pplayer,
struct unit punit,
struct unit target,
unsigned stackthreat,
unsigned stackcost 
)
static

Calculate desire to crush this target.

Definition at line 401 of file aihunt.c.

Referenced by dai_hunter_manage().

◆ dai_hunter_manage()

int dai_hunter_manage ( struct ai_type ait,
struct player pplayer,
struct unit punit 
)

Manage a (possibly virtual) hunter. Return the want for building a hunter like this. If we return 0, then we have nothing to do with the hunter. If we return -1, then we succeeded, and can try again. If we return > 0 then we are hunting but ran out of moves (this is also used for construction want).

We try to keep track of our original target, but also opportunistically snatch up closer targets if they are better.

We set punit->server.ai->target to target's id.

Definition at line 438 of file aihunt.c.

Referenced by dai_manage_military(), and eval_hunter_want().

◆ dai_hunter_missile_want()

static void dai_hunter_missile_want ( struct player pplayer,
struct city pcity,
struct adv_choice choice 
)
static

Check if we want to build a missile for our hunter.

Definition at line 148 of file aihunt.c.

Referenced by dai_hunter_choice().

◆ dai_hunter_qualify()

bool dai_hunter_qualify ( struct player pplayer,
struct unit punit 
)

Does this unit qualify as a hunter?

Definition at line 290 of file aihunt.c.

Referenced by dai_hunter_find(), dai_hunter_missile_want(), and dai_manage_military().

◆ dai_hunter_try_launch()

static void dai_hunter_try_launch ( struct ai_type ait,
struct player pplayer,
struct unit punit,
struct unit target 
)
static

Try to shoot our target with a missile. Also shoot down anything that might attempt to intercept us. We assign missiles to a hunter in dai_unit_new_task().

Definition at line 306 of file aihunt.c.

Referenced by dai_hunter_manage().

◆ eval_hunter_want()

static void eval_hunter_want ( struct ai_type ait,
struct player pplayer,
struct city pcity,
struct adv_choice choice,
struct unit_type best_type,
int  veteran 
)
static

Support function for ai_hunter_choice()

Definition at line 229 of file aihunt.c.

Referenced by dai_hunter_choice().