summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ouch.cc
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2014-03-01 06:41:33 -0330
committerSteve Melenchuk <smelenchuk@gmail.com>2014-03-06 09:58:16 -0700
commitdcfe0c6302d95122f8f4bedf693bb976f961676b (patch)
tree4241005042de93fc5c612c4d0ae1f3b39e80aa17 /crawl-ref/source/ouch.cc
parent637b8013f00820bca58d1d5ca27b7d1905c39169 (diff)
downloadcrawl-ref-dcfe0c6302d95122f8f4bedf693bb976f961676b.tar.gz
crawl-ref-dcfe0c6302d95122f8f4bedf693bb976f961676b.zip
Adjust BEAM_POISON and BEAM_POISON_ARROW player poisoning for new system
Again, there is no clear way to map old poison values directly onto the new system, even if the intent were to preserve them as close as possible (which I do not think is even intrinsically desirable), so these are a first pass at new formulas. The amount of lingering poison inflicted by poison beams is now based on a randomized fraction of the pre-AC damage of the beam (meaning greater naga venom bolt will leave more poison in your system than deep elf mage venom bolt would). This is probably a buff to venom bolt, but it was never the scariest spell in the first place, and damage numbers on either side of the equation can be adjusted after testing.
Diffstat (limited to 'crawl-ref/source/ouch.cc')
-rw-r--r--crawl-ref/source/ouch.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc
index cee772c5d8..6d9fd31274 100644
--- a/crawl-ref/source/ouch.cc
+++ b/crawl-ref/source/ouch.cc
@@ -200,7 +200,10 @@ int check_your_resists(int hurted, beam_type flavour, string source,
case BEAM_POISON:
if (doEffects)
{
- resist = poison_player(coinflip() ? 2 : 1, source, kaux) ? 0 : 1;
+ int pois = div_rand_round(beam->damage.num * beam->damage.size, 4);
+ pois = 3 + random_range(pois * 2 / 3, pois * 4 / 3);
+
+ resist = poison_player(pois, source, kaux) ? 0 : 1;
hurted = resist_adjust_damage(&you, flavour, resist,
hurted, true);
@@ -223,9 +226,10 @@ int check_your_resists(int hurted, beam_type flavour, string source,
if (doEffects)
{
- int poison_amount = 2 + random2(3);
- poison_amount += (resist ? 0 : 2);
- poison_player(poison_amount, source, kaux, true);
+ int pois = div_rand_round(beam->damage.num * beam->damage.size, 3);
+ pois = 3 + random_range(pois * 2 / 3, pois * 4 / 3);
+
+ poison_player((resist ? pois / 2 : pois), source, kaux, true);
}
hurted = resist_adjust_damage(&you, flavour, resist, hurted);