diff options
author | glighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-10-31 01:38:20 +0000 |
---|---|---|
committer | glighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-10-31 01:38:20 +0000 |
commit | 0fe3daa79298bec69f8a85c210a2fc1d7a437851 (patch) | |
tree | 9f3881e9fcb323f0ba1c4db37b9b76a562530a68 /src/map/battle.c | |
parent | 759a1bcbe86ff54211b46a539b106b7ff174731e (diff) | |
download | hercules-0fe3daa79298bec69f8a85c210a2fc1d7a437851.tar.gz hercules-0fe3daa79298bec69f8a85c210a2fc1d7a437851.tar.bz2 hercules-0fe3daa79298bec69f8a85c210a2fc1d7a437851.tar.xz hercules-0fe3daa79298bec69f8a85c210a2fc1d7a437851.zip |
-Fix bugreport:5757 (insignia) implement remaning effect stated from irowiki, remove duplicate atk_ele
-Fix bugreport:6096 (saturday_night), add rate failure, fix sit icone, add restrict to pvp map
-Fix bugreport:6831 (sc_intravision), prevent item starting (and so ending) intravision while wearing maya purple
DB:
-Upd *INSIGNIA duration to 60s, fix requirement indigo per level (itemid ain't split in src =( )
-Upd WM_SATURDAY_NIGHT_FEVER hp/sp drain interval to 12-2*skilllv
-Upd skill_require_db fix add note about some state status wich were present but not mentionned.
-Add poisonweapon and rollingcutter code implantation. (was used in require db without effect and removed hardcoded check)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16847 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 53d3061ce..5e9fb1bc1 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -352,34 +352,38 @@ int battle_attr_fix(struct block_list *src, struct block_list *target, int damag } if( tsc && tsc->count ) { //since an atk can only have one type let's optimise this a bit switch(atk_elem){ - case ELE_FIRE: - if (tsc->data[SC_SPIDERWEB]) { - tsc->data[SC_SPIDERWEB]->val1 = 0; // free to move now - if( tsc->data[SC_SPIDERWEB]->val2-- > 0 ) - damage <<= 1; // double damage - if( tsc->data[SC_SPIDERWEB]->val2 == 0 ) - status_change_end(target, SC_SPIDERWEB, INVALID_TIMER); - } - if( tsc->data[SC_THORNSTRAP]) - status_change_end(target, SC_THORNSTRAP, INVALID_TIMER); - if( tsc->data[SC_FIRE_CLOAK_OPTION]) - damage -= damage * tsc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100; - if( tsc->data[SC_CRYSTALIZE] && target->type != BL_MOB){ - status_change_end(target, SC_CRYSTALIZE, INVALID_TIMER); - } - break; - case ELE_HOLY: - if( tsc->data[SC_ORATIO]) - ratio += tsc->data[SC_ORATIO]->val1 * 2; - break; - case ELE_POISON: - if( tsc->data[SC_VENOMIMPRESS]) - ratio += tsc->data[SC_VENOMIMPRESS]->val2; - break; - case ELE_WIND: - if( tsc->data[SC_CRYSTALIZE] && target->type != BL_MOB) - damage = damage * 150 / 100; - break; + case ELE_FIRE: + if( tsc->data[SC_SPIDERWEB]) { + tsc->data[SC_SPIDERWEB]->val1 = 0; // free to move now + if( tsc->data[SC_SPIDERWEB]->val2-- > 0 ) + damage <<= 1; // double damage + if( tsc->data[SC_SPIDERWEB]->val2 == 0 ) + status_change_end(target, SC_SPIDERWEB, INVALID_TIMER); + } + if( tsc->data[SC_THORNSTRAP]) + status_change_end(target, SC_THORNSTRAP, INVALID_TIMER); + if( tsc->data[SC_FIRE_CLOAK_OPTION]) + damage -= damage * tsc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100; + if( tsc->data[SC_CRYSTALIZE] && target->type != BL_MOB) + status_change_end(target, SC_CRYSTALIZE, INVALID_TIMER); + if( tsc->data[SC_EARTH_INSIGNIA]) damage += damage/2; + break; + case ELE_HOLY: + if( tsc->data[SC_ORATIO]) ratio += tsc->data[SC_ORATIO]->val1 * 2; + break; + case ELE_POISON: + if( tsc->data[SC_VENOMIMPRESS]) ratio += tsc->data[SC_VENOMIMPRESS]->val2; + break; + case ELE_WIND: + if( tsc->data[SC_CRYSTALIZE] && target->type != BL_MOB) damage += damage/2; + if( tsc->data[SC_WATER_INSIGNIA]) damage += damage/2; + break; + case ELE_WATER: + if( tsc->data[SC_FIRE_INSIGNIA]) damage += damage/2; + break; + case ELE_EARTH: + if( tsc->data[SC_WIND_INSIGNIA]) damage += damage/2; + break; } } //end tsc check if( src && src->type == BL_PC ){ |