Computes the statistics of a battle between an attacker and a defender unit. More...
#include <actions.hpp>

Public Member Functions | |
| battle_context (const unit_map &units, const map_location &attacker_loc, const map_location &defender_loc, int attacker_weapon=-1, int defender_weapon=-1, double aggression=0.0, const combatant *prev_def=NULL, const unit *attacker_ptr=NULL) | |
| If no attacker_weapon is given, we select the best one, based on harm_weight (1.0 means 1 hp lost counters 1 hp damage, 0.0 means we ignore harm weight). | |
| battle_context (const battle_context_unit_stats &att, const battle_context_unit_stats &def) | |
| Used by the AI which caches battle_context_unit_stats. | |
| battle_context (const battle_context &other) | |
| ~battle_context () | |
| battle_context & | operator= (const battle_context &other) |
| const battle_context_unit_stats & | get_attacker_stats () const |
| This method returns the statistics of the attacker. | |
| const battle_context_unit_stats & | get_defender_stats () const |
| This method returns the statistics of the defender. | |
| const combatant & | get_attacker_combatant (const combatant *prev_def=NULL) |
| Get the simulation results. | |
| const combatant & | get_defender_combatant (const combatant *prev_def=NULL) |
| bool | better_attack (class battle_context &that, double harm_weight) |
| Given this harm_weight, is this attack better than that? | |
Private Member Functions | |
| bool | better_combat (const combatant &us_a, const combatant &them_a, const combatant &us_b, const combatant &them_b, double harm_weight) |
| int | choose_attacker_weapon (const unit &attacker, const unit &defender, const unit_map &units, const map_location &attacker_loc, const map_location &defender_loc, double harm_weight, int *defender_weapon, const combatant *prev_def) |
| int | choose_defender_weapon (const unit &attacker, const unit &defender, unsigned attacker_weapon, const unit_map &units, const map_location &attacker_loc, const map_location &defender_loc, const combatant *prev_def) |
Private Attributes | |
| battle_context_unit_stats * | attacker_stats_ |
| Statistics of the units. | |
| battle_context_unit_stats * | defender_stats_ |
| combatant * | attacker_combatant_ |
| Outcome of simulated fight. | |
| combatant * | defender_combatant_ |
Computes the statistics of a battle between an attacker and a defender unit.
Definition at line 177 of file actions.hpp.
| battle_context::battle_context | ( | const unit_map & | units, | |
| const map_location & | attacker_loc, | |||
| const map_location & | defender_loc, | |||
| int | attacker_weapon = -1, |
|||
| int | defender_weapon = -1, |
|||
| double | aggression = 0.0, |
|||
| const combatant * | prev_def = NULL, |
|||
| const unit * | attacker_ptr = NULL | |||
| ) |
If no attacker_weapon is given, we select the best one, based on harm_weight (1.0 means 1 hp lost counters 1 hp damage, 0.0 means we ignore harm weight).
prev_def is for predicting multiple attacks against a defender.
Definition at line 720 of file actions.cpp.
References _, attacker_combatant_, attacker_stats_, unit::attacks(), choose_attacker_weapon(), choose_defender_weapon(), defender_combatant_, defender_stats_, unit_map::find(), and VALIDATE.

| battle_context::battle_context | ( | const battle_context_unit_stats & | att, | |
| const battle_context_unit_stats & | def | |||
| ) |
Used by the AI which caches battle_context_unit_stats.
Definition at line 769 of file actions.cpp.
| battle_context::battle_context | ( | const battle_context & | other | ) |
Definition at line 763 of file actions.cpp.
| battle_context::~battle_context | ( | ) |
Definition at line 777 of file actions.cpp.
References attacker_combatant_, attacker_stats_, defender_combatant_, and defender_stats_.
| bool battle_context::better_attack | ( | class battle_context & | that, | |
| double | harm_weight | |||
| ) |
Given this harm_weight, is this attack better than that?
Definition at line 1207 of file actions.cpp.
References better_combat(), get_attacker_combatant(), and get_defender_combatant().

| bool battle_context::better_combat | ( | const combatant & | us_a, | |
| const combatant & | them_a, | |||
| const combatant & | us_b, | |||
| const combatant & | them_b, | |||
| double | harm_weight | |||
| ) | [private] |
Definition at line 959 of file actions.cpp.
References combatant::average_hp(), combatant::hp_dist, game_config::poison_amount, and combatant::poisoned.
Referenced by better_attack(), choose_attacker_weapon(), and choose_defender_weapon().


