summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-act.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2009-12-19 22:51:57 +0100
committerAdam Borowski <kilobyte@angband.pl>2009-12-20 17:29:36 +0100
commit0cebeb433d68aea197f5ee1d2c38809b71c2e3dd (patch)
tree67cea0b5ab60075666e8ca110c9aa7035bfa0d79 /crawl-ref/source/mon-act.cc
parent7e4b512c4cf3b6269ddb3748760c8cf050b60b39 (diff)
downloadcrawl-ref-0cebeb433d68aea197f5ee1d2c38809b71c2e3dd.tar.gz
crawl-ref-0cebeb433d68aea197f5ee1d2c38809b71c2e3dd.zip
Iskenderun's Orb of Destruction
Diffstat (limited to 'crawl-ref/source/mon-act.cc')
-rw-r--r--crawl-ref/source/mon-act.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc
index 16c025e217..a3a46955ce 100644
--- a/crawl-ref/source/mon-act.cc
+++ b/crawl-ref/source/mon-act.cc
@@ -33,6 +33,7 @@
#include "mon-cast.h"
#include "mon-iter.h"
#include "mon-place.h"
+#include "mon-project.h"
#include "mgen_data.h"
#include "coord.h"
#include "mon-stuff.h"
@@ -1708,6 +1709,14 @@ static void _handle_monster_move(monsters *monster)
}
old_energy = monster->speed_increment;
+ if (mons_is_projectile(monster->type))
+ {
+ if (iood_act(*monster))
+ return;
+ monster->lose_energy(EUT_MOVE);
+ continue;
+ }
+
monster->shield_blocks = 0;
cloud_type cl_type;
@@ -3416,6 +3425,13 @@ static bool _monster_move(monsters *monster)
2 + random2(3), monster->kill_alignment(),
KILL_MON_MISSILE );
}
+
+ if (monster->type == MONS_ORB_OF_DESTRUCTION)
+ {
+ place_cloud( CLOUD_TLOC_ENERGY, monster->pos(),
+ 2 + random2(3), monster->kill_alignment(),
+ KILL_MON_MISSILE );
+ }
}
else
{