diff options
author | shennetsind <ind@henn.et> | 2013-12-07 14:06:21 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-12-07 14:06:21 -0200 |
commit | 53b2d771beebbb358bf88cad47317965876eb0b4 (patch) | |
tree | 3b300db9213f57ba040e47e5d50f69a9f8f7eaf5 /src | |
parent | 84af31d2bd4a23d967003d70e1f53049eadfda24 (diff) | |
download | hercules-53b2d771beebbb358bf88cad47317965876eb0b4.tar.gz hercules-53b2d771beebbb358bf88cad47317965876eb0b4.tar.bz2 hercules-53b2d771beebbb358bf88cad47317965876eb0b4.tar.xz hercules-53b2d771beebbb358bf88cad47317965876eb0b4.zip |
Fixed angra manyu aspd base calc
fixed as in, it now skips the thing entirely, matching official behavior and no longer affected by job-specific modifiers.
Thanks to Yommy.
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src')
-rw-r--r-- | src/map/itemdb.h | 1 | ||||
-rw-r--r-- | src/map/status.c | 15 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 1030035ea..d74b92d4b 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -70,6 +70,7 @@ enum item_itemid { ITEMID_PHRACON = 1010, ITEMID_EMVERETARCON = 1011, ITEMID_TRAP = 1065, + ITEMID_ANGRA_MANYU = 1599, ITEMID_STRANGE_EMBRYO = 6415, ITEMID_FACE_PAINT = 6120, ITEMID_STONE = 7049, diff --git a/src/map/status.c b/src/map/status.c index be004e918..4367f6243 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1836,11 +1836,11 @@ int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) short mod = -1; switch( sd->weapontype2 ){ // adjustment for dual weilding - case W_DAGGER: mod = 0; break; // 0, 1, 1 - case W_1HSWORD: - case W_1HAXE: mod = 1; - if( (sd->class_&MAPID_THIRDMASK) == MAPID_GUILLOTINE_CROSS ) // 0, 2, 3 - mod = sd->weapontype2 / W_1HSWORD + W_1HSWORD / sd->weapontype2 ; + case W_DAGGER: mod = 0; break; // 0, 1, 1 + case W_1HSWORD: + case W_1HAXE: mod = 1; + if( (sd->class_&MAPID_THIRDMASK) == MAPID_GUILLOTINE_CROSS ) // 0, 2, 3 + mod = sd->weapontype2 / W_1HSWORD + W_1HSWORD / sd->weapontype2 ; } amotion = ( sd->status.weapon < MAX_WEAPON_TYPE && mod < 0 ) @@ -1863,9 +1863,14 @@ int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) // percentual delay reduction from stats amotion -= amotion * (4*st->agi + st->dex)/1000; #endif + // raw delay adjustment from bAspd bonus amotion += sd->bonus.aspd_add; + /* angra manyu disregards aspd_base and similar */ + if( sd->equip_index[EQI_HAND_R] >= 0 && sd->status.inventory[sd->equip_index[EQI_HAND_R]].nameid == ITEMID_ANGRA_MANYU ) + return 0; + return amotion; } |