summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/fight.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-06 16:47:06 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-06 16:47:06 +0000
commit200b4c0e08504a7c8df898d77a9d72b3fa573c04 (patch)
treeb6cf73c902a55861ab60656e0225f0385c2c3a59 /crawl-ref/source/fight.cc
parent7f2ded93231941b48fba24bcc9a55602295f72bd (diff)
downloadcrawl-ref-200b4c0e08504a7c8df898d77a9d72b3fa573c04.tar.gz
crawl-ref-200b4c0e08504a7c8df898d77a9d72b3fa573c04.zip
Add a function x_chance_in_y(x,y) to replace the various
random2(y) < x checks, e.g. x_chance_in_y(weight, totalweight). This should make things a bit more readable. Apply it to a number of files. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6428 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r--crawl-ref/source/fight.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 0864f666bc..18be80e265 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -112,7 +112,7 @@ bool test_melee_hit(int to_hit, int ev)
if (to_hit >= AUTOMATIC_HIT)
return (true);
- else if (random2(100) < MIN_HIT_MISS_PERCENTAGE)
+ else if (x_chance_in_y(MIN_HIT_MISS_PERCENTAGE, 100))
margin = (coinflip() ? 1 : -1) * AUTOMATIC_HIT;
else
{
@@ -247,15 +247,17 @@ int calc_heavy_armour_penalty( bool random_factor )
}
}
- // heavy armour modifiers for PARM_EVASION
+ // Heavy armour modifiers for PARM_EVASION.
if (you.equip[EQ_BODY_ARMOUR] != -1)
{
const int ev_pen = property( you.inv[you.equip[EQ_BODY_ARMOUR]],
PARM_EVASION );
- if (ev_pen < 0 &&
- maybe_random2(you.skills[SK_ARMOUR], random_factor) < abs(ev_pen))
+ if (ev_pen < 0 && maybe_random2(you.skills[SK_ARMOUR],
+ random_factor) < abs(ev_pen))
+ {
heavy_armour += maybe_random2( abs(ev_pen), random_factor );
+ }
}
// ??? what is the reasoning behind this ??? {dlb}
@@ -273,14 +275,14 @@ int calc_heavy_armour_penalty( bool random_factor )
heavy_armour /= 2;
}
}
- return heavy_armour;
+ return (heavy_armour);
}
static bool player_fights_well_unarmed(int heavy_armour_penalty)
{
return (you.burden_state == BS_UNENCUMBERED
- && random2(20) < you.skills[SK_UNARMED_COMBAT]
- && random2(1 + heavy_armour_penalty) < 2);
+ && x_chance_in_y(you.skills[SK_UNARMED_COMBAT], 20)
+ && x_chance_in_y(2, 1 + heavy_armour_penalty));
}
unchivalric_attack_type is_unchivalric_attack(const actor *attacker,