summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-05-20 10:23:49 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-05-20 10:23:49 +0000
commitb6ea55b755afff6cd8353896353272563498bfe2 (patch)
treea97cc0873d0bff74f1cbd890b007410fbae949bb /src/map/unit.c
parentc9061fad42f586fae9d9e5598d0bb050f4e38f73 (diff)
downloadhercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.gz
hercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.bz2
hercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.xz
hercules-b6ea55b755afff6cd8353896353272563498bfe2.zip
- Fixed Chase Walk having a deactivation cast time (should be instant)
- Changed status calc to allow value 0 stats; aegis allows negative values, but eA is unsigned in this regard, so ... git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10589 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/unit.c')
-rw-r--r--src/map/unit.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/map/unit.c b/src/map/unit.c
index d3738393e..b1612f986 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -946,35 +946,39 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int
switch(skill_num){
case ALL_RESURRECTION:
- if(battle_check_undead(tstatus->race,tstatus->def_ele)){
- temp=1;
+ if(battle_check_undead(tstatus->race,tstatus->def_ele)) {
+ temp = 1;
casttime = skill_castfix(src, PR_TURNUNDEAD, skill_lv);
} else if (!status_isdead(target))
return 0; //Can't cast on non-dead characters.
- break;
+ break;
case MO_FINGEROFFENSIVE:
if(sd)
casttime += casttime * ((skill_lv > sd->spiritball)? sd->spiritball:skill_lv);
- break;
+ break;
case MO_EXTREMITYFIST:
if (sc && sc->data[SC_COMBO].timer != -1 &&
- (sc->data[SC_COMBO].val1 == MO_COMBOFINISH ||
+ (sc->data[SC_COMBO].val1 == MO_COMBOFINISH ||
sc->data[SC_COMBO].val1 == CH_TIGERFIST ||
sc->data[SC_COMBO].val1 == CH_CHAINCRUSH))
casttime = 0;
temp = 1;
- break;
+ break;
+ case SA_SPELLBREAKER:
+ temp = 1;
+ break;
+ case ST_CHASEWALK:
+ if (sc && sc->data[ST_CHASEWALK].timer != -1)
+ casttime = 0;
+ break;
case TK_RUN:
if (sc && sc->data[SC_RUN].timer != -1)
casttime = 0;
- break;
- case SA_SPELLBREAKER:
- temp =1;
- break;
+ break;
case KN_CHARGEATK:
//Taken from jA: Casttime is increased by dist/3*100%
casttime+= casttime * (distance_bl(src,target)-1)/3;
- break;
+ break;
}
if (!(skill_get_castnodex(skill_num, skill_lv)&2))