summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/output.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-07 19:57:49 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-07 19:57:49 +0000
commit0073de23aefbc5bd21d6e5471bc830654fb07b33 (patch)
treeffc563aa4c0a5eb08ebb30e407e189ec58db3c35 /crawl-ref/source/output.cc
parenta41cd167867789d43e2601c456d276d0fe89a4d8 (diff)
downloadcrawl-ref-0073de23aefbc5bd21d6e5471bc830654fb07b33.tar.gz
crawl-ref-0073de23aefbc5bd21d6e5471bc830654fb07b33.zip
Fix 1909592: trunk not compiling on Windows
Improve information output for vampires in the screens 'A', '@' and '%'. Reduce the "in touch with the powers of death" effect to one boost at xl 6, and disallow bat form at engorged. Also, modify messages if they are not available right away for feeding reasons. What's still missing is a way to output those temporary resistances (currently only discernible from the '%' screen), preferentially in the form of some general statements on 'A': "When hungry, you gain resistance to cold." and more detailed descriptions on '@'. Fix a couple of wrong hunger status checks. Comment out the "Very agile monsters are quite hard to hit in your current equipment." messages because to my knowledge they hold little importance right now. Please correct me if that view is wrong. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3534 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/output.cc')
-rw-r--r--crawl-ref/source/output.cc43
1 files changed, 28 insertions, 15 deletions
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index c9329fe18c..f9e4e62326 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -208,10 +208,10 @@ static std::string describe_hunger()
case HS_VERY_HUNGRY:
return (vamp? "Very Thirsty" : "Very Hungry");
case HS_NEAR_STARVING:
- return ("Near Starving");
+ return (vamp? "Near Bloodless" : "Near Starving");
case HS_STARVING:
default:
- return ("Starving");
+ return (vamp? "Bloodless" : "Starving");
}
}
@@ -1525,14 +1525,29 @@ std::string status_mut_abilities()
if (you.duration[DUR_PRAYER])
text += "praying, ";
- if (you.duration[DUR_REGENERATION]
- && (you.species != SP_VAMPIRE || you.hunger_state >= HS_HUNGRY)
- || you.species == SP_VAMPIRE && you.hunger_state >= HS_FULL)
+ if (you.disease && !you.duration[DUR_REGENERATION]
+ || you.species == SP_VAMPIRE && you.hunger_state <= HS_STARVING)
+ {
+ text += "non-regenerating, ";
+ }
+ else if (you.duration[DUR_REGENERATION]
+ || you.species == SP_VAMPIRE && you.hunger_state != HS_SATIATED)
{
if (you.disease)
- text += "recuperating, ";
+ text += "recuperating";
else
- text += "regenerating, ";
+ text += "regenerating";
+
+ if (you.species == SP_VAMPIRE && you.hunger_state != HS_SATIATED)
+ {
+ if (you.hunger_state <= HS_HUNGRY)
+ text += " slowly";
+ else if (you.hunger_state == HS_ENGORGED)
+ text += " very quickly";
+ else if (you.hunger_state >= HS_FULL)
+ text += " quickly";
+ }
+ text += ", ";
}
// not used as resistance part already says so
@@ -1647,12 +1662,6 @@ std::string status_mut_abilities()
else if (!you.duration[DUR_HASTE] && you.duration[DUR_SWIFTNESS])
text += "swift, ";
- if (you.disease
- || you.species == SP_VAMPIRE && you.hunger_state < HS_HUNGRY)
- {
- text += "non-regenerating, ";
- }
-
if (you.attribute[ATTR_HELD])
text += "held, ";
@@ -1717,7 +1726,7 @@ std::string status_mut_abilities()
text += "\nYou are a cloud of diffuse gas.";
break;
}
-
+/*
const int to_hit = calc_your_to_hit( false ) * 2;
snprintf( info, INFO_SIZE,
@@ -1733,7 +1742,7 @@ std::string status_mut_abilities()
(to_hit < 100) ? "You feel comfortable with your ability to fight"
: "You feel confident with your ability to fight" );
text += info;
-
+*/
if (you.duration[DUR_DEATHS_DOOR])
text += "\nYou are standing in death's doorway.";
@@ -1777,6 +1786,10 @@ std::string status_mut_abilities()
have_any = true;
break;
+ case SP_VAMPIRE:
+ if (you.experience_level < 13 || you.hunger_state > HS_HUNGRY)
+ break;
+ // else fall-through
case SP_MUMMY:
text += "in touch with death";