summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2009-10-14 12:59:32 +0200
committerAdam Borowski <kilobyte@angband.pl>2009-10-14 13:00:39 +0200
commited19f0ca7d04df240bbdeb3c120f53e8843fb14b (patch)
tree9b8cf85f2f8c77fc20ad4f9e8e967e83c1510193 /crawl-ref/source/beam.cc
parenteb61c8b8f8610c5720ac992db7d390e7f2283ffe (diff)
downloadcrawl-ref-ed19f0ca7d04df240bbdeb3c120f53e8843fb14b.tar.gz
crawl-ref-ed19f0ca7d04df240bbdeb3c120f53e8843fb14b.zip
Let fireballs (but not fireball explosions) ignite trees as well.
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc40
1 files changed, 22 insertions, 18 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 83b68b9b82..2c22bed2e4 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1709,34 +1709,40 @@ void bolt::fire_wall_effect()
return;
}
- if (!is_superhot())
+ if (feat == DNGN_WAX_WALL)
{
- // No actual effect.
- if (flavour != BEAM_HELLFIRE && feat == DNGN_WAX_WALL)
+ if (!is_superhot())
{
- if (see_grid(pos()))
+ // No actual effect.
+ if (flavour != BEAM_HELLFIRE && feat == DNGN_WAX_WALL)
{
- emit_message(MSGCH_PLAIN,
- "The wax appears to soften slightly.");
+ if (see_grid(pos()))
+ {
+ emit_message(MSGCH_PLAIN,
+ "The wax appears to soften slightly.");
+ }
+ else if (player_can_smell())
+ emit_message(MSGCH_PLAIN, "You smell warm wax.");
}
- else if (player_can_smell())
- emit_message(MSGCH_PLAIN, "You smell warm wax.");
}
- }
- else
- {
- // Destroy the wall.
- grd(pos()) = DNGN_FLOOR;
- if (feat == DNGN_WAX_WALL)
+ else
{
+ // Destroy the wall.
+ grd(pos()) = DNGN_FLOOR;
if (see_grid(pos()))
emit_message(MSGCH_PLAIN, "The wax bubbles and burns!");
else if (player_can_smell())
emit_message(MSGCH_PLAIN, "You smell burning wax.");
place_cloud(CLOUD_FIRE, pos(), random2(10)+15, whose_kill(), killer());
+ obvious_effect = true;
}
- else
+ }
+ else
+ {
+ if (is_superhot() || name == "fireball")
{
+ // Destroy the wall.
+ grd(pos()) = DNGN_FLOOR;
if (see_grid(pos()))
emit_message(MSGCH_PLAIN, "The tree burns like a torch!");
else if (player_can_smell())
@@ -1746,10 +1752,8 @@ void bolt::fire_wall_effect()
else if (whose_kill() == KC_FRIENDLY)
did_god_conduct(DID_ALLY_KILLED_PLANT, 1, effect_known, 0);
place_cloud(CLOUD_FOREST_FIRE, pos(), random2(30)+25, whose_kill(), killer(), 5);
+ obvious_effect = true;
}
-
-
- obvious_effect = true;
}
finish_beam();
}