diff options
-rw-r--r-- | crawl-ref/source/enum.h | 3 | ||||
-rw-r--r-- | crawl-ref/source/files.cc | 12 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 3 | ||||
-rw-r--r-- | crawl-ref/source/mstuff2.cc | 43 |
4 files changed, 56 insertions, 5 deletions
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 0d4abc977d..456626204f 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -2440,6 +2440,9 @@ enum mon_spell_type MS_POISON_ARROW, // 60 MS_SUMMON_SMALL_MAMMALS, MS_SUMMON_MUSHROOMS, + MS_ICE_BOLT, + MS_MAGMA, + MS_SHOCK, MS_BERSERK_RAGE, MS_MIGHT, diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc index 21ce1e7122..b8b5aa518d 100644 --- a/crawl-ref/source/files.cc +++ b/crawl-ref/source/files.cc @@ -90,7 +90,6 @@ void save_level(int level_saved, bool was_a_labyrinth, char where_were_you); when finding spells to be remembered by a player's ghost: */ unsigned char search_order_conj[] = { -/* 0 */ SPELL_LEHUDIBS_CRYSTAL_SPEAR, SPELL_BOLT_OF_DRAINING, SPELL_AGONY, @@ -98,11 +97,12 @@ unsigned char search_order_conj[] = { SPELL_LIGHTNING_BOLT, SPELL_STICKY_FLAME, SPELL_ISKENDERUNS_MYSTIC_BLAST, + SPELL_BOLT_OF_MAGMA, + SPELL_ICE_BOLT, SPELL_BOLT_OF_FIRE, SPELL_BOLT_OF_COLD, SPELL_FIREBALL, SPELL_DELAYED_FIREBALL, -/* 10 */ SPELL_VENOM_BOLT, SPELL_BOLT_OF_IRON, SPELL_STONE_ARROW, @@ -110,6 +110,7 @@ unsigned char search_order_conj[] = { SPELL_THROW_FROST, SPELL_PAIN, SPELL_STING, + SPELL_SHOCK, SPELL_MAGIC_DART, SPELL_NO_SPELL, // end search }; @@ -1754,7 +1755,12 @@ unsigned char translate_spell(unsigned char spel) { case SPELL_TELEPORT_SELF: return (MS_TELEPORT); - + case SPELL_ICE_BOLT: + return (MS_ICE_BOLT); + case SPELL_SHOCK: + return (MS_SHOCK); + case SPELL_BOLT_OF_MAGMA: + return (MS_MAGMA); case SPELL_MAGIC_DART: return (MS_MMISSILE); case SPELL_FIREBALL: diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 5c82037c44..2e6e3b1930 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -1909,6 +1909,9 @@ bool ms_requires_tracer(int monspell) { case MS_BANISHMENT: case MS_COLD_BOLT: + case MS_ICE_BOLT: + case MS_SHOCK: + case MS_MAGMA: case MS_CONFUSE: case MS_CRYSTAL_SPEAR: case MS_DISINTEGRATE: diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc index d25706f97a..30509d8ead 100644 --- a/crawl-ref/source/mstuff2.cc +++ b/crawl-ref/source/mstuff2.cc @@ -1417,9 +1417,22 @@ bolt mons_spells( int spell_cast, int power ) beam.range = beam.rangeMax = 8; break; + case MS_MAGMA: + beam.name = "bolt of magma"; + beam.range = 5; + beam.rangeMax = 13; + beam.damage = dice_def( 3, 8 + power / 11 ); + beam.colour = RED; + beam.type = SYM_ZAP; + beam.thrower = KILL_MON; + beam.flavour = BEAM_LAVA; + beam.hit = 12 + power / 25; + beam.is_beam = true; + break; + case MS_FIRE_BOLT: beam.name = "bolt of fire"; - beam.range = 4; + beam.range = 5; beam.rangeMax = 13; beam.damage = dice_def( 3, 8 + power / 11 ); beam.colour = RED; @@ -1430,9 +1443,22 @@ bolt mons_spells( int spell_cast, int power ) beam.is_beam = true; break; + case MS_ICE_BOLT: + beam.name = "bolt of ice"; + beam.range = 5; + beam.rangeMax = 13; + beam.damage = dice_def( 3, 8 + power / 11 ); + beam.colour = WHITE; + beam.type = SYM_ZAP; + beam.thrower = KILL_MON; + beam.flavour = BEAM_ICE; + beam.hit = 12 + power / 25; + beam.is_beam = true; + break; + case MS_COLD_BOLT: beam.name = "bolt of cold"; - beam.range = 4; + beam.range = 5; beam.rangeMax = 13; beam.damage = dice_def( 3, 8 + power / 11 ); beam.colour = WHITE; @@ -1443,6 +1469,19 @@ bolt mons_spells( int spell_cast, int power ) beam.is_beam = true; break; + case MS_SHOCK: + beam.name = "zap"; + beam.range = 8; + beam.rangeMax = 16; + beam.damage = dice_def( 1, 8 + (power / 20) ); + beam.colour = LIGHTCYAN; + beam.type = SYM_ZAP; + beam.thrower = KILL_MON; + beam.flavour = BEAM_ELECTRICITY; + beam.hit = 12 + power / 20; + beam.is_beam = true; + break; + case MS_LIGHTNING_BOLT: beam.name = "bolt of lightning"; beam.range = 7; |