summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Feinberg <pleasingfung@gmail.com>2014-07-31 21:28:05 -0700
committerNicholas Feinberg <pleasingfung@gmail.com>2014-07-31 21:33:34 -0700
commit838f727e50f8fe6fd7f906f2bfb0d120ab0ac62a (patch)
tree52615508832f035db4ba660c55e84df6c84883f0
parent6a83109defc1ef0639d5a9296b1f1d8263a91c81 (diff)
downloadcrawl-ref-838f727e50f8fe6fd7f906f2bfb0d120ab0ac62a.tar.gz
crawl-ref-838f727e50f8fe6fd7f906f2bfb0d120ab0ac62a.zip
Add the new monster spell 'Corrosive Bolt'
As part of the continuing quest to add more acid to more places. For now, it's on deep elf sorcerers (replacing b. draining), tengu reavers (replacing one of the venom bolts in one of their spellbooks), and a./liches (replacing the bolt of draining in one of their spellbooks).
-rw-r--r--crawl-ref/source/dat/descript/spells.txt4
-rw-r--r--crawl-ref/source/enum.h2
-rw-r--r--crawl-ref/source/mon-cast.cc9
-rw-r--r--crawl-ref/source/mon-spll.h6
-rw-r--r--crawl-ref/source/spl-data.h13
-rw-r--r--crawl-ref/source/spl-zap.cc2
-rw-r--r--crawl-ref/source/zap-data.h16
7 files changed, 49 insertions, 3 deletions
diff --git a/crawl-ref/source/dat/descript/spells.txt b/crawl-ref/source/dat/descript/spells.txt
index 2b42c95e2c..6a7018868e 100644
--- a/crawl-ref/source/dat/descript/spells.txt
+++ b/crawl-ref/source/dat/descript/spells.txt
@@ -317,6 +317,10 @@ This spell rapidly accelerates the decomposition of any corpses lying around
the caster, emitting in the process a foul miasmic vapour, which eats away at
the life force of any creature it envelops.
%%%%
+Corrosive Bolt spell
+
+This spell hurls a penetrating bolt of acid.
+%%%%
Corrupt Body spell
This spell instills a corruption within a target, temporarily mutating their
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 8752837214..6a3e535ade 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -4200,6 +4200,7 @@ enum spell_type
SPELL_SUMMON_MANA_VIPER,
SPELL_PHANTOM_MIRROR,
SPELL_DRAIN_MAGIC,
+ SPELL_CORROSIVE_BOLT,
NUM_SPELLS
};
@@ -4365,6 +4366,7 @@ enum zap_type
ZAP_CRYSTAL_BOLT,
ZAP_TUKIMAS_DANCE,
ZAP_QUICKSILVER_BOLT,
+ ZAP_CORROSIVE_BOLT,
ZAP_RANDOM_BOLT_TRACER,
NUM_ZAPS
diff --git a/crawl-ref/source/mon-cast.cc b/crawl-ref/source/mon-cast.cc
index 12615c9313..31542b2afa 100644
--- a/crawl-ref/source/mon-cast.cc
+++ b/crawl-ref/source/mon-cast.cc
@@ -1075,6 +1075,15 @@ bolt mons_spell_beam(monster* mons, spell_type spell_cast, int power,
beam.flavour = BEAM_DRAIN_MAGIC;
break;
+ case SPELL_CORROSIVE_BOLT:
+ beam.colour = YELLOW;
+ beam.name = "corrosive bolt";
+ beam.damage = dice_def(3, 9 + power / 17);
+ beam.flavour = BEAM_ACID;
+ beam.hit = 17 + power / 25;
+ beam.is_beam = true;
+ break;
+
default:
if (check_validity)
{
diff --git a/crawl-ref/source/mon-spll.h b/crawl-ref/source/mon-spll.h
index c3ae8f9276..8d198bfc85 100644
--- a/crawl-ref/source/mon-spll.h
+++ b/crawl-ref/source/mon-spll.h
@@ -123,7 +123,7 @@
{ MST_LICH_III,
{
- SPELL_BOLT_OF_DRAINING,
+ SPELL_CORROSIVE_BOLT,
SPELL_SLOW,
SPELL_INVISIBILITY,
SPELL_THROW_ICICLE,
@@ -662,7 +662,7 @@
{ MST_DEEP_ELF_SORCERER,
{
- SPELL_BOLT_OF_DRAINING,
+ SPELL_CORROSIVE_BOLT,
SPELL_BANISHMENT,
SPELL_HASTE,
SPELL_SUMMON_DEMON,
@@ -2040,7 +2040,7 @@
{ MST_TENGU_REAVER_III,
{
SPELL_VENOM_BOLT,
- SPELL_VENOM_BOLT,
+ SPELL_CORROSIVE_BOLT,
SPELL_BATTLESPHERE,
SPELL_POISONOUS_CLOUD,
SPELL_BATTLESPHERE,
diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h
index dd5223fdef..5bbea4039f 100644
--- a/crawl-ref/source/spl-data.h
+++ b/crawl-ref/source/spl-data.h
@@ -3779,6 +3779,19 @@ static const struct spell_desc spelldata[] =
},
{
+ SPELL_CORROSIVE_BOLT, "Corrosive Bolt",
+ SPTYP_CONJURATION,
+ SPFLAG_DIR_OR_TARGET,
+ 6,
+ 200,
+ 6, 6,
+ 0,
+ NULL,
+ true,
+ false
+},
+
+{
SPELL_NO_SPELL, "nonexistent spell",
0,
SPFLAG_TESTING,
diff --git a/crawl-ref/source/spl-zap.cc b/crawl-ref/source/spl-zap.cc
index 2b8a5aacfd..1fbbdb0b7d 100644
--- a/crawl-ref/source/spl-zap.cc
+++ b/crawl-ref/source/spl-zap.cc
@@ -106,6 +106,8 @@ zap_type spell_to_zap(spell_type spell)
return ZAP_CRYSTAL_BOLT;
case SPELL_TUKIMAS_DANCE:
return ZAP_TUKIMAS_DANCE;
+ case SPELL_CORROSIVE_BOLT:
+ return ZAP_CORROSIVE_BOLT;
case SPELL_DEBUGGING_RAY:
return ZAP_DEBUGGING_RAY;
default:
diff --git a/crawl-ref/source/zap-data.h b/crawl-ref/source/zap-data.h
index d706bdc103..1f2002bf16 100644
--- a/crawl-ref/source/zap-data.h
+++ b/crawl-ref/source/zap-data.h
@@ -1166,6 +1166,22 @@ static const zap_info zap_data[] =
},
{
+ ZAP_CORROSIVE_BOLT,
+ "corrosive bolt",
+ 200,
+ new calcdice_calculator<1, 11, 3, 5>,
+ new tohit_calculator<10, 1, 25>,
+ YELLOW,
+ false,
+ BEAM_ACID,
+ DCHAR_FIRED_ZAP,
+ true,
+ true,
+ false,
+ 6
+},
+
+{
ZAP_RANDOM_BOLT_TRACER,
"random bolt tracer",
200,