summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/effects.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-21 17:49:24 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-21 17:49:24 +0000
commit0a930fa79787f0e7f4b4ab2f4e223b58b58690c7 (patch)
tree7f8b16f8378873a9564c98a8e8e1104923aed5cd /crawl-ref/source/effects.cc
parenta8a6b89f6b751da432faa31b9be145ec8532294f (diff)
downloadcrawl-ref-0a930fa79787f0e7f4b4ab2f4e223b58b58690c7.tar.gz
crawl-ref-0a930fa79787f0e7f4b4ab2f4e223b58b58690c7.zip
Make Zin dislike when the player takes an action that makes an already
existing mutagenic glow stronger (piety loss, no penalty). At the same time go easier on the "eat souled being" misbehaviour: increased piety loss, but give penance only for eating very intelligent monsters, so that eating goblins and the like is an option again. (Cannibalism is checked first, and has worse effects.) Also fix restriction for items offered for ?recharging. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3789 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/effects.cc')
-rw-r--r--crawl-ref/source/effects.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 12ad68cb6e..fddc3d2efd 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -2437,6 +2437,7 @@ void handle_time( long time_delta )
added_contamination++;
}
+ bool mutagenic_randart = false;
if (const int randart_glow = scan_randarts(RAP_MUTAGENIC))
{
// Reduced randart glow. Note that one randart will contribute
@@ -2448,13 +2449,16 @@ void handle_time( long time_delta )
const int mean_glow = 500 + randart_glow * 40;
const int actual_glow = mean_glow / 2 + random2(mean_glow);
added_contamination += div_rand_round(actual_glow, 1000);
+ mutagenic_randart = true;
}
// we take off about .5 points per turn
if (!you.duration[DUR_INVIS] && !you.duration[DUR_HASTE] && coinflip())
added_contamination -= 1;
- contaminate_player( added_contamination );
+ // only punish if contamination caused by mutagenic randarts
+ // (haste and invisibility already penalized earlier)
+ contaminate_player( added_contamination, mutagenic_randart );
// only check for badness once every other turn
if (coinflip())