diff options
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/it_use3.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/spells3.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/spl-cast.cc | 20 |
3 files changed, 21 insertions, 5 deletions
diff --git a/crawl-ref/source/it_use3.cc b/crawl-ref/source/it_use3.cc index ca17d526fe..53f4f68da3 100644 --- a/crawl-ref/source/it_use3.cc +++ b/crawl-ref/source/it_use3.cc @@ -225,7 +225,9 @@ void special_wielded() case SPWLD_SHADOW: if (random2(8) <= player_spec_death()) { - summon_shadows(0, false, false, true); + create_monster( + mgen_data(MONS_SHADOW, BEH_FRIENDLY, + 2, you.pos(), you.pet_target)); did_god_conduct(DID_NECROMANCY, 1); } diff --git a/crawl-ref/source/spells3.h b/crawl-ref/source/spells3.h index 0c6124ded5..854438e4bd 100644 --- a/crawl-ref/source/spells3.h +++ b/crawl-ref/source/spells3.h @@ -113,8 +113,6 @@ bool remove_curse(bool suppress_msg); * *********************************************************************** */ bool cast_sublimation_of_blood(int pow); -bool summon_shadows(int pow, bool god_gift = false, bool force_hostile = false, - bool quiet = false); bool cast_call_imp(int pow, bool god_gift = false); bool summon_lesser_demon(int pow, bool god_gift = false, bool quiet = false); bool summon_common_demon(int pow, bool god_gift = false, bool quiet = false); diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index 44d7ad56c4..544b7ebfa7 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -2851,9 +2851,25 @@ static void _miscast_necromancy(int severity, const char* cause) switch (random2(3)) { case 0: - // Summon 1-3 shadows. - summon_shadows(random2(61), god_gift, true); + { + bool success = false; + + for (int i = random2(3); i >= 0; --i) + { + if (create_monster( + mgen_data::alert_hostile_at(MONS_SHADOW, + you.pos(), 2, flags)) != -1) + { + success = true; + } + } + + if (success) + mpr("Flickering shadows surround you."); + else + canned_msg(MSG_NOTHING_HAPPENS); break; + } case 1: if (!player_prot_life() && one_chance_in(3)) |