Removed the old system for stats.

This commit is contained in:
Guillaume Melquiond 2009-03-10 08:37:02 +00:00
parent 409d570faa
commit da28488cc7
3 changed files with 10 additions and 102 deletions

View file

@ -208,12 +208,6 @@ static void merge_stats(stats& a, const stats& b)
a.turn_damage_taken = b.turn_damage_taken;
a.turn_expected_damage_inflicted = b.turn_expected_damage_inflicted;
a.turn_expected_damage_taken = b.turn_expected_damage_taken;
a.new_expected_damage_inflicted += b.new_expected_damage_inflicted;
a.new_expected_damage_taken += b.new_expected_damage_taken;
// Only take the last value for this turn
a.new_turn_expected_damage_inflicted = b.new_turn_expected_damage_inflicted;
a.new_turn_expected_damage_taken = b.new_turn_expected_damage_taken;
}
namespace statistics
@ -237,10 +231,6 @@ stats::stats() :
expected_damage_taken(0),
turn_expected_damage_inflicted(0),
turn_expected_damage_taken(0),
new_expected_damage_inflicted(0),
new_expected_damage_taken(0),
new_turn_expected_damage_inflicted(0),
new_turn_expected_damage_taken(0),
save_id()
{}
@ -262,10 +252,6 @@ stats::stats(const config& cfg) :
expected_damage_taken(0),
turn_expected_damage_inflicted(0),
turn_expected_damage_taken(0),
new_expected_damage_inflicted(0),
new_expected_damage_taken(0),
new_turn_expected_damage_inflicted(0),
new_turn_expected_damage_taken(0),
save_id(std::string())
{
read(cfg);
@ -282,7 +268,7 @@ config stats::write() const
res.add_child("attacks",write_battle_result_map(attacks));
res.add_child("defends",write_battle_result_map(defends));
std::stringstream ss;
std::ostringstream ss;
ss << recruit_cost;
res["recruit_cost"] = ss.str();
ss.str(std::string());
@ -315,19 +301,6 @@ config stats::write() const
ss << turn_expected_damage_taken;
res["turn_expected_damage_taken"] = ss.str();
ss.str(std::string());
ss << new_expected_damage_inflicted;
res["new_expected_damage_inflicted"] = ss.str();
ss.str(std::string());
ss << new_expected_damage_taken;
res["new_expected_damage_taken"] = ss.str();
ss.str(std::string());
ss << new_turn_expected_damage_inflicted;
res["new_turn_expected_damage_inflicted"] = ss.str();
ss.str(std::string());
ss << new_turn_expected_damage_taken;
res["new_turn_expected_damage_taken"] = ss.str();
return res;
}
@ -355,7 +328,7 @@ void stats::write(config_writer &out) const
write_battle_result_map(out, defends);
out.close_child("defends");
std::stringstream ss;
std::ostringstream ss;
ss << recruit_cost;
out.write_key_val("recruit_cost", ss.str());
ss.str(std::string());
@ -388,19 +361,6 @@ void stats::write(config_writer &out) const
ss << turn_expected_damage_taken;
out.write_key_val("turn_expected_damage_taken", ss.str());
ss.str(std::string());
ss << new_expected_damage_inflicted;
out.write_key_val("new_expected_damage_inflicted", ss.str());
ss.str(std::string());
ss << new_expected_damage_taken;
out.write_key_val("new_expected_damage_taken", ss.str());
ss.str(std::string());
ss << new_turn_expected_damage_inflicted;
out.write_key_val("new_turn_expected_damage_inflicted", ss.str());
ss.str(std::string());
ss << new_turn_expected_damage_taken;
out.write_key_val("new_turn_expected_damage_taken", ss.str());
out.write_key_val("save_id", save_id);
}
@ -445,10 +405,6 @@ void stats::read(const config& cfg)
turn_expected_damage_inflicted = lexical_cast<long long>(cfg["turn_expected_damage_inflicted"]);
turn_expected_damage_taken = lexical_cast<long long>(cfg["turn_expected_damage_taken"]);
new_expected_damage_inflicted = lexical_cast_default<long long>(cfg["new_expected_damage_inflicted"],expected_damage_inflicted);
new_expected_damage_taken = lexical_cast_default<long long>(cfg["new_expected_damage_taken"],expected_damage_taken);
new_turn_expected_damage_inflicted = lexical_cast_default<long long>(cfg["new_turn_expected_damage_inflicted"],turn_expected_damage_inflicted);
new_turn_expected_damage_taken = lexical_cast_default<long long>(cfg["new_turn_expected_damage_taken"],turn_expected_damage_taken);
save_id = cfg["save_id"];
}
@ -509,14 +465,14 @@ void attack_context::attack_expected_damage(double attacker_inflict_, double def
int attacker_inflict = static_cast<int>(attacker_inflict_ * stats::decimal_shift);
int defender_inflict = static_cast<int>(defender_inflict_ * stats::decimal_shift);
stats &att_stats = attacker_stats(), &def_stats = defender_stats();
att_stats.new_expected_damage_inflicted += attacker_inflict;
att_stats.new_expected_damage_taken += defender_inflict;
def_stats.new_expected_damage_inflicted += defender_inflict;
def_stats.new_expected_damage_taken += attacker_inflict;
att_stats.new_turn_expected_damage_inflicted += attacker_inflict;
att_stats.new_turn_expected_damage_taken += defender_inflict;
def_stats.new_turn_expected_damage_inflicted += defender_inflict;
def_stats.new_turn_expected_damage_taken += attacker_inflict;
att_stats.expected_damage_inflicted += attacker_inflict;
att_stats.expected_damage_taken += defender_inflict;
def_stats.expected_damage_inflicted += defender_inflict;
def_stats.expected_damage_taken += attacker_inflict;
att_stats.turn_expected_damage_inflicted += attacker_inflict;
att_stats.turn_expected_damage_taken += defender_inflict;
def_stats.turn_expected_damage_inflicted += defender_inflict;
def_stats.turn_expected_damage_taken += attacker_inflict;
}
@ -541,20 +497,6 @@ void attack_context::attack_result(hit_result res, int damage, int drain)
def_stats.turn_damage_taken += damage;
}
int exp_damage = damage * chance_to_hit_defender * (stats::decimal_shift / 100);
int exp_drain = drain * chance_to_hit_defender * (stats::decimal_shift / 100);
att_stats.expected_damage_taken -= exp_drain;
def_stats.expected_damage_inflicted -= exp_drain;
att_stats.turn_expected_damage_taken -= exp_drain;
def_stats.turn_expected_damage_inflicted -= exp_drain;
// handle drain
att_stats.expected_damage_inflicted += exp_damage;
def_stats.expected_damage_taken += exp_damage;
att_stats.turn_expected_damage_inflicted += exp_damage;
def_stats.turn_expected_damage_taken += exp_damage;
if(res == KILLS) {
++att_stats.killed[defender_type];
++def_stats.deaths[defender_type];
@ -582,20 +524,6 @@ void attack_context::defend_result(hit_result res, int damage, int drain)
def_stats.turn_damage_inflicted += damage;
}
int exp_damage = damage * chance_to_hit_attacker * (stats::decimal_shift / 100);
int exp_drain = drain * chance_to_hit_attacker * (stats::decimal_shift / 100);
//handle drain
def_stats.expected_damage_taken -= exp_drain;
att_stats.expected_damage_inflicted -= exp_drain;
def_stats.turn_expected_damage_taken -= exp_drain;
att_stats.turn_expected_damage_inflicted -= exp_drain;
att_stats.expected_damage_taken += exp_damage;
def_stats.expected_damage_inflicted += exp_damage;
att_stats.turn_expected_damage_taken += exp_damage;
def_stats.turn_expected_damage_inflicted += exp_damage;
if(res == KILLS) {
++att_stats.deaths[attacker_type];
++def_stats.killed[attacker_type];
@ -659,8 +587,6 @@ void reset_turn_stats(std::string save_id)
s.turn_damage_taken = 0;
s.turn_expected_damage_inflicted = 0;
s.turn_expected_damage_taken = 0;
s.new_turn_expected_damage_inflicted = 0;
s.new_turn_expected_damage_taken = 0;
s.save_id = save_id;
}

