summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-03 02:52:32 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-03 02:52:32 +0000
commitd83813872d475a96765b2cdf12789eed2865bfab (patch)
treeb454a33952d79cde3f1e056d12e5faa20003377b /src/map
parent87a0795f237f4f61418bc761e4b3698ec968fbd0 (diff)
downloadhercules-d83813872d475a96765b2cdf12789eed2865bfab.tar.gz
hercules-d83813872d475a96765b2cdf12789eed2865bfab.tar.bz2
hercules-d83813872d475a96765b2cdf12789eed2865bfab.tar.xz
hercules-d83813872d475a96765b2cdf12789eed2865bfab.zip
Fixed bugreport:5655 Venom Impress boost against poison should now work.
Additionally, Fixed Oratio Throns Trap and Elemental Fire Cloak elemental atrributes git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16061 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 113d82fbf..961bb3244 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -328,13 +328,23 @@ int battle_attr_fix(struct block_list *src, struct block_list *target, int damag
sg->limit = DIFF_TICK(gettick(),sg->tick)+300;
}
}
- }
- if( atk_elem == ELE_FIRE && tsc && tsc->count && 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 && tsc->count ) {
+ if( tsc->data[SC_SPIDERWEB] && atk_elem == ELE_FIRE ){
+ 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_ORATIO] && atk_elem == ELE_HOLY )
+ ratio += tsc->data[SC_ORATIO]->val1 * 2;
+ if( tsc->data[SC_VENOMIMPRESS] && atk_elem == ELE_POISON )
+ ratio += tsc->data[SC_VENOMIMPRESS]->val2;
+ if( tsc->data[SC_THORNSTRAP] && atk_elem == ELE_FIRE )
+ status_change_end(target, SC_THORNSTRAP, -1);
+ if( tsc->data[SC_FIRE_CLOAK_OPTION] && atk_elem == ELE_FIRE )
+ damage -= damage * tsc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100;
}
return damage*ratio/100;
}