| int battle_context::choose_attacker_weapon | ( | const unit & | attacker, | |
| const unit & | defender, | |||
| const unit_map & | units, | |||
| const map_location & | attacker_loc, | |||
| const map_location & | defender_loc, | |||
| double | harm_weight, | |||
| int * | defender_weapon, | |||
| const combatant * | prev_def | |||
| ) | [private] |
Definition at line 882 of file actions.cpp.
References battle_context_unit_stats::attack_num, attack_type::attack_weight(), attacker_combatant_, attacker_stats_, unit::attacks(), better_combat(), choose_defender_weapon(), defender_combatant_, defender_stats_, and combatant::fight().
Referenced by battle_context().


| int battle_context::choose_defender_weapon | ( | const unit & | attacker, | |
| const unit & | defender, | |||
| unsigned | attacker_weapon, | |||
| const unit_map & | units, | |||
| const map_location & | attacker_loc, | |||
| const map_location & | defender_loc, | |||
| const combatant * | prev_def | |||
| ) | [private] |
Definition at line 800 of file actions.cpp.
References _, battle_context_unit_stats::attack_num, attacker_combatant_, attacker_stats_, unit::attacks(), better_combat(), battle_context_unit_stats::chance_to_hit, battle_context_unit_stats::damage, defender_combatant_, defender_stats_, attack_type::defense_weight(), combatant::fight(), battle_context_unit_stats::num_blows, attack_type::range(), and VALIDATE.
Referenced by battle_context(), and choose_attacker_weapon().


Get the simulation results.
Definition at line 991 of file actions.cpp.
References attacker_combatant_, attacker_stats_, defender_combatant_, defender_stats_, and combatant::fight().
Referenced by ai::attack_analysis::analyze(), and better_attack().


| const battle_context_unit_stats& battle_context::get_attacker_stats | ( | ) | const [inline] |
This method returns the statistics of the attacker.
Definition at line 200 of file actions.hpp.
References attacker_stats_.
Referenced by ai::attack_analysis::analyze(), battle_prediction_pane::battle_prediction_pane(), attack::perform(), attack::refresh_bc(), unit_weapons(), and game_logic::attack_callable::weapon().

Definition at line 1003 of file actions.cpp.
References attacker_combatant_, attacker_stats_, defender_combatant_, defender_stats_, and combatant::fight().
Referenced by ai::attack_analysis::analyze(), and better_attack().


| const battle_context_unit_stats& battle_context::get_defender_stats | ( | ) | const [inline] |
This method returns the statistics of the defender.
Definition at line 203 of file actions.hpp.
References defender_stats_.
Referenced by ai::attack_analysis::analyze(), battle_prediction_pane::battle_prediction_pane(), game_logic::attack_callable::defender_weapon(), attack::perform(), attack::refresh_bc(), and unit_weapons().

| battle_context & battle_context::operator= | ( | const battle_context & | other | ) |
Definition at line 784 of file actions.cpp.
References attacker_combatant_, attacker_stats_, defender_combatant_, and defender_stats_.
combatant* battle_context::attacker_combatant_ [private] |
Outcome of simulated fight.
Definition at line 230 of file actions.hpp.
Referenced by battle_context(), choose_attacker_weapon(), choose_defender_weapon(), get_attacker_combatant(), get_defender_combatant(), operator=(), and ~battle_context().
Statistics of the units.
Definition at line 227 of file actions.hpp.
Referenced by battle_context(), choose_attacker_weapon(), choose_defender_weapon(), get_attacker_combatant(), get_attacker_stats(), get_defender_combatant(), operator=(), and ~battle_context().
combatant * battle_context::defender_combatant_ [private] |
Definition at line 230 of file actions.hpp.
Referenced by battle_context(), choose_attacker_weapon(), choose_defender_weapon(), get_attacker_combatant(), get_defender_combatant(), operator=(), and ~battle_context().
Definition at line 227 of file actions.hpp.
Referenced by battle_context(), choose_attacker_weapon(), choose_defender_weapon(), get_attacker_combatant(), get_defender_combatant(), get_defender_stats(), operator=(), and ~battle_context().
| Generated by doxygen 1.7.1 on Thu May 24 2012 01:13:10 for The Battle for Wesnoth | Gna! | Forum | Wiki | CIA | devdocs |