From: dis- Date: Mon, 7 Jan 2013 14:44:42 +0000 (+0000) Subject: Fix compare_weapon critical calc. X-Git-Tag: v2.1.2~190 X-Git-Url: http://git.osdn.net/view?p=hengband%2Fhengband.git;a=commitdiff_plain;h=1e4b44eb3e0b8794e092c5744f213933a970b4cc Fix compare_weapon critical calc. --- diff --git a/src/bldg.c b/src/bldg.c index 9933af647..fe6ab6c58 100644 --- a/src/bldg.c +++ b/src/bldg.c @@ -3135,18 +3135,19 @@ static void town_history(void) static s16b calc_expext_cirt(int weight, int plus, int dam, s16b meichuu, bool dokubari) { - long i, num; + long i,k, num; if(dokubari) return dam; i = weight + (meichuu * 3 + plus * 5) + (p_ptr->lev * 3); + k = weight; num=0; - if (i < 400) num += (2 * dam + 5) * (400 - i); - if (i < 700) num += (2 * dam + 10) * (700 - MAX(400, i)); - if (i > (700-650) && i < 900) num += (3 * dam + 15) * (900 - MAX(700, i)); - if (i > (900-650) && i < 1300) num += (3 * dam + 20) * (1300 - MAX(900, i)); - if (i > (1300-650)) num += (7 * dam / 2 + 25) * (i - (1300-650)); + if (k < 400) num += (2 * dam + 5) * (400 - k); + if (k < 700) num += (2 * dam + 10) * (MIN(700, k+650) - MAX(400, k)); + if (k > (700-650) && k < 900) num += (3 * dam + 15) * (MIN(900, k+650) - MAX(700, k)); + if (k > (900-650) && k < 1300) num += (3 * dam + 20) * (MIN(1300, k+650) - MAX(900, k)); + if (k > (1300-650)) num += (7 * dam / 2 + 25) * MIN(650, k-(1300-650)); if(p_ptr->pclass == CLASS_NINJA) {