diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-21 17:49:24 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-21 17:49:24 +0000 |
commit | 0a930fa79787f0e7f4b4ab2f4e223b58b58690c7 (patch) | |
tree | 7f8b16f8378873a9564c98a8e8e1104923aed5cd /crawl-ref/source/effects.cc | |
parent | a8a6b89f6b751da432faa31b9be145ec8532294f (diff) | |
download | crawl-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.cc | 6 |
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()) |