summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-16 13:56:17 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-16 13:56:17 +0000
commit8ff8d0f9ee285452ba7820c3fb333eddb042272b (patch)
tree167718cd574dbaa83ed3c4baf4ede65a0c5266f3 /src/map/unit.c
parente2d3ae9dc682afc1ac34a536006ef79370040b04 (diff)
downloadhercules-8ff8d0f9ee285452ba7820c3fb333eddb042272b.tar.gz
hercules-8ff8d0f9ee285452ba7820c3fb333eddb042272b.tar.bz2
hercules-8ff8d0f9ee285452ba7820c3fb333eddb042272b.tar.xz
hercules-8ff8d0f9ee285452ba7820c3fb333eddb042272b.zip
- Added function unit_escape to simplify the run-away code a bit in the mob ai.
- Some cleaning on the mob_ai to enable mobs to run away from their current target when they are rude-attacked by them. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9658 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/unit.c')
-rw-r--r--src/map/unit.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/map/unit.c b/src/map/unit.c
index 8684c0732..a03b24d74 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -413,6 +413,19 @@ int unit_run(struct block_list *bl)
return 1;
}
+//Makes bl attempt to run dist cells away from target. Uses hard-paths.
+int unit_escape(struct block_list *bl, struct block_list *target, int dist)
+{
+ int dir = map_calc_dir(target, bl->x, bl->y);
+ while (dist > 0 && map_getcell(bl->m,
+ bl->x + dist*dirx[dir], bl->y + dist*diry[dir],
+ CELL_CHKNOREACH))
+ dist--;
+ return (dist > 0 && unit_walktoxy(bl,
+ bl->x + dist*dirx[dir], bl->y + dist*diry[dir],
+ 0));
+}
+
//Instant warp function.
int unit_movepos(struct block_list *bl,int dst_x,int dst_y, int easy, int checkpath)
{