From 679f7173c733b733c431bf9424ab3e4de8e70fce Mon Sep 17 00:00:00 2001 From: dolorous Date: Fri, 6 Jun 2008 23:21:58 +0000 Subject: Consolidate summon_ugly_thing() into summon_ice_beast_etc(), and rename the latter summon_general_creature(). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5511 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/spl-cast.cc | 75 +++++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 29 deletions(-) (limited to 'crawl-ref/source/spl-cast.cc') diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index 8fb9bf1e97..9bd94d7473 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -1487,24 +1487,55 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) return (SPRET_ABORT); break; + // Remember that most holy spells don't yet use powc! + case SPELL_CALL_IMP: case SPELL_SUMMON_ICE_BEAST: - summon_ice_beast_etc(powc, MONS_ICE_BEAST, BEH_FRIENDLY, false); - break; + case SPELL_SUMMON_UGLY_THING: + case SPELL_SUMMON_GUARDIAN: + case SPELL_SUMMON_DAEVA: + { + monster_type mon = MONS_PROGRAM_BUG; - case SPELL_OZOCUBUS_ARMOUR: - ice_armour(powc, false); - break; + switch (spell) + { + case SPELL_CALL_IMP: + mon = (one_chance_in(3)) ? MONS_WHITE_IMP : + (one_chance_in(7)) ? MONS_SHADOW_IMP + : MONS_IMP; + break; - case SPELL_CALL_IMP: - { - monster_type mon = (one_chance_in(3)) ? MONS_WHITE_IMP : - (one_chance_in(7)) ? MONS_SHADOW_IMP - : MONS_IMP; + case SPELL_SUMMON_ICE_BEAST: + mon = MONS_ICE_BEAST; + break; + + case SPELL_SUMMON_UGLY_THING: + { + const int chance = std::max(6 - (powc / 12), 1); + mon = (one_chance_in(chance)) ? MONS_VERY_UGLY_THING + : MONS_UGLY_THING; + break; + } + + case SPELL_SUMMON_GUARDIAN: + mon = MONS_ANGEL; + break; - summon_ice_beast_etc(powc, mon, BEH_FRIENDLY, false); + case SPELL_SUMMON_DAEVA: + mon = MONS_DAEVA; + break; + + default: + break; + } + + summon_general_creature(powc, mon, BEH_FRIENDLY, false); break; } + case SPELL_OZOCUBUS_ARMOUR: + ice_armour(powc, false); + break; + case SPELL_REPEL_MISSILES: missile_prot(powc); break; @@ -1518,10 +1549,6 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) return (SPRET_ABORT); break; - case SPELL_SUMMON_GUARDIAN: - summon_ice_beast_etc(powc, MONS_ANGEL, BEH_FRIENDLY, false); - break; - case SPELL_THUNDERBOLT: if (!zapping(ZAP_LIGHTNING, powc, beam, true)) return (SPRET_ABORT); @@ -1532,12 +1559,6 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) return (SPRET_ABORT); break; - case SPELL_SUMMON_DAEVA: - summon_ice_beast_etc(powc, MONS_DAEVA, BEH_FRIENDLY, false); - break; - - // Remember that most holy spells above don't yet use powc! - case SPELL_TWISTED_RESURRECTION: cast_twisted(powc, BEH_FRIENDLY, you.pet_target); break; @@ -1589,8 +1610,8 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) case SPELL_SUMMON_DEMON: mpr("You open a gate to Pandemonium!"); - summon_ice_beast_etc(powc, summon_any_demon(DEMON_COMMON), - BEH_FRIENDLY, false); + summon_general_creature(powc, summon_any_demon(DEMON_COMMON), + BEH_FRIENDLY, false); break; case SPELL_DEMONIC_HORDE: @@ -1599,8 +1620,8 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) const int num = 7 + random2(5); for (int i = 0; i < num; ++i) { - summon_ice_beast_etc(powc, summon_any_demon(DEMON_LESSER), - BEH_FRIENDLY, false); + summon_general_creature(powc, summon_any_demon(DEMON_LESSER), + BEH_FRIENDLY, false); } } break; @@ -1843,10 +1864,6 @@ spret_type your_spells( spell_type spell, int powc, bool allow_fail ) return (SPRET_ABORT); break; - case SPELL_SUMMON_UGLY_THING: - summon_ugly_thing(powc); - break; - case SPELL_SHADOW_CREATURES: { mpr( "Wisps of shadow whirl around you..." ); -- cgit v1.2.3-54-g00ecf