diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-26 22:38:21 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-26 22:38:21 +0000 |
commit | f3f93a328f7c076f46be200133af034e42956f6d (patch) | |
tree | d8491cc9b08a1f830c7479cca3146da2387bab49 /crawl-ref/source/mutation.cc | |
parent | 96d6e3e9f85e3be686bd1a0c56436affb0014365 (diff) | |
download | crawl-ref-f3f93a328f7c076f46be200133af034e42956f6d.tar.gz crawl-ref-f3f93a328f7c076f46be200133af034e42956f6d.zip |
Adding two new mutations for the heck of it:
* MUT_PAWS: "You have soft paws in place of feet."
Similar to HOOVES and TALONS - incidentally, I resorted a
few mutations for better grouping - but increases stealth.
* MUT_EXTRA_EYES: grow up to three extra eyes that
increase depth perception and thus accuracy. I'm still
looking for a drawback to this mutation (other than looking
weird). Also, could be related to ACUTE/BLURRY VISION
somehow.
Breaks saves, or at least mutations.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2606 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r-- | crawl-ref/source/mutation.cc | 132 |
1 files changed, 82 insertions, 50 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index 733bb0bf30..27353bfc20 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -265,19 +265,22 @@ const char *mutation_descrip[][3] = { {"You have sharp fingernails.", "You have very sharp fingernails.", "You have claws for hands."}, - {"You have hooves in place of feet.", "", ""}, - - // 60 - leave some space for more demonic powers... - {"You have very sharp teeth.", "You have extremely sharp teeth.", "You have razor-sharp teeth."}, - + + // 60 - leave some space for more demonic powers... + + {"You have hooves in place of feet.", "", ""}, + {"You have talons in place of feet.", "", ""}, + {"You have soft paws in place of feet.", "", ""}, + {"You can exhale a cloud of poison.", "", ""}, {"Your tail ends in a poisonous barb.", "Your tail ends in a sharp poisonous barb.", "Your tail ends in a wicked poisonous barb."}, //jmf: nagas & dracos + // 65 {"Your wings are large and strong.", "", ""}, //jmf: dracos only //jmf: these next two are for evil gods to mark their followers; good gods @@ -287,7 +290,6 @@ const char *mutation_descrip[][3] = { "There are several blue sigils on your hands and arms.", "Your hands, arms and shoulders are covered in intricate, arcane blue writing."}, - // 65 {"There is a green sigil on your chest.", "There are several green sigils on your chest and abdomen.", "Your chest, abdomen and neck are covered in intricate, arcane green writing."}, @@ -299,11 +301,17 @@ const char *mutation_descrip[][3] = { {"You can tolerate rotten meat.", "You can eat rotten meat.", "You thrive on rotten meat."}, - {"You have talons in place of feet.", "", ""}, + // 70 + {"You have a third eye on your forehead.", + "You have two additional eyes on your forehead.", + "You have three additional eyes on your forehead."}, {"", "", ""}, + {"", "", ""}, + {"", "", ""}, + {"", "", ""}, - // 70 + // 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)."}, @@ -344,7 +352,7 @@ const char *mutation_descrip[][3] = { "You are mostly covered in purple scales (AC + 4).", "You are completely covered in purple scales (AC + 6)."}, -// 80 + // 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)."}, @@ -522,13 +530,15 @@ const char *gain_mutation[][3] = { {"Your fingernails lengthen.", "Your fingernails sharpen.", "Your hands twist into claws."}, - {"Your feet shrivel into cloven hooves.", "", ""}, - - // 60 {"Your teeth lengthen and sharpen.", "Your teeth lengthen and sharpen some more.", "Your teeth are very long and razor-sharp."}, + // 60 + {"Your feet shrivel into cloven hooves.", "", ""}, + {"Your feet stretch and sharpen into talons.", "", ""}, + {"Your feet sprout fur and twist into soft paws.", "", ""}, + {"You taste something nasty.", "You taste something very nasty.", "You taste something extremely nasty."}, @@ -536,12 +546,12 @@ const char *gain_mutation[][3] = { "The barb on your tail looks sharper.", "The barb on your tail looks very sharp."}, + // 65 {"Your wings grow larger and stronger.", "", ""}, {"Your hands itch.", "Your hands and forearms itch.", "Your arms, hands and shoulders itch."}, - // 65 {"Your chest itches.", "Your chest and abdomen itch.", "Your chest, abdomen and neck itch."}, @@ -552,11 +562,17 @@ const char *gain_mutation[][3] = { // saprovorous: can never be gained or lost, only started with {"", "", ""}, - {"Your feet stretch and sharpen into talons.", "", ""}, - + // 70 + {"You sprout an extra eye.", + "You sprout another eye.", + "You sprout another eye."}, + + {"", "", ""}, + {"", "", ""}, + {"", "", ""}, {"", "", ""}, - // 70 + // 75 {"Red scales grow over part of your body.", "Red scales spread over more of your body.", "Red scales cover you completely."}, @@ -588,7 +604,7 @@ const char *gain_mutation[][3] = { "Purple scales spread over more of your body.", "Purple scales cover you completely."}, - // 80 + // 85 {"Speckled scales grow over part of your body.", "Speckled scales spread over more of your body.", "Speckled scales cover you completely."}, @@ -753,20 +769,23 @@ const char *lose_mutation[][3] = { {"Your fingernails shrink to normal size.", "Your fingernails look duller.", "Your hands feel fleshier."}, - {"Your hooves expand and flesh out into feet!", "", ""}, - - // 60 {"Your teeth shrink to normal size.", "Your teeth shrink and become duller.", "Your teeth shrink and become duller."}, - + + // 60 + {"Your hooves expand and flesh out into feet!", "", ""}, + {"Your talons dull and shrink into feet.", "", ""}, + {"Your paws shed and extend into feet.", "", ""}, + {"", "", ""}, {"", "", ""}, + + // 65 {"", "", ""}, {"", "", ""}, - - // 65 {"", "", ""}, + {"Your movements feel completely certain again.", "Your movements feel more certain.", "Your movements feel more certain."}, @@ -774,11 +793,17 @@ const char *lose_mutation[][3] = { // saprovorous: can never be gained or lost, only started with {"", "", ""}, - {"Your talons dull and shrink into feet.", "", ""}, + // 70 + {"Your extra eye disappears.", + "One of your extra eyes disappears.", + "One of your extra eyes disappears."}, {"", "", ""}, - - // 70 + {"", "", ""}, + {"", "", ""}, + {"", "", ""}, + + // 75 {"Your red scales disappear.", "Your red scales recede somewhat.", "Your red scales recede somewhat."}, @@ -812,7 +837,7 @@ const char *lose_mutation[][3] = { {"Your purple scales disappear.", "Your purple scales recede somewhat.", "Your purple scales recede somewhat."}, - // 80 + // 85 {"Your speckled scales disappear.", "Your speckled scales recede somewhat.", "Your speckled scales recede somewhat."}, @@ -836,6 +861,9 @@ const char *lose_mutation[][3] = { "Your patterned scales recede somewhat."}, }; +/* mutation definitions: + first number = probability (0 means it doesn't appear naturally?) + second number = maximum levels */ static const mutation_def mutation_defs[] = { { MUT_TOUGH_SKIN, 10, 3 }, { MUT_STRONG, 8, 14 }, @@ -884,6 +912,7 @@ static const mutation_def mutation_defs[] = { { MUT_MUTATION_RESISTANCE, 4, 3 }, { MUT_FRAIL, 10, 3 }, { MUT_ROBUST, 5, 3 }, + /* Some demonic powers start here: */ { MUT_TORMENT_RESISTANCE, 0, 1 }, { MUT_NEGATIVE_ENERGY_RESISTANCE, 0, 3 }, @@ -901,24 +930,29 @@ static const mutation_def mutation_defs[] = { { MUT_THROW_FLAMES, 0, 1 }, { MUT_THROW_FROST, 0, 1 }, { MUT_SMITE, 0, 1 }, +/* end of demonic powers */ + { MUT_CLAWS, 2, 3 }, - { MUT_HOOVES, 1, 1 }, -// 60 { MUT_FANGS, 1, 3 }, - { MUT_BREATHE_POISON, 0, 1 }, - { MUT_STINGER, 0, 3 }, - { MUT_BIG_WINGS, 0, 3 }, - { MUT_BLUE_MARKS, 0, 3 }, +// 60 + { MUT_HOOVES, 1, 1 }, + { MUT_TALONS, 1, 1 }, + { MUT_PAWS, 1, 1 }, + { MUT_BREATHE_POISON, 0, 1 }, // Naga only + { MUT_STINGER, 0, 3 }, // Naga and Draconian only // 65 + { MUT_BIG_WINGS, 0, 3 }, // Draconian only + { MUT_BLUE_MARKS, 0, 3 }, // used by evil gods to mark followers { MUT_GREEN_MARKS, 0, 3 }, + { MUT_DRIFTING, 3, 3 }, - { MUT_SAPROVOROUS, 0, 3 }, - { MUT_TALONS, 1, 1 }, + { MUT_SAPROVOROUS, 0, 3 }, // species-dependent innate mutation + { MUT_EXTRA_EYES, 1, 3 }, { RANDOM_MUTATION, 0, 3 }, -// 70 +// 75 -- scales of various colours and effects { MUT_RED_SCALES, 2, 3 }, { MUT_NACREOUS_SCALES, 1, 3 }, { MUT_GREY2_SCALES, 2, 3 }, @@ -929,7 +963,7 @@ static const mutation_def mutation_defs[] = { { MUT_BROWN_SCALES, 2, 3 }, { MUT_BLUE_SCALES, 2, 3 }, { MUT_PURPLE_SCALES, 2, 3 }, -// 80 +// 85 { MUT_SPECKLED_SCALES, 2, 3 }, { MUT_ORANGE_SCALES, 2, 3 }, { MUT_INDIGO_SCALES, 2, 3 }, @@ -1318,15 +1352,17 @@ static int calc_mutation_amusement_value(mutation_type which_mutation) case MUT_BLURRY_VISION: case MUT_FRAIL: case MUT_CLAWS: - case MUT_HOOVES: case MUT_FANGS: + case MUT_HOOVES: + case MUT_TALONS: + case MUT_PAWS: case MUT_BREATHE_POISON: case MUT_STINGER: case MUT_BIG_WINGS: case MUT_BLUE_MARKS: case MUT_GREEN_MARKS: case MUT_DRIFTING: - case MUT_TALONS: + case MUT_EXTRA_EYES: amusement *= 2; // funny! break; @@ -1513,17 +1549,8 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation, } // putting boots on after they are forced off. -- bwr - if (mutat == MUT_HOOVES - && (you.mutation[MUT_TALONS] || you.species == SP_NAGA - || player_genus(GENPC_DRACONIAN))) - { - return false; - } - - // putting boots on after they are forced off. -- bwr - if (mutat == MUT_TALONS - && (you.mutation[MUT_HOOVES] || you.species == SP_NAGA - || player_genus(GENPC_DRACONIAN))) + if ((mutat == MUT_HOOVES || mutat == MUT_TALONS || mutat == MUT_PAWS) + && !player_has_feet()) { return false; } @@ -1674,6 +1701,7 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation, //jmf: like horns case MUT_HOOVES: case MUT_TALONS: + case MUT_PAWS: mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); remove_one_equip(EQ_BOOTS); break; @@ -1705,6 +1733,10 @@ bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation, remove_one_equip(EQ_HELMET); } break; + + case MUT_EXTRA_EYES: + mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); + break; case MUT_STRONG_STIFF: if (you.mutation[MUT_FLEXIBLE_WEAK] > 0) |