diff options
author | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-25 18:55:40 -0800 |
---|---|---|
committer | Matthew Cline <zelgadis@sourceforge.net> | 2009-11-25 18:57:40 -0800 |
commit | 0cc3c2ec15a7855d4cbd746ebe7a8f8139aaa4fc (patch) | |
tree | 2500c3fe398e43b3a2832e04f18988e089697742 /crawl-ref/source | |
parent | c34814cfad40cc842a158b6aa910db2b4be381fa (diff) | |
download | crawl-ref-0cc3c2ec15a7855d4cbd746ebe7a8f8139aaa4fc.tar.gz crawl-ref-0cc3c2ec15a7855d4cbd746ebe7a8f8139aaa4fc.zip |
Bug #35: auto-exlcusions from monster clouds
Monsters leaving behind trails of clouds (like fire elementals) or
leaving clouds on death (like simulacrums) were causing auto-exclusions
to be placed, as if they were generated by fog machines; fixed.
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/mon-act.cc | 9 | ||||
-rw-r--r-- | crawl-ref/source/mon-stuff.cc | 8 |
2 files changed, 10 insertions, 7 deletions
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index d930815296..c1d45b9eab 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -2302,7 +2302,8 @@ static bool _monster_eat_item(monsters *monster, bool nearby) if (death_ooze_ate_corpse) { place_cloud ( CLOUD_MIASMA, monster->pos(), - 4 + random2(5), monster->kill_alignment() ); + 4 + random2(5), monster->kill_alignment(), + KILL_MON_MISSILE ); } if (death_ooze_ate_good) @@ -3403,14 +3404,16 @@ static bool _monster_move(monsters *monster) || monster->type == MONS_FIRE_ELEMENTAL) { place_cloud( CLOUD_FIRE, monster->pos(), - 2 + random2(4), monster->kill_alignment() ); + 2 + random2(4), monster->kill_alignment(), + KILL_MON_MISSILE ); } if (monster->type == MONS_ROTTING_DEVIL || monster->type == MONS_CURSE_TOE) { place_cloud( CLOUD_MIASMA, monster->pos(), - 2 + random2(3), monster->kill_alignment() ); + 2 + random2(3), monster->kill_alignment(), + KILL_MON_MISSILE ); } } else diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc index c24de9ed47..e0a6cdb023 100644 --- a/crawl-ref/source/mon-stuff.cc +++ b/crawl-ref/source/mon-stuff.cc @@ -1084,7 +1084,7 @@ void _monster_die_cloud(const monsters* monster, bool corpse, bool silent, if (cloud != CLOUD_NONE) { place_cloud(cloud, monster->pos(), 1 + random2(3), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } } @@ -1539,7 +1539,7 @@ int monster_die(monsters *monster, killer_type killer, && !submerged) { place_cloud(CLOUD_FIRE, monster->pos(), 2 + random2(4), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } if (killer == KILL_RESET) @@ -1558,7 +1558,7 @@ int monster_die(monsters *monster, killer_type killer, if (!wizard && !mons_reset && !submerged) { place_cloud(CLOUD_COLD, monster->pos(), 2 + random2(4), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); } if (killer == KILL_RESET) @@ -3731,7 +3731,7 @@ void monster_teleport(monsters *monster, bool instan, bool silent) // Leave a purple cloud. place_cloud(CLOUD_TLOC_ENERGY, oldplace, 1 + random2(3), - monster->kill_alignment()); + monster->kill_alignment(), KILL_MON_MISSILE); monster->check_redraw(oldplace); monster->apply_location_effects(oldplace); |