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-06-01 21:38:06 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-01 21:38:06 +0000
commit33f39e1feb49c5f7ef0fc748e16195849627faf9 (patch)
treef3f8d209377cc52716735994388c50d75caa9827 /crawl-ref/source/abl-show.cc
parent4eb30eb42d7983767085a9a7bb45556b9b1665e3 (diff)
downloadcrawl-ref-33f39e1feb49c5f7ef0fc748e16195849627faf9.tar.gz
crawl-ref-33f39e1feb49c5f7ef0fc748e16195849627faf9.zip
* 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
Diffstat (limited to 'crawl-ref/source/abl-show.cc')
-rw-r--r--crawl-ref/source/abl-show.cc33
1 files changed, 23 insertions, 10 deletions
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<talent> 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<talent> 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 )