From 0073de23aefbc5bd21d6e5471bc830654fb07b33 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Fri, 7 Mar 2008 19:57:49 +0000 Subject: 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 --- crawl-ref/source/abl-show.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'crawl-ref/source/abl-show.cc') 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 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 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 ); } -- cgit v1.2.3-54-g00ecf