diff options
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r-- | crawl-ref/source/mutation.cc | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index b50c788020..8b592d471f 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -185,6 +185,8 @@ const char *mutation_descrip[][3] = { "You have a pair of horns on your head.", "You have a pair of large horns on your head."}, + {"You have a beak for a mouth.", "", ""}, + {"Your muscles are strong (Str +1), but stiff (Dex -1).", "Your muscles are very strong (Str +2), but stiff (Dex -2).", "Your muscles are extremely strong (Str +3), but stiff (Dex -3)."}, @@ -479,6 +481,8 @@ const char *gain_mutation[][3] = { "The horns on your head grow some more.", "The horns on your head grow some more."}, + {"Your mouth lengthens and hardens into a beak!", "", ""}, + {"Your muscles feel sore.", "Your muscles feel sore.", "Your muscles feel sore."}, @@ -717,6 +721,8 @@ const char *lose_mutation[][3] = { "The horns on your head shrink a bit.", "The horns on your head shrink a bit."}, + {"Your beak shortens and softens into a mouth.", "", ""}, + {"Your muscles feel loose.", "Your muscles feel loose.", "Your muscles feel loose."}, @@ -902,14 +908,15 @@ static mutation_def mutation_defs[] = { { MUT_BREATHE_FLAMES, 4, 3, false, false }, { MUT_BLINK, 3, 3, false, false }, { MUT_HORNS, 7, 3, false, true }, + { MUT_BEAK, 1, 1, false, true }, { MUT_STRONG_STIFF, 10, 3, false, true }, { MUT_FLEXIBLE_WEAK, 10, 3, false, true }, { MUT_SCREAM, 6, 3, true, false }, { MUT_CLARITY, 6, 1, false, false }, { MUT_BERSERK, 7, 3, true, false }, { MUT_DETERIORATION, 10, 3, true, false }, - { MUT_BLURRY_VISION, 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 }, { MUT_ROBUST, 5, 3, false, true }, @@ -921,8 +928,8 @@ 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 }, - { MUT_RAISE_DEAD, 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 }, { MUT_DEATH_STRENGTH, 0, 1, false, false }, @@ -934,8 +941,8 @@ static mutation_def mutation_defs[] = { // end of demonic powers { MUT_CLAWS, 2, 3, false, true }, - { MUT_FANGS, 1, 3, false, true }, // 60 + { MUT_FANGS, 1, 3, false, true }, { MUT_HOOVES, 1, 1, false, true }, { MUT_TALONS, 1, 1, false, true }, @@ -955,13 +962,12 @@ static mutation_def mutation_defs[] = { { MUT_SHAGGY_FUR, 2, 3, false, true }, - { MUT_HIGH_MAGIC, 1, 3, false, false }, // 70 + { 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 }, { RANDOM_MUTATION, 0, 3, false, false }, - { RANDOM_MUTATION, 0, 3, false, false }, // 75 -- scales of various colours and effects { MUT_RED_SCALES, 2, 3, false, true }, @@ -1113,15 +1119,14 @@ formatted_string describe_mutations() break; case SP_KENKU: - result += "You cannot wear helmets." EOL; if (you.experience_level > 4) { result += "You can fly"; if (you.experience_level > 14) result += " continuously"; result += "." EOL; + have_any = true; } - have_any = true; break; case SP_MUMMY: @@ -1581,6 +1586,7 @@ static int calc_mutation_amusement_value(mutation_type which_mutation) case MUT_BREATHE_FLAMES: case MUT_BLINK: case MUT_HORNS: + case MUT_BEAK: case MUT_SCREAM: case MUT_BERSERK: case MUT_DETERIORATION: @@ -1887,6 +1893,13 @@ bool mutate(mutation_type which_mutation, bool failMsg, return (false); } + // No fangs with beaks, or vice versa. + if ((mutat == MUT_FANGS && you.mutation[MUT_BEAK] > 0) + || (mutat == MUT_BEAK && you.mutation[MUT_FANGS] > 0)) + { + return (false); + } + // Putting boots on after they are forced off. -- bwr if ((mutat == MUT_HOOVES || mutat == MUT_TALONS) && !player_has_feet()) @@ -1894,10 +1907,6 @@ bool mutate(mutation_type which_mutation, bool failMsg, return (false); } - // No fangs sprouting from Kenkus' beaks. - if (mutat == MUT_FANGS && you.species == SP_KENKU) - return (false); - // Already innate. if (mutat == MUT_BREATHE_POISON && you.species != SP_NAGA) return (false); @@ -2067,9 +2076,10 @@ bool mutate(mutation_type which_mutation, bool failMsg, break; case MUT_HORNS: + case MUT_BEAK: mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); - // Horns force hard helmets off. + // Horns and beaks force hard helmets off. if (you.equip[EQ_HELMET] != -1 && is_hard_helmet(you.inv[you.equip[EQ_HELMET]]) && you_tran_can_wear(EQ_HELMET)) |