wesnoth-cvs-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Wesnoth-cvs-commits] wesnoth/src playturn.cpp statistics.cpp statist...


From: Isaac Clerencia
Subject: [Wesnoth-cvs-commits] wesnoth/src playturn.cpp statistics.cpp statist...
Date: Wed, 25 Aug 2004 20:37:54 -0400

CVSROOT:        /cvsroot/wesnoth
Module name:    wesnoth
Branch:         
Changes by:     Isaac Clerencia <address@hidden>        04/08/26 00:33:11

Modified files:
        src            : playturn.cpp statistics.cpp statistics.hpp 

Log message:
        Added damage taken and inflicted and expected values, at last we will be
        able to know if the RNG has a specially sympathy to Dave. :P
        
        Basically it's patch 3187, updated to work with current CVS (I think 
the only
        difference is the use of gettext)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/playturn.cpp.diff?tr1=1.256&tr2=1.257&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/statistics.cpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/statistics.hpp.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: wesnoth/src/playturn.cpp
diff -u wesnoth/src/playturn.cpp:1.256 wesnoth/src/playturn.cpp:1.257
--- wesnoth/src/playturn.cpp:1.256      Wed Aug 25 02:59:51 2004
+++ wesnoth/src/playturn.cpp    Thu Aug 26 00:33:11 2004
@@ -1,4 +1,4 @@
-/* $Id: playturn.cpp,v 1.256 2004/08/25 02:59:51 Sirp Exp $ */
+/* $Id: playturn.cpp,v 1.257 2004/08/26 00:33:11 isaaccp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -1980,6 +1980,32 @@
                items.push_back(str.str());
        }
 
+       {
+               std::stringstream str;
+               str << _("Damage Inflicted") << "," << stats.damage_inflicted;
+               items.push_back(str.str());
+       }
+
+       {
+               std::stringstream str;
+               str << _("Damage Taken") << "," << stats.damage_taken;
+               items.push_back(str.str());
+       }
+
+       {
+               std::stringstream str;
+               str << _("Damage Inflicted (EV)") << "," << 
+                       (stats.expected_damage_inflicted / 100.0);
+               items.push_back(str.str());
+       }
+
+       {
+               std::stringstream str;
+               str << _("Damage Taken (EV)") << "," << 
+                       (stats.expected_damage_taken / 100.0);
+               items.push_back(str.str());
+       }
+
        const int res = 
gui::show_dialog(gui_,NULL,"",_("Statistics"),gui::MESSAGE,&items);
        std::string title;
        items.clear();
Index: wesnoth/src/statistics.cpp
diff -u wesnoth/src/statistics.cpp:1.9 wesnoth/src/statistics.cpp:1.10
--- wesnoth/src/statistics.cpp:1.9      Sun Jun 13 03:43:16 2004
+++ wesnoth/src/statistics.cpp  Thu Aug 26 00:33:11 2004
@@ -141,6 +141,8 @@
        a.recall_cost += b.recall_cost;
        a.damage_inflicted += b.damage_inflicted;
        a.damage_taken += b.damage_taken;
+       a.expected_damage_inflicted += b.expected_damage_inflicted;
+       a.expected_damage_taken += b.expected_damage_taken;
 }
 
 }
@@ -148,7 +150,7 @@
 namespace statistics
 {
 
-stats::stats() : recruit_cost(0), recall_cost(0), damage_inflicted(0), 
damage_taken(0)
+stats::stats() : recruit_cost(0), recall_cost(0), damage_inflicted(0), 
damage_taken(0), expected_damage_inflicted(0), expected_damage_taken(0)
 {}
 
 stats::stats(const config& cfg)
@@ -180,6 +182,12 @@
        sprintf(buf,"%d",damage_taken);
        res["damage_taken"] = buf;
 
+       sprintf(buf,"%d",expected_damage_inflicted);
+       res["expected_damage_inflicted"] = buf;
+
+       sprintf(buf,"%d",expected_damage_taken);
+       res["expected_damage_taken"] = buf;
+
        return res;
 }
 
@@ -221,6 +229,8 @@
        recall_cost = atoi(cfg["recall_cost"].c_str());
        damage_inflicted = atoi(cfg["damage_inflicted"].c_str());
        damage_taken = atoi(cfg["damage_taken"].c_str());
+       expected_damage_inflicted = 
atoi(cfg["expected_damage_inflicted"].c_str());
+       expected_damage_taken = atoi(cfg["expected_damage_taken"].c_str());
 }
 
 disabler::disabler() { stats_disabled++; }
@@ -272,8 +282,14 @@
 
        push_back(attacker_res,(res == MISSES ? '0' : '1'));
 
-       attacker_stats().damage_inflicted += bat_stats.damage_defender_takes;
-       defender_stats().damage_taken += bat_stats.damage_defender_takes;
+       if(res != MISSES) {
+               attacker_stats().damage_inflicted += 
bat_stats.damage_defender_takes;
+               defender_stats().damage_taken += 
bat_stats.damage_defender_takes;
+       }
+       attacker_stats().expected_damage_inflicted +=
+               bat_stats.damage_defender_takes * 
bat_stats.chance_to_hit_defender;
+       defender_stats().expected_damage_taken +=
+               bat_stats.damage_defender_takes * 
bat_stats.chance_to_hit_defender;
 
        if(res == KILLS) {
                attacker_stats().killed[defender_type]++;
@@ -286,11 +302,16 @@
        if(stats_disabled > 0)
                return;
 
-       defender_res.resize(defender_res.size()+1);
-       defender_res[defender_res.size()-1] = (res == MISSES ? '0' : '1');
+       push_back(defender_res,(res == MISSES ? '0' : '1'));
 
-       attacker_stats().damage_taken += bat_stats.damage_attacker_takes;
-       defender_stats().damage_inflicted += bat_stats.damage_defender_takes;
+       if(res != MISSES) {
+               attacker_stats().damage_taken += 
bat_stats.damage_attacker_takes;
+               defender_stats().damage_inflicted += 
bat_stats.damage_defender_takes;
+       }
+       attacker_stats().expected_damage_taken +=
+               bat_stats.damage_attacker_takes * 
bat_stats.chance_to_hit_attacker;
+       defender_stats().expected_damage_inflicted +=
+               bat_stats.damage_attacker_takes * 
bat_stats.chance_to_hit_attacker;
 
        if(res == KILLS) {
                attacker_stats().deaths[attacker_type]++;
Index: wesnoth/src/statistics.hpp
diff -u wesnoth/src/statistics.hpp:1.7 wesnoth/src/statistics.hpp:1.8
--- wesnoth/src/statistics.hpp:1.7      Tue Jul 20 11:56:58 2004
+++ wesnoth/src/statistics.hpp  Thu Aug 26 00:33:11 2004
@@ -28,6 +28,10 @@
                battle_result_map attacks, defends;
 
                int damage_inflicted, damage_taken;
+
+               //expected value for damage inflicted/taken * 100, based on 
probability
+               //to hit, Use this long term to see how lucky a side is
+               int expected_damage_inflicted, expected_damage_taken;
        };
 
        int sum_str_int_map(const stats::str_int_map& m);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]