summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-18 15:54:14 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-18 15:54:14 +0000
commit1a36197574afe860feff7208cd883770a5d28946 (patch)
tree3dec1bff3ea37e4366068f1cb8dafdc56c5c48ff
parent759ebd29993b7abb1266e630ee1ae7e84509fa9c (diff)
downloadcrawl-ref-1a36197574afe860feff7208cd883770a5d28946.tar.gz
crawl-ref-1a36197574afe860feff7208cd883770a5d28946.zip
Applying modified (by me) mutation patches of dolorous',
mostly clean-up and output changes. * More consistent output for Centaurs and chars with hoof mutation (patch 1794849). * Remove "deterioration" (ghouls type) from % screen. d. is right in that this was misleading. (1795995) * Change "no piety" message for Yredelemnul. Okay, this is not mutation-related and of no consequence to boot (Yred doesn't accept offerings), but why not? (1796199) * Mutation output now lists unremovable mutations first (innate and demonspawn). It's all fairly small stuff, but is it small enough to branch? I think yes, but asking doesn't hurt, right? git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2136 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/delay.cc2
-rw-r--r--crawl-ref/source/fight.cc7
-rw-r--r--crawl-ref/source/item_use.cc9
-rw-r--r--crawl-ref/source/itemprop.cc9
-rw-r--r--crawl-ref/source/mutation.cc70
-rw-r--r--crawl-ref/source/newgame.cc1
-rw-r--r--crawl-ref/source/output.cc1
-rw-r--r--crawl-ref/source/religion.cc2
-rw-r--r--crawl-ref/source/spl-cast.cc2
-rw-r--r--crawl-ref/source/stuff.cc2
10 files changed, 60 insertions, 45 deletions
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 23ec28cb52..9097e371c2 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -702,7 +702,7 @@ static void armour_wear_effects(const int item_slot)
{
case SPARM_RUNNING:
mprf("You feel quick%s.",
- (you.species == SP_NAGA || you.species == SP_CENTAUR)
+ (you.species == SP_NAGA || you.mutation[MUT_HOOVES])
? "" : " on your feet");
break;
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 3afd4536d5..e9e6370a61 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -614,8 +614,7 @@ bool melee_attack::player_aux_unarmed()
{
if (uattack != UNAT_KICK) //jmf: hooves mutation
{
- if ((you.species != SP_CENTAUR && you.species != SP_KENKU
- && !you.mutation[MUT_HOOVES])
+ if (you.species != SP_KENKU && !you.mutation[MUT_HOOVES]
|| coinflip())
{
continue;
@@ -643,9 +642,7 @@ bool melee_attack::player_aux_unarmed()
else
unarmed_attack = "kick";
- aux_damage = ((you.mutation[MUT_HOOVES]
- || you.species == SP_CENTAUR
- || clawed_kick) ? 10 : 5);
+ aux_damage = ((you.mutation[MUT_HOOVES] || clawed_kick) ? 10 : 5);
break;
}
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index c7d90978d9..76a3aa313a 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -768,7 +768,14 @@ bool can_wear_armour(const item_def &item, bool verbose, bool ignore_temporary)
if (sub_type == ARM_BOOTS)
{
- if (you.species == SP_NAGA || you.species == SP_CENTAUR)
+ if (you.mutation[MUT_HOOVES] >= 2)
+ {
+ if (verbose)
+ mpr("You can't wear boots with hooves!");
+ return (false);
+ }
+
+ if (you.species == SP_NAGA)
{
if (verbose)
mpr("You can't wear that!");
diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc
index 3b78905ef3..5d09bf408d 100644
--- a/crawl-ref/source/itemprop.cc
+++ b/crawl-ref/source/itemprop.cc
@@ -1052,6 +1052,15 @@ bool check_armour_shape( const item_def &item, bool quiet )
switch (slot)
{
case EQ_BOOTS:
+
+ if (you.mutation[MUT_HOOVES] >= 2)
+ {
+ if (!quiet)
+ mpr("You can't wear boots with hooves!");
+
+ return (false);
+ }
+
switch (you.species)
{
case SP_NAGA:
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index c4b39e8dab..01b3114e83 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -242,7 +242,8 @@ const char *mutation_descrip[][3] = {
{"You can throw forth the frost of Cocytus.", "", ""},
{"You can invoke the powers of Tartarus to smite your living foes.", "", ""},
- {"You have sharp fingernails.", "Your fingernails are very sharp.",
+
+ {"You have sharp fingernails.", "You have very sharp fingernails.",
"You have claws for hands."},
{"You have hooves in place of feet.", "", ""},
@@ -943,11 +944,6 @@ formatted_string describe_mutations()
have_any = true;
break;
- case SP_CENTAUR:
- result += "You cannot wear boots." EOL;
- have_any = true;
- break;
-
case SP_TROLL:
if ( you.mutation[MUT_CLAWS] )
result += "<cyan>";
@@ -1140,9 +1136,11 @@ formatted_string describe_mutations()
textcolor(LIGHTGREY);
+ // first add (non-removable) inborn abilities and demon powers
for (int i = 0; i < NUM_MUTATIONS; i++)
{
- if (you.mutation[i] != 0)
+ // mutation is actually a demonic power
+ if (you.mutation[i] != 0 && you.demon_pow[i])
{
have_any = true;
@@ -1154,38 +1152,42 @@ formatted_string describe_mutations()
continue;
const char* colourname = "";
- // mutation is actually a demonic power
- if ( you.demon_pow[i] )
+ if ( you.species == SP_DEMONSPAWN )
{
- if ( you.species == SP_DEMONSPAWN )
- {
- if ( you.demon_pow[i] < you.mutation[i] )
- colourname = "lightred";
- else
- colourname = "red";
- }
- else // innate ability
- {
- if ( you.demon_pow[i] < you.mutation[i] )
- colourname = "cyan";
- else
- colourname = "lightblue";
- }
+ if ( you.demon_pow[i] < you.mutation[i] )
+ colourname = "lightred";
+ else
+ colourname = "red";
}
-
- if ( you.demon_pow[i] )
+ else // innate ability
{
- result += '<';
- result += colourname;
- result += '>';
+ if ( you.demon_pow[i] < you.mutation[i] )
+ colourname = "cyan";
+ else
+ colourname = "lightblue";
}
+
+ result += '<';
+ result += colourname;
+ result += '>';
+
+ result += mutation_name(static_cast<mutation_type>(i));
+
+ result += "</";
+ result += colourname;
+ result += '>';
+ result += EOL;
+ }
+ }
+
+ // now add removable mutations
+ for (int i = 0; i < NUM_MUTATIONS; i++)
+ {
+ if (you.mutation[i] != 0 && !you.demon_pow[i])
+ {
+ have_any = true;
+
result += mutation_name(static_cast<mutation_type>(i));
- if ( you.demon_pow[i] )
- {
- result += "</";
- result += colourname;
- result += '>';
- }
result += EOL;
}
}
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index e4a5f670ba..886f878219 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -1947,6 +1947,7 @@ static void give_basic_mutations(species_type speci)
you.mutation[MUT_FAST] = 2;
you.mutation[MUT_DEFORMED] = 1;
you.mutation[MUT_FAST_METABOLISM] = 2;
+ you.mutation[MUT_HOOVES] = 2;
break;
case SP_NAGA:
you.mutation[MUT_ACUTE_VISION] = 1;
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 8a61126fc1..cd7261a4a5 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1638,7 +1638,6 @@ std::string status_mut_abilities()
case SP_GHOUL:
text += "saprovore 3";
- text += ", deterioration";
have_any = true;
break;
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 9452f1d454..b3d48ea41b 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -101,7 +101,7 @@ const char *sacrifice[NUM_GODS][2] =
},
// Yredelemnul
{
- " crumble% to dust.",
+ " slowly crumble% to dust.",
" crumble% to dust.",
},
// Xom (no sacrifices)
diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc
index 49600fab71..4057290db2 100644
--- a/crawl-ref/source/spl-cast.cc
+++ b/crawl-ref/source/spl-cast.cc
@@ -3149,7 +3149,7 @@ static void miscast_earth(int severity, const char* cause)
case 9:
mprf("Your %s warm.",
(you.species == SP_NAGA) ? "underbelly feels" :
- (you.species == SP_CENTAUR) ? "hooves feel"
+ (you.mutation[MUT_HOOVES]) ? "hooves feel"
: "feet feel");
break;
}
diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc
index d622d39406..36eb33d543 100644
--- a/crawl-ref/source/stuff.cc
+++ b/crawl-ref/source/stuff.cc
@@ -609,7 +609,7 @@ void canned_msg(canned_message_type which_message)
{
case MSG_SOMETHING_APPEARS:
mprf("Something appears %s!",
- (you.species == SP_NAGA || you.species == SP_CENTAUR)
+ (you.species == SP_NAGA || you.mutation[MUT_HOOVES])
? "before you" : "at your feet");
break;