Freeciv-3.1: /fast/freeciv/nightly/S3_1/ai/default/aihunt.c File Reference

Freeciv-3.1

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 "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 "ailog.h"`
`#include "aiplayer.h"`
`#include "aitools.h"`
`#include "aiunit.h"`
`#include "daicity.h"`
`#include "aihunt.h"`

Go to the source code of this file.

## Functions

static struct unit * | dai_hunter_find (struct player *pplayer, struct city *pcity)
static struct unit_type * | dai_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 253 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 64 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 84 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 400 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 437 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 289 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 305 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 228 of file aihunt.c.

Referenced by dai_hunter_choice().