diff options
author | DracoOmega <draco_omega@live.com> | 2014-02-21 20:07:07 -0330 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-03-06 09:58:08 -0700 |
commit | b69413d9fdc355ab0a9fd244e8869fbfa8f5a627 (patch) | |
tree | 48cf3b5716274a73a8da9d8a2175da2918028c39 /crawl-ref/source/spl-summoning.h | |
parent | 6055efdfb81ab5fbc2eed33690028b0966734df7 (diff) | |
download | crawl-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-summoning.h')
-rw-r--r-- | crawl-ref/source/spl-summoning.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crawl-ref/source/spl-summoning.h b/crawl-ref/source/spl-summoning.h index 0dcda74adc..9ab687e6a1 100644 --- a/crawl-ref/source/spl-summoning.h +++ b/crawl-ref/source/spl-summoning.h @@ -70,6 +70,9 @@ coord_def find_gateway_location(actor* caster); spret_type cast_summon_forest(actor* caster, int pow, god_type god, bool fail); spret_type cast_summon_guardian_golem(int pow, god_type god, bool fail); +spret_type cast_dragon_call(int pow, bool fail); +void do_dragon_call(int time); + int animate_remains(const coord_def &a, corpse_type class_allowed, beh_type beha, unsigned short hitting, actor *as = NULL, string nas = "", |