diff options
author | Adam Borowski <kilobyte@angband.pl> | 2011-12-22 01:00:54 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2011-12-22 01:00:54 +0100 |
commit | 53de47d6470cb6b1ec75f30190e9af11bae0872d (patch) | |
tree | cbb289c72e5a25dab4fc89e40c85ffd28707bef3 /crawl-ref/source/teleport.cc | |
parent | 90b5e0f82c24d5493a490ebc6a9fbb2076bb163c (diff) | |
parent | 570a689e703203281f9f6844be6d49ab269ae164 (diff) | |
download | crawl-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.cc | 14 |
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); |