summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorglighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-10-31 01:38:20 +0000
committerglighta <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-10-31 01:38:20 +0000
commit0fe3daa79298bec69f8a85c210a2fc1d7a437851 (patch)
tree9f3881e9fcb323f0ba1c4db37b9b76a562530a68 /src/map/battle.c
parent759a1bcbe86ff54211b46a539b106b7ff174731e (diff)
downloadhercules-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.c60
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 ){