From 33f39e1feb49c5f7ef0fc748e16195849627faf9 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sun, 1 Jun 2008 21:38:06 +0000 Subject: * Fix some issues with the new food colourings, and make it respect Vampires' drinking habits. * Allow other channels than MSGCH_TUTORIAL to use formatted strings and use it to send a coloured string through the butcher prompt, thus visibly setting off dangerous corpses. I'd like normal corpses (no patterns in food_colouring.txt matching) not to be highlighted at all, but they're currently shown in lightgrey, that will have to be improved. * Fix Vampire mutation screen displaying poison resistance wrongly. * Add a new option force_more_message whose syntax is copied from travel_stop_message. Any message containing a regex within this listing will enforce a -More- prompt. By default, it's only enabled for "You start to lose your buoyoncy." * Tweak the messages for Kenku flying to fix 1823833. * Make Xom be amused at players teleporting in a labyrinth or when becoming (Near) Starving while in a labyrinth and with little food at their disposal. Yes, it's one of those "Something for everyone" commits. :D git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5416 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/abl-show.cc | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 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 d86c658715..b71a0e3b7b 100644 --- a/crawl-ref/source/abl-show.cc +++ b/crawl-ref/source/abl-show.cc @@ -822,9 +822,18 @@ bool activate_ability() std::vector talents = your_talents(false); if ( talents.empty() ) { - // Vampires can't turn into bats when full of blood. + // Give messages if the character cannot use innate talents right now. + // * Vampires can't turn into bats when full of blood. + // * Permanent flying (Kenku) cannot be turned off. if (you.species == SP_VAMPIRE && you.experience_level >= 3) mpr("Sorry, you're too full to transform right now."); + else if (you.species == SP_KENKU && you.experience_level >= 5) + { + if (you.flight_mode() == FL_FLY) + mpr("You're already flying!"); + else if (you.flight_mode() == FL_LEVITATE) + mpr("You can only start flying from the ground."); + } else mpr("Sorry, you're not good enough to have a special ability."); @@ -2151,19 +2160,23 @@ std::vector your_talents( bool check_confused ) _add_talent(talents, ABIL_EVOKE_TURN_INVISIBLE, check_confused ); } - //jmf: "upgrade" for draconians -- expensive flight - // note: this ability only applies to this counter + // jmf: "upgrade" for draconians -- expensive flight + // Note: This ability only applies to this counter. if (player_equip( EQ_RINGS, RING_LEVITATION ) || player_equip_ego_type( EQ_BOOTS, SPARM_LEVITATION ) || scan_randarts( RAP_LEVITATE )) { - // Now you can only turn levitation off if you have an - // activatable item. Potions and miscast effects will - // have to time out (this makes the miscast effect actually - // a bit annoying). -- bwr - _add_talent(talents, you.duration[DUR_LEVITATION] ? - ABIL_EVOKE_STOP_LEVITATING : ABIL_EVOKE_LEVITATE, - check_confused); + // Has no effect on permanently flying Kenku. + if (!you.permanent_levitation() && you.flight_mode() != FL_FLY) + { + // Now you can only turn levitation off if you have an + // activatable item. Potions and miscast effects will + // have to time out (this makes the miscast effect actually + // a bit annoying). -- bwr + _add_talent(talents, you.duration[DUR_LEVITATION] ? + ABIL_EVOKE_STOP_LEVITATING : ABIL_EVOKE_LEVITATE, + check_confused); + } } if (player_equip( EQ_RINGS, RING_TELEPORTATION ) -- cgit v1.2.3-54-g00ecf