summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abl-show.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/abl-show.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/abl-show.cc')
-rw-r--r--crawl-ref/source/abl-show.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 4b25ad308f..61c87c46a8 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -825,10 +825,16 @@ bool activate_ability()
std::vector<talent> talents = your_talents(false);
if ( talents.empty() )
{
- mpr("Sorry, you're not good enough to have a special ability.");
+ // Vampires can't turn into bats when full to the rim with blood.
+ if (you.species == SP_VAMPIRE && you.experience_level >= 3)
+ mpr("Sorry, you're too full to transform right now.");
+ else
+ mpr("Sorry, you're not good enough to have a special ability.");
+
crawl_state.zero_turns_taken();
return false;
}
+
if ( you.duration[DUR_CONF] )
{
talents = your_talents(true);
@@ -900,6 +906,7 @@ static bool activate_talent(const talent& tal)
case ABIL_END_TRANSFORMATION:
case ABIL_DELAYED_FIREBALL:
case ABIL_MUMMY_RESTORATION:
+ case ABIL_TRAN_BAT:
hungerCheck = false;
break;
default:
@@ -1991,15 +1998,16 @@ std::vector<talent> your_talents( bool check_confused )
(you.species == SP_BLACK_DRACONIAN) ? ABIL_BREATHE_LIGHTNING :
(you.species == SP_PURPLE_DRACONIAN) ? ABIL_BREATHE_POWER :
(you.species == SP_PALE_DRACONIAN) ? ABIL_BREATHE_STEAM :
- (you.species == SP_MOTTLED_DRACONIAN)? ABIL_BREATHE_STICKY_FLAME:
- ABIL_NON_ABILITY);
+ (you.species == SP_MOTTLED_DRACONIAN)? ABIL_BREATHE_STICKY_FLAME
+ : ABIL_NON_ABILITY);
if (ability != ABIL_NON_ABILITY)
add_talent(talents, ability, check_confused );
}
}
- if (you.species == SP_VAMPIRE && you.experience_level >= 3 &&
- you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT)
+ if (you.species == SP_VAMPIRE && you.experience_level >= 3
+ && you.hunger_state < HS_ENGORGED
+ && you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT)
{
add_talent(talents, ABIL_TRAN_BAT, check_confused );
}