summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/player.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 3342804a75..df4f1314ca 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -6172,9 +6172,15 @@ void player::drain_stat(int stat, int amount, actor* attacker)
void player::rot(actor *who, int rotlevel, int immed_rot)
{
+ if (you.is_undead
+ && (you.species != SP_VAMPIRE || you.hunger_state <= HS_HUNGRY))
+ {
+ return;
+ }
+
if (rotlevel)
- rot_player( rotlevel );
-
+ rot_player(rotlevel);
+
if (immed_rot)
rot_hp(immed_rot);