View file

@ -60,15 +60,8 @@ namespace statistics
// probability to hit,
// Use this long term to see how lucky a side is.
/**
* @todo FIXME: Since integers are used, rounding errors accumulate.
* Also, slow isn't accounted for properly. Rusty's simulator could be
* used obtain valid values.
*/
long long expected_damage_inflicted, expected_damage_taken;
long long turn_expected_damage_inflicted, turn_expected_damage_taken;
long long new_expected_damage_inflicted, new_expected_damage_taken;
long long new_turn_expected_damage_inflicted, new_turn_expected_damage_taken;
std::string save_id;
};

View file

@ -169,18 +169,7 @@ statistics_dialog::statistics_dialog(game_display &disp,
stats_.expected_damage_taken,
stats_.turn_damage_taken,
stats_.turn_expected_damage_taken);
items.push_back("New stats:");
statistics_dialog::make_damage_line(items, _("Inflicted"),
stats_.damage_inflicted,
stats_.new_expected_damage_inflicted,
stats_.turn_damage_inflicted,
stats_.new_turn_expected_damage_inflicted);
statistics_dialog::make_damage_line(items, _("Taken"),
stats_.damage_taken,
stats_.new_expected_damage_taken,
stats_.turn_damage_taken,
stats_.new_turn_expected_damage_taken);
set_menu(items);
}