summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/teleport.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2011-12-22 01:00:54 +0100
committerAdam Borowski <kilobyte@angband.pl>2011-12-22 01:00:54 +0100
commit53de47d6470cb6b1ec75f30190e9af11bae0872d (patch)
treecbb289c72e5a25dab4fc89e40c85ffd28707bef3 /crawl-ref/source/teleport.cc
parent90b5e0f82c24d5493a490ebc6a9fbb2076bb163c (diff)
parent570a689e703203281f9f6844be6d49ab269ae164 (diff)
downloadcrawl-ref-53de47d6470cb6b1ec75f30190e9af11bae0872d.tar.gz
crawl-ref-53de47d6470cb6b1ec75f30190e9af11bae0872d.zip
Merge branch 'constriction'
Diffstat (limited to 'crawl-ref/source/teleport.cc')
-rw-r--r--crawl-ref/source/teleport.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/crawl-ref/source/teleport.cc b/crawl-ref/source/teleport.cc
index b26be7d552..cb6b18aebf 100644
--- a/crawl-ref/source/teleport.cc
+++ b/crawl-ref/source/teleport.cc
@@ -69,6 +69,20 @@ bool monster::blink_to(const coord_def& dest, bool quiet)
if (!move_to_pos(dest))
return (false);
+ // handle constriction, if any
+ if (is_constricted())
+ {
+ if (constricted_by == MHITYOU)
+ player_teleport_to_monster(this, dest);
+ else
+ monster_teleport_to_player(constricted_by, dest);
+ }
+ for (int i = 0; i < 8; i++)
+ if (constricting[i] == MHITYOU)
+ player_teleport_to_monster(this, dest);
+ else if (constricting[i] != NON_ENTITY)
+ monster_teleport_to_player(constricting[i], dest);
+
// Leave a purple cloud.
if (!jump)
place_cloud(CLOUD_TLOC_ENERGY, oldplace, 1 + random2(3), this);