summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monstuff.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/monstuff.cc')
-rw-r--r--crawl-ref/source/monstuff.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index f46c35fed0..5c65fb0b62 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -4069,7 +4069,10 @@ static void handle_monster_move(int i, monsters *monster)
}
if (monster->speed >= 100)
+ {
+ monster->speed_increment -= non_move_energy;
continue;
+ }
if (monster->type == MONS_ZOMBIE_SMALL
|| monster->type == MONS_ZOMBIE_LARGE
@@ -5293,8 +5296,7 @@ forget_it:
if (monster->x + mmov_x == you.x_pos
&& monster->y + mmov_y == you.y_pos)
{
- monster_attack( monster_index(monster) );
- ret = true;
+ ret = monster_attack( monster_index(monster) );
mmov_x = 0;
mmov_y = 0;
}
@@ -5334,12 +5336,14 @@ forget_it:
if (targmon != NON_MONSTER)
{
if (mons_aligned(monster_index(monster), targmon))
- monster_swaps_places(monster, mmov_x, mmov_y);
+ ret = monster_swaps_places(monster, mmov_x, mmov_y);
else
+ {
monsters_fight(monster_index(monster), targmon);
+ ret = true;
+ }
// If the monster swapped places, the work's already done.
- ret = true;
mmov_x = 0;
mmov_y = 0;
}