diff options
-rw-r--r-- | crawl-ref/source/spells4.cc | 26 | ||||
-rw-r--r-- | crawl-ref/source/spl-data.h | 2 |
2 files changed, 22 insertions, 6 deletions
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc index 21052d9ba4..ddea6a6dd4 100644 --- a/crawl-ref/source/spells4.cc +++ b/crawl-ref/source/spells4.cc @@ -1841,12 +1841,28 @@ bool cast_fragmentation(int pow, const dist& spd) break; default: - beam.damage.num = 1; // to mark that a monster was targetted + // Petrified monsters can be exploded. + if (mons_is_petrified(&menv[mon])) + { + explode = true; + beam.ex_size = 2; + beam.name = "blast of petrified fragments"; + beam.colour = menv[mon].colour; + beam.damage.num = 3; + if (player_hurt_monster(mon, roll_dice(beam.damage))) + beam.damage.num++; + break; + } + else + { + // Mark that a monster was targetted. + beam.damage.num = 1; - // Yes, this spell does lousy damage if the - // monster isn't susceptible. -- bwr - player_hurt_monster(mon, roll_dice(1, 5 + pow / 25)); - goto do_terrain; + // Yes, this spell does lousy damage if the monster + // isn't susceptible. -- bwr + player_hurt_monster(mon, roll_dice(1, 5 + pow / 25)); + goto do_terrain; + } } mpr(explode_msg.c_str()); diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h index b01d3acf13..7c6c1a678d 100644 --- a/crawl-ref/source/spl-data.h +++ b/crawl-ref/source/spl-data.h @@ -409,7 +409,7 @@ { SPELL_PETRIFY, "Petrify", - SPTYP_ENCHANTMENT | SPTYP_TRANSMIGRATION, + SPTYP_ENCHANTMENT | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 4, 200, |