OSDN Git Service

Apply Critical-Expected-Value to 'C' window. v2.1.1
authordis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 10 Feb 2013 13:54:23 +0000 (13:54 +0000)
committerdis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 10 Feb 2013 13:54:23 +0000 (13:54 +0000)
src/bldg.c
src/externs.h
src/files.c

index 878d3ab..ac99c9b 100644 (file)
@@ -3126,7 +3126,7 @@ static void town_history(void)
 }
 
 
-static s16b calc_expext_cirt(int weight, int plus, int dam, s16b meichuu, bool dokubari)
+s16b calc_expext_cirt(int weight, int plus, int dam, s16b meichuu, bool dokubari)
 {
        long i,k, num;
        
index 701e154..7aebec5 100644 (file)
@@ -1294,6 +1294,7 @@ extern void quest_discovery(int q_idx);
 extern int quest_number(int level);
 extern int random_quest_number(int level);
 extern bool tele_town(void);
+extern s16b calc_expext_cirt(int weight, int plus, int dam, s16b meichuu, bool dokubari);
 
 /* util.c */
 extern errr path_parse(char *buf, int max, cptr file);
index be4f3bd..66fe232 100644 (file)
@@ -2078,13 +2078,14 @@ static cptr likert(int x, int y)
  */
 static void display_player_various(void)
 {
-       int         tmp, damage[2], blows1, blows2, i, basedam;
+       int         tmp, damage[2], to_h[2], blows1, blows2, i, basedam;
        int                     xthn, xthb, xfos, xsrh;
        int                     xdis, xdev, xsav, xstl;
        cptr            desc;
        int         muta_att = 0;
        u32b flgs[TR_FLAG_SIZE];
        int             shots, shot_frac;
+       bool dokubari;
 
        object_type             *o_ptr;
 
@@ -2159,9 +2160,19 @@ static void display_player_various(void)
                        /* Average damage per round */
                        if (o_ptr->k_idx)
                        {
-                               if (object_is_known(o_ptr)) damage[i] += o_ptr->to_d * 100;
+                               to_h[i] = 0;
+                               dokubari = FALSE;                               
+                               
+                               if((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DOKUBARI)) dokubari = TRUE;
+                               if (object_is_known(o_ptr))
+                               { 
+                                       damage[i] += o_ptr->to_d * 100;
+                                       to_h[i] += o_ptr->to_h;
+                               }
                                basedam = ((o_ptr->dd + p_ptr->to_dd[i]) * (o_ptr->ds + p_ptr->to_ds[i] + 1)) * 50;
                                object_flags_known(o_ptr, flgs);
+                                                               
+                               basedam = calc_expext_cirt(o_ptr->weight, to_h[i], basedam, p_ptr->dis_to_h[i], dokubari);
                                if ((o_ptr->ident & IDENT_MENTAL) && ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD)))
                                {
                                        /* vorpal blade */