diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2009-11-13 14:51:31 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2009-11-13 14:54:40 +1000 |
commit | 6c05a8337e26b40f1cfebbf14cbc00ab0e2b6c8b (patch) | |
tree | bdeeadb24ca7a72c465ab32560f96ba5a95d4b16 /crawl-ref/source/beam.cc | |
parent | be0551c2205ac189be5558447625642553c80dd3 (diff) | |
download | crawl-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.cc | 36 |
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"); |