summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/effects.cc
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-02-23 13:22:17 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-02-23 13:22:17 +0000
commit4e381e6a083d562fabe8c1d7a2be60720be59238 (patch)
tree5804617aa72b3cead3fa0222d0d976a9538c23bd /crawl-ref/source/effects.cc
parent4f849c43a3add816fd41f0e3c89e387558015419 (diff)
downloadcrawl-ref-4e381e6a083d562fabe8c1d7a2be60720be59238.tar.gz
crawl-ref-4e381e6a083d562fabe8c1d7a2be60720be59238.zip
Add Deep Dwarves patch, with some minor changes.
Add a new mutation, MUT_SLOW_HEALING, which at level 3 blocks all healing; it can't be acquired randomly, but deep dwarves start with it at level 3. This overrides regeneration, including the god-given kind (Trog's Hand.) Fix mutation listings (hopefully I got this right.) There are still some cases where DD HP shaving is not applied: ability HP costs, Staff of Dispater effect, vampiric draining backlash, Sublimation of Blood spell. Fix dancing weapons leaving mgrd incorrect if their weapon can't be generated. Breaks saves. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9173 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/effects.cc')
-rw-r--r--crawl-ref/source/effects.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 9220fb12b5..8a770bafd5 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -3105,14 +3105,18 @@ void handle_time(long time_delta)
// Adjust the player's stats if s/he's diseased (or recovering).
if (!you.disease)
{
- if (you.strength < you.max_strength && one_chance_in(100))
- restore_stat(STAT_STRENGTH, 0, false, true);
+ // With slow healing 3, you have no stat recovery.
+ if (x_chance_in_y(3 - you.mutation[MUT_SLOW_HEALING], 3))
+ {
+ if (you.strength < you.max_strength && one_chance_in(100))
+ restore_stat(STAT_STRENGTH, 0, false, true);
- if (you.intel < you.max_intel && one_chance_in(100))
- restore_stat(STAT_INTELLIGENCE, 0, false, true);
+ if (you.intel < you.max_intel && one_chance_in(100))
+ restore_stat(STAT_INTELLIGENCE, 0, false, true);
- if (you.dex < you.max_dex && one_chance_in(100))
- restore_stat(STAT_DEXTERITY, 0, false, true);
+ if (you.dex < you.max_dex && one_chance_in(100))
+ restore_stat(STAT_DEXTERITY, 0, false, true);
+ }
}
else
{