summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-cast.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-06 23:21:58 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-06 23:21:58 +0000
commit679f7173c733b733c431bf9424ab3e4de8e70fce (patch)
tree374f64f546a483f0ef8fa61022c1eeeb5f7131e3 /crawl-ref/source/spl-cast.cc
parent699a10feb706349c09dc5037ae8f2e8c0335f13b (diff)
downloadcrawl-ref-679f7173c733b733c431bf9424ab3e4de8e70fce.tar.gz
crawl-ref-679f7173c733b733c431bf9424ab3e4de8e70fce.zip
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
Diffstat (limited to 'crawl-ref/source/spl-cast.cc')
-rw-r--r--crawl-ref/source/spl-cast.cc75
1 files changed, 46 insertions, 29 deletions
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..." );