summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 867555aa6..b490a66c3 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5873,16 +5873,26 @@ static int skill_castend_id(int tid, int64 tick, int id, intptr_t data)
if (target && target->m == src->m) {
//Move character to target anyway.
int dir, x, y;
+ int dist = 3; // number of cells that asura caster will walk
+
dir = map->calc_dir(src,target->x,target->y);
- if( dir > 0 && dir < 4) x = -2;
- else if( dir > 4 ) x = 2;
- else x = 0;
- if( dir > 2 && dir < 6 ) y = -2;
- else if( dir == 7 || dir < 2 ) y = 2;
- else y = 0;
- if (unit->movepos(src, src->x+x, src->y+y, 1, 1)) {
+ if (dir > 0 && dir < 4)
+ x = -dist;
+ else if (dir > 4)
+ x = dist;
+ else
+ x = 0;
+
+ if (dir > 2 && dir < 6)
+ y = -dist;
+ else if (dir == 7 || dir < 2)
+ y = dist;
+ else
+ y = 0;
+
+ if (unit->movepos(src, src->x + x, src->y + y, 1, 1) == 1) {
//Display movement + animation.
- clif->slide(src,src->x,src->y);
+ clif->slide(src, src->x, src->y);
clif->spiritball(src);
}
// "Skill Failed" message was already shown when checking that target is invalid