diff options
Diffstat (limited to 'crawl-ref/source/teleport.cc')
-rw-r--r-- | crawl-ref/source/teleport.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crawl-ref/source/teleport.cc b/crawl-ref/source/teleport.cc index ef9cf3a025..8b96ed6b35 100644 --- a/crawl-ref/source/teleport.cc +++ b/crawl-ref/source/teleport.cc @@ -140,6 +140,19 @@ void blink_range(monsters* mon) ASSERT(success); } +// Blink the monster close to its foe. +void blink_close(monsters* mon) +{ + actor* foe = mon->get_foe(); + if (!foe || !mon->can_see(foe)) + return; + coord_def dest = random_space_weighted(mon, foe, true); + if (dest.origin()) + return; + bool success = mon->blink_to(dest); + ASSERT(success); +} + bool random_near_space(const coord_def& origin, coord_def& target, bool allow_adjacent, bool restrict_los, bool forbid_dangerous, bool forbid_sanctuary) |