summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.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/beam.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/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc36
1 files changed, 34 insertions, 2 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index b5f7e83590..b5282066f7 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1322,6 +1322,22 @@ const zap_info zap_data[] = {
false,
false,
0
+ },
+
+ {
+ ZAP_SLEEP,
+ "0",
+ 100,
+ NULL,
+ NULL,
+ BLACK,
+ true,
+ BEAM_SLEEP,
+ DCHAR_SPACE,
+ false,
+ false,
+ false,
+ 0
}
};
@@ -3794,6 +3810,10 @@ void bolt::affect_player_enchantment()
you.hibernate(ench_power);
break;
+ case BEAM_SLEEP:
+ you.put_to_sleep(ench_power);
+ break;
+
case BEAM_CORONA:
you.backlight();
obvious_effect = true;
@@ -5317,6 +5337,17 @@ mon_resist_type bolt::apply_enchantment_to_monster(monsters* mon)
}
return (MON_AFFECTED);
+ case BEAM_SLEEP:
+ if (mon->has_ench(ENCH_SLEEPY))
+ return (MON_UNAFFECTED);
+
+ if (mon->add_ench(mon_enchant(ENCH_SLEEPY, 0, whose_kill())))
+ {
+ if (simple_monster_message(mon, " falls asleep!"))
+ obvious_effect = true;
+ }
+ return (MON_AFFECTED);
+
case BEAM_INVISIBILITY:
{
// Store the monster name before it becomes an "it" -- bwr
@@ -6135,9 +6166,10 @@ std::string beam_type_name(beam_type type)
case BEAM_ENSLAVE_DEMON: return ("enslave demon");
case BEAM_BLINK: return ("blink");
case BEAM_PETRIFY: return ("petrify");
- case BEAM_CORONA: return ("backlight");
+ case BEAM_CORONA: return ("backlight");
case BEAM_PORKALATOR: return ("porkalator");
- case BEAM_HIBERNATION: return ("sleep");
+ case BEAM_HIBERNATION: return ("hibernation");
+ case BEAM_SLEEP: return ("sleep");
case BEAM_BERSERK: return ("berserk");
case BEAM_POTION_BLACK_SMOKE: return ("black smoke");
case BEAM_POTION_GREY_SMOKE: return ("grey smoke");