summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spells1.cc
diff options
context:
space:
mode:
authorStefan O'Rear <stefanor@cox.net>2009-11-02 21:43:25 -0800
committerStefan O'Rear <stefanor@cox.net>2009-11-02 21:43:25 -0800
commitdb5642e2d88754b98e2f96ae6defdb7b8b8f804c (patch)
treef9ebb607f2c2828187eafdec6b6bba8fea2ddb44 /crawl-ref/source/spells1.cc
parent8b4c163569ea3a6c18e7a3eff19a2bce2ece8536 (diff)
downloadcrawl-ref-db5642e2d88754b98e2f96ae6defdb7b8b8f804c.tar.gz
crawl-ref-db5642e2d88754b98e2f96ae6defdb7b8b8f804c.zip
Greatly upgrade player hellfire
It's now smite targetted with maximum 6d26 damage. Have fun.
Diffstat (limited to 'crawl-ref/source/spells1.cc')
-rw-r--r--crawl-ref/source/spells1.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index 9c0feb4a40..54bf45bd90 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -299,6 +299,49 @@ void cast_fire_storm(int pow, bolt &beam)
viewwindow(true, false);
}
+// No setup/cast split here as monster hellfire is completely different.
+// Sad, but needed to maintain balance - monster hellfirers get asymmetric
+// torment too.
+bool cast_hellfire_burst(int pow, bolt &beam)
+{
+ beam.name = "burst of hellfire";
+ beam.aux_source = "burst of hellfire";
+ beam.ex_size = 1;
+ beam.flavour = BEAM_HELLFIRE;
+ beam.real_flavour = beam.flavour;
+ beam.type = dchar_glyph(DCHAR_FIRED_BURST);
+ beam.colour = RED;
+ beam.beam_source = MHITYOU;
+ beam.thrower = KILL_YOU;
+ beam.obvious_effect = false;
+ beam.is_beam = false;
+ beam.is_explosion = true;
+ beam.ench_power = pow; // used for radius
+ beam.hit = 20 + pow / 10;
+ beam.damage = calc_dice(6, 30 + pow);
+ beam.can_see_invis = you.can_see_invisible();
+ beam.smart_monster = true;
+ beam.attitude = ATT_FRIENDLY;
+ beam.friend_info.count = 0;
+ beam.is_tracer = true;
+
+ beam.explode(false);
+
+ if (beam.beam_cancelled)
+ {
+ canned_msg(MSG_OK);
+ return (false);
+ }
+
+ mpr("You call forth a pillar of hellfire!");
+
+ beam.is_tracer = false;
+ beam.in_explosion_phase = false;
+ beam.explode(true);
+
+ return (true);
+}
+
bool _lightning_los(const coord_def& source, const coord_def& target)
{
// XXX: currently bounded by circular LOS radius;