From 3423bbab5a0f024eeafffe6b8260c8c088647db1 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Mon, 5 May 2008 08:39:20 +0000 Subject: First attempt at making vampire feeding interruptible. It doesn't work yet (I had "You stop feeding" followed by "You continue feeding" including full effects), but it's probably better to commit now anyway. Known potions of blood or porridge cannot be quaffed when engorged (alive). Also clean up blood potions check. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4871 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/item_use.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'crawl-ref/source/item_use.cc') diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index 2bb7f66607..a6c10853d4 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -3505,11 +3505,19 @@ void drink( int slot ) const bool alreadyknown = item_type_known(you.inv[item_slot]); + if (you.hunger_state == HS_ENGORGED && alreadyknown + && (is_blood_potion(you.inv[item_slot]) + || you.inv[item_slot].sub_type == POT_PORRIDGE)) + { + mpr("You are much too full right now."); + return; + } + // The "> 1" part is to reduce the amount of times that Xom is // stimulated when you are a low-level 1 trying your first unknown // potions on monsters. const bool dangerous = - player_in_a_dangerous_place() && (you.experience_level > 1); + (player_in_a_dangerous_place() && you.experience_level > 1); if (potion_effect(static_cast(you.inv[item_slot].sub_type), 40, alreadyknown)) @@ -3531,8 +3539,7 @@ void drink( int slot ) xom_is_stimulated(255); } - if (you.inv[item_slot].sub_type == POT_BLOOD - || you.inv[item_slot].sub_type == POT_BLOOD_COAGULATED) + if (is_blood_potion(you.inv[item_slot])) { // always drink oldest potion remove_oldest_blood_potion(you.inv[item_slot]); -- cgit v1.2.3-54-g00ecf