summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/player.cc
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2009-11-13 14:51:31 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2009-11-13 14:54:40 +1000
commit6c05a8337e26b40f1cfebbf14cbc00ab0e2b6c8b (patch)
treebdeeadb24ca7a72c465ab32560f96ba5a95d4b16 /crawl-ref/source/player.cc
parentbe0551c2205ac189be5558447625642553c80dd3 (diff)
downloadcrawl-ref-6c05a8337e26b40f1cfebbf14cbc00ab0e2b6c8b.tar.gz
crawl-ref-6c05a8337e26b40f1cfebbf14cbc00ab0e2b6c8b.zip
New monster spell: Sleep. Give sleep to Aizul.
Unlike Ensorcelled Hibernation, Sleep checks MR only, rather than MR and cold resistance. It also does not check monsters having SLEEP_WEARY. It will not act on something that is already sleep.
Diffstat (limited to 'crawl-ref/source/player.cc')
-rw-r--r--crawl-ref/source/player.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 4ea7ac6b41..5233305c3a 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -7079,6 +7079,26 @@ void player::hibernate(int)
duration[DUR_SLEEP] = 3 + random2avg(5, 2);
}
+void player::put_to_sleep(int power)
+{
+ ASSERT(!crawl_state.arena);
+
+ if (duration[DUR_SLEEP])
+ {
+ mpr("You feel weary for a moment.");
+ return;
+ }
+
+ mpr("You fall asleep!");
+
+ stop_delay();
+ flash_colour = DARKGREY;
+ viewwindow(false);
+
+ // As above, do this after redraw.
+ duration[DUR_SLEEP] = 5 + random2avg(power / 10, 5);
+}
+
void player::awake()
{
ASSERT(!crawl_state.arena);