summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.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/mutation.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/mutation.cc')
-rw-r--r--crawl-ref/source/mutation.cc52
1 files changed, 23 insertions, 29 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 6aa07adc27..9dc7982799 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -82,7 +82,7 @@ const char *naga_deformed_descrip[3] = {
"Armour fits poorly on your badly deformed serpentine body."
};
-const char *mutation_descrip[][3] = {
+const char *mutation_descrip[NUM_MUTATIONS][3] = {
{"You have tough skin (AC +1).", "You have very tough skin (AC +2).",
"You have extremely tough skin (AC +3)."},
@@ -112,7 +112,6 @@ const char *mutation_descrip[][3] = {
{"Your system is immune to poisons.", "", ""},
-// 10
{"Your digestive system is specialised to digest meat.",
"Your digestive system is highly specialised to digest meat.",
"You are carnivorous and can eat meat at any time."},
@@ -132,6 +131,8 @@ const char *mutation_descrip[][3] = {
"You heal very quickly.",
"You regenerate."},
+ {"You heal slowly.", "You heal very slowly.", "You do not heal naturally."},
+
{"You have a fast metabolism.", "You have a very fast metabolism.",
"Your metabolism is lightning-fast."},
@@ -141,7 +142,6 @@ const char *mutation_descrip[][3] = {
{"You are weak (Str -", "", ""},
{"You are dopey (Int -", "", ""},
-// 20
{"You are clumsy (Dex -", "", ""},
{"You can control translocations.", "You can control translocations.",
@@ -174,7 +174,6 @@ const char *mutation_descrip[][3] = {
"You can sense your surroundings.",
"You can sense a large area of your surroundings."},
-// 30
{"You can breathe flames.", "You can breathe fire.",
"You can breathe blasts of fire."},
@@ -211,7 +210,6 @@ const char *mutation_descrip[][3] = {
{"Your body is slowly deteriorating.", "Your body is deteriorating.",
"Your body is rapidly deteriorating."},
-// 40
{"Your vision is a little blurry.", "Your vision is quite blurry.",
"Your vision is extremely blurry."},
@@ -240,7 +238,6 @@ const char *mutation_descrip[][3] = {
{"You can call on the torments of Hell.", "", ""},
// Not summoners/necromancers/worshippers of Yredelemnul
-// 50
{"You can raise the dead to walk for you.", "", ""},
{"You can control demons.", "", ""},
{"You can travel to (but not from) Pandemonium at will.", "", ""},
@@ -261,7 +258,6 @@ const char *mutation_descrip[][3] = {
{"You have sharp fingernails.", "You have very sharp fingernails.",
"You have claws for hands."},
-// 60
{"You have very sharp teeth.", "You have extremely sharp teeth.",
"You have razor-sharp teeth."},
@@ -294,7 +290,6 @@ const char *mutation_descrip[][3] = {
{"You like to eat raw meat.", "", ""},
-// 70
{"You are covered in fur.",
"You are covered in thick fur.",
"Your thick and shaggy fur keeps you warm."},
@@ -308,10 +303,7 @@ const char *mutation_descrip[][3] = {
"Your magical capacity is extremely low (-30 percent mp)."},
{"", "", ""},
- {"", "", ""},
- {"", "", ""},
-// 75
{"You are partially covered in red scales (AC + 1).",
"You are mostly covered in red scales (AC + 2).",
"You are covered in red scales (AC + 4)."},
@@ -352,7 +344,6 @@ const char *mutation_descrip[][3] = {
"You are mostly covered in purple scales (AC + 4).",
"You are completely covered in purple scales (AC + 6)."},
-// 85
{"You are partially covered in speckled scales (AC + 1).",
"You are mostly covered in speckled scales (AC + 2).",
"You are covered in speckled scales (AC + 3)."},
@@ -381,7 +372,7 @@ const char *mutation_descrip[][3] = {
// If giving a mutation which must succeed (eg demonspawn), must add
// exception to the "resist mutation" mutation thing.
-const char *gain_mutation[][3] = {
+const char *gain_mutation[NUM_MUTATIONS][3] = {
{"Your skin toughens.", "Your skin toughens.", "Your skin toughens."},
{"", "", ""}, // replaced with player::modify_stat() handling {dlb}
@@ -429,6 +420,10 @@ const char *gain_mutation[][3] = {
"You begin to heal more quickly.",
"You begin to regenerate."},
+ {"You begin to heal more slowly.",
+ "You begin to heal more slowly.",
+ "You stop healing."},
+
{"You feel a little hungry.", "You feel a little hungry.",
"You feel a little hungry."},
@@ -572,8 +567,6 @@ const char *gain_mutation[][3] = {
"You feel less energetic."},
{"", "", ""},
- {"", "", ""},
- {"", "", ""},
// 75
{"Red scales grow over part of your body.",
@@ -628,7 +621,7 @@ const char *gain_mutation[][3] = {
"Patterned scales cover you completely."}
};
-const char *lose_mutation[][3] = {
+const char *lose_mutation[NUM_MUTATIONS][3] = {
{"Your skin feels delicate.", "Your skin feels delicate.",
"Your skin feels delicate."},
@@ -677,6 +670,9 @@ const char *lose_mutation[][3] = {
{"Your rate of healing slows.", "Your rate of healing slows.",
"Your rate of healing slows."},
+ {"Your rate of healing increases.", "Your rate of healing increases.",
+ "Your rate of healing increases."},
+
{"Your metabolism slows.", "Your metabolism slows.",
"Your metabolism slows."},
@@ -804,8 +800,6 @@ const char *lose_mutation[][3] = {
"You feel more energetic."},
{"", "", ""},
- {"", "", ""},
- {"", "", ""},
// 75
{"Your red scales disappear.", "Your red scales recede somewhat.",
@@ -882,18 +876,17 @@ static mutation_def mutation_defs[] = {
{ MUT_BONEY_PLATES, 1, 3, false, true },
{ MUT_REPULSION_FIELD, 1, 3, false, false },
{ MUT_POISON_RESISTANCE, 4, 1, false, false },
-// 10
{ MUT_CARNIVOROUS, 5, 3, false, false },
{ MUT_HERBIVOROUS, 5, 3, true, false },
{ MUT_HEAT_RESISTANCE, 4, 3, false, false },
{ MUT_COLD_RESISTANCE, 4, 3, false, false },
{ MUT_SHOCK_RESISTANCE, 2, 1, false, false },
{ MUT_REGENERATION, 3, 3, false, false },
+ { MUT_SLOW_HEALING, 0, 3, true, false },
{ MUT_FAST_METABOLISM, 10, 3, true, false },
{ MUT_SLOW_METABOLISM, 7, 3, false, false },
{ MUT_WEAK, 10, 14, true, true },
{ MUT_DOPEY, 10, 14, true, true },
-// 20
{ MUT_CLUMSY, 10, 14, true, true },
{ MUT_TELEPORT_CONTROL, 2, 1, false, false },
{ MUT_TELEPORT, 3, 3, true, false },
@@ -904,7 +897,6 @@ static mutation_def mutation_defs[] = {
{ MUT_TELEPORT_AT_WILL, 2, 3, false, false },
{ MUT_SPIT_POISON, 8, 3, false, false },
{ MUT_MAPPING, 3, 3, false, false },
-// 30
{ MUT_BREATHE_FLAMES, 4, 3, false, false },
{ MUT_BLINK, 3, 3, false, false },
{ MUT_HORNS, 7, 3, false, true },
@@ -915,7 +907,6 @@ static mutation_def mutation_defs[] = {
{ MUT_CLARITY, 6, 1, false, false },
{ MUT_BERSERK, 7, 3, true, false },
{ MUT_DETERIORATION, 10, 3, true, false },
-// 40
{ MUT_BLURRY_VISION, 10, 3, true, false },
{ MUT_MUTATION_RESISTANCE, 4, 3, false, false },
{ MUT_FRAIL, 10, 3, true, true },
@@ -928,7 +919,6 @@ static mutation_def mutation_defs[] = {
{ MUT_SUMMON_DEMONS, 0, 1, false, false },
{ MUT_HURL_HELLFIRE, 0, 1, false, false },
{ MUT_CALL_TORMENT, 0, 1, false, false },
-// 50
{ MUT_RAISE_DEAD, 0, 1, false, false },
{ MUT_CONTROL_DEMONS, 0, 1, false, false },
{ MUT_PANDEMONIUM, 0, 1, false, false },
@@ -941,7 +931,6 @@ static mutation_def mutation_defs[] = {
// end of demonic powers
{ MUT_CLAWS, 2, 3, false, true },
-// 60
{ MUT_FANGS, 1, 3, false, true },
{ MUT_HOOVES, 1, 1, false, true },
{ MUT_TALONS, 1, 1, false, true },
@@ -951,7 +940,6 @@ static mutation_def mutation_defs[] = {
// Naga and Draconian only
{ MUT_STINGER, 0, 3, false, true },
-// 65
// Draconian only
{ MUT_BIG_WINGS, 0, 1, false, true },
// used by evil gods to mark followers (currently UNUSED)
@@ -962,15 +950,13 @@ static mutation_def mutation_defs[] = {
{ MUT_SAPROVOROUS, 0, 3, false, false },
{ MUT_GOURMAND, 0, 1, false, false },
-// 70
{ MUT_SHAGGY_FUR, 2, 3, false, true },
{ MUT_HIGH_MAGIC, 1, 3, false, false },
{ MUT_LOW_MAGIC, 9, 3, true, false },
{ RANDOM_MUTATION, 0, 3, false, false },
- { RANDOM_MUTATION, 0, 3, false, false },
-// 75 -- scales of various colours and effects
+// Scales of various colours and effects
{ MUT_RED_SCALES, 2, 3, false, true },
{ MUT_NACREOUS_SCALES, 1, 3, false, true },
{ MUT_GREY2_SCALES, 2, 3, false, true },
@@ -981,7 +967,6 @@ static mutation_def mutation_defs[] = {
{ MUT_BROWN_SCALES, 2, 3, false, true },
{ MUT_BLUE_SCALES, 2, 3, false, true },
{ MUT_PURPLE_SCALES, 2, 3, false, true },
-// 85
{ MUT_SPECKLED_SCALES, 2, 3, false, true },
{ MUT_ORANGE_SCALES, 2, 3, false, true },
{ MUT_INDIGO_SCALES, 2, 3, false, true },
@@ -1242,6 +1227,11 @@ formatted_string describe_mutations()
}
break;
+ case SP_DEEP_DWARF:
+ result += "You are resistant to damage." EOL;
+ have_any = true;
+ break;
+
default:
break;
} //end switch - innate abilities
@@ -1994,6 +1984,10 @@ bool mutate(mutation_type which_mutation, bool failMsg,
if (mutat == MUT_SLOW_METABOLISM && you.mutation[MUT_REGENERATION] > 0)
return (false);
+ // If you have slow healing, no regeneration.
+ if (mutat == MUT_REGENERATION && you.mutation[MUT_SLOW_HEALING] > 0)
+ return (false);
+
// This one can be forced by demonspawn or god gifts.
if (mutat == MUT_ACUTE_VISION
&& you.mutation[MUT_BLURRY_VISION] > 0 && !god_gift