summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-cast.cc
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2014-02-21 20:07:07 -0330
committerSteve Melenchuk <smelenchuk@gmail.com>2014-03-06 09:58:08 -0700
commitb69413d9fdc355ab0a9fd244e8869fbfa8f5a627 (patch)
tree48cf3b5716274a73a8da9d8a2175da2918028c39 /crawl-ref/source/spl-cast.cc
parent6055efdfb81ab5fbc2eed33690028b0966734df7 (diff)
downloadcrawl-ref-b69413d9fdc355ab0a9fd244e8869fbfa8f5a627.tar.gz
crawl-ref-b69413d9fdc355ab0a9fd244e8869fbfa8f5a627.zip
Overhaul Summon Dragon for players
Summon Dragon was hit extremely hard by the summon cap, as the effective strength of a summoned monster is superlinear with their quantity, and 2 dragons simply does not provide even remote offensive or defensive parity with equal level spells in other schools, such as tornado or shatter (since killing groups of monsters quickly is a pretty good form of defense). It is true that it could be used in consort with other summon spells to increase its impact, but the same is equally true of pairing tornado with other conjurations. A level 9 spell is a huge investment and its impact should be equally huge, which does not seem at all the case at present. When testing it against other equal-level spells in a range of realistic combat scenarios, Summon Dragon takes more time to defeat even modest encounters than its peers (often much more), while generally exposing the player to more danger in the process (both due to its delay in killing ranged threats and also that you can no longer form an effective screen of dragons with only 2 of them lasting more than a couple turns). In many cases, the difference is extreme. And the fact that the dragons last forever is of limited practical advantage (except in resisting monster abjuration). Raising its summon cap might address this somewhat, but rather than simply making it more spammable in the old sense, I have decided to give it behavior which further distinguishes it from common summon spells while making it suitably impactful for its spell level and the investment that represents. Summon Dragon is replaced by Dragon's Call, which gives the player a temporary status that will continuously summon in dragons adjacent to and attacking random hostiles within the player's LoS. These dragons have an individually short duration and will appear only while hostiles are present (so you cannot build up an army while outside of battle, nor carry your previous army from battle to battle unless they occur with only short delay between them). The delay between summoning each new dragon is proportional to how many you already have, meaning that they will arrive more quickly when you have none, and much more slowly while several are already active. Each new dragon summoned costs the caster a small amount of mp, and the effect will end if you run out. Also, it generates a continuous amount of noise while the status lasts. Finally, there is a somewhat lengthly cooldown between times the effect can be activated. The effect is definitely strong, as befits a level 9 spell, but interestingly it also excells at slightly different situations than other level 9 spells do. It is distinctly less powerful against massed groups of foes, but potentially stronger against a series of moderate to small encounters back-to-back due to its duration. And it definitely (to me, anyway) feels splashy in a way that a level 9 spell ought to. Of course, numbers are still provisional, as always. (For now I have retained the original Summon Dragon as a monster spell, as much of the additional complexity of Dragon's Call does not add much to a monster version over just summoning a couple more dragons in the usual manner)
Diffstat (limited to 'crawl-ref/source/spl-cast.cc')
-rw-r--r--crawl-ref/source/spl-cast.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc
index 90084fa0e5..c2f4ccba35 100644
--- a/crawl-ref/source/spl-cast.cc
+++ b/crawl-ref/source/spl-cast.cc
@@ -1606,6 +1606,9 @@ static spret_type _do_cast(spell_type spell, int powc,
case SPELL_SUMMON_DRAGON:
return cast_summon_dragon(&you, powc, god, fail);
+ case SPELL_DRAGON_CALL:
+ return cast_dragon_call(powc, fail);
+
case SPELL_SUMMON_HYDRA:
return cast_summon_hydra(&you, powc, god, fail);