|
Freeciv-3.4
|
#include "ai.h"#include "combat.h"#include "game.h"#include "movement.h"#include "unit.h"#include "tile.h"#include "path_finding.h"#include "pf_tools.h"#include "maphand.h"#include "srv_log.h"#include "unithand.h"#include "unittools.h"#include "advtools.h"#include "autoworkers.h"#include "advgoto.h"Go to the source code of this file.
| void adv_avoid_risks | ( | struct pf_parameter * | parameter, |
| struct adv_risk_cost * | risk_cost, | ||
| struct unit * | punit, | ||
| const double | fearfulness | ||
| ) |
Set PF callbacks to favour paths that do not create tall stacks or cross dangerous tiles.
Definition at line 597 of file advgoto.c.
Referenced by dai_fill_unit_param(), and explorer_goto().
Similar to is_my_zoc(), but with some changes:
Fix to bizarre did-not-find bug. Thanks, Katvrr – Syela
Definition at line 326 of file advgoto.c.
Referenced by adv_could_unit_move_to_tile().
returns: 0 if can't move 1 if zoc_ok -1 if zoc could be ok?
see also unithand can_unit_move_to_tile_with_notify()
Definition at line 361 of file advgoto.c.
Referenced by dai_manage_barbarian_leader(), and remove_city().
Are there dangerous enemies at or adjacent to the tile 'ptile'?
Definition at line 427 of file advgoto.c.
Referenced by adv_unit_move(), city_desirability(), and dai_unit_move().
Move a unit along a path without disturbing its activity, role or assigned destination Return FALSE iff we died.
Definition at line 49 of file advgoto.c.
Referenced by adv_seek_shelter(), auto_worker_setup_work(), dai_manage_airunit(), dai_manage_barbarian_leader(), dai_military_attack(), dai_unit_goto_constrained(), explorer_goto(), and player_restore_units().
Try to find shelter from a friendly city. Returns whether unit remains alive.
Definition at line 619 of file advgoto.c.
Referenced by auto_worker_findwork().
Attack rating of this particular unit assuming that it has a complete move left.
Definition at line 398 of file advgoto.c.
Referenced by adv_danger_at(), assess_danger_unit(), dai_consider_tile_dangerous(), dai_gothere_bodyguard(), find_something_to_kill(), kill_something_with(), reinforcements_cost_and_value(), and unit_att_rating_squared().
Basic (i.e. not taking attacker specific corrections into account) defense rating of this particular unit.
Definition at line 408 of file advgoto.c.
Referenced by adv_unit_def_rating_basic_squared(), and dai_military_findjob().
Square of the previous function - used in actual computations.
Definition at line 417 of file advgoto.c.
Referenced by adv_danger_at(), dai_consider_tile_dangerous(), and look_for_charge().
This is a function to execute paths returned by the path-finding engine, for units controlled by advisors.
Brings our bodyguard along. Returns FALSE only if died.
Definition at line 88 of file advgoto.c.
Referenced by adv_follow_path(), dai_diplomat_bribe_nearby(), dai_find_boat_for_unit(), dai_hunter_manage(), dai_manage_diplomat(), and dai_military_rampage().
Move a unit. Do not attack. Do not leave bodyguard. For advisor controlled units.
This function returns only when we have a reply from the server and we can tell the calling function what happened to the move request. (Right now it is not a big problem, since we call the server directly.)
Definition at line 158 of file advgoto.c.
Referenced by adv_unit_execute_path().
| int adv_unittype_att_rating | ( | const struct unit_type * | punittype, |
| int | veteran, | ||
| int | moves_left, | ||
| int | hp | ||
| ) |
Attack rating of this kind of unit.
Definition at line 387 of file advgoto.c.
Referenced by adv_unit_att_rating(), dai_gothere_bodyguard(), process_attacker_want(), and unit_att_rating_now().
|
static |
How dangerous would it be stop on a particular tile, because of enemy attacks, expressed as the probability of being killed.
TODO: This implementation is a kludge until we compute a more accurate probability using the movemap. Also, we should take into account the reduced probability of death if we have a bodyguard travelling with us.
Definition at line 509 of file advgoto.c.
Referenced by stack_risk().
|
static |
PF extra cost call back to avoid creating tall stacks or crossing dangerous tiles. By setting this as an extra-cost call-back, paths will avoid tall stacks. Avoiding tall stacks all along a path is useful because a unit following a path might have to stop early because of ZoCs.
Definition at line 586 of file advgoto.c.
Referenced by adv_avoid_risks().
|
static |
PF stack risk cost. How undesirable is passing through a tile because of risks? Weight by the cost of destruction, for risks that can kill the unit.
Why use the build cost when assessing the cost of destruction? The reasoning is thus.
Definition at line 550 of file advgoto.c.
Referenced by prefer_short_stacks().