summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorMichieru <Michieru@users.noreply.github.com>2014-08-08 10:52:32 +0200
committerMichieru <Michieru@users.noreply.github.com>2014-08-08 10:52:32 +0200
commit781ba96bc45e706d8033c755897e3a7aafb80645 (patch)
tree3e63f5b1a1e6567079412e0c67da943e8c6a6f8d /src/map/battle.c
parentc9b2545ebcf50e004c692ce087fc9ba253fcf525 (diff)
downloadhercules-781ba96bc45e706d8033c755897e3a7aafb80645.tar.gz
hercules-781ba96bc45e706d8033c755897e3a7aafb80645.tar.bz2
hercules-781ba96bc45e706d8033c755897e3a7aafb80645.tar.xz
hercules-781ba96bc45e706d8033c755897e3a7aafb80645.zip
- Update Fire Cloack to official formula
- Update Water Barrier to official formula - Insignia end status for everyone but spirits - Neutral Barrier def/mdef bonus should not be show in status window - Striking should be show in status window (bug:7945) - Reverberation should be cast on the caster (bug:8291)
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 49dcd54ef..dae29e76b 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -335,6 +335,8 @@ int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 d
ratio += skill->enchant_eff[sc->data[SC_VIOLENTGALE]->val1-1];
if(sc->data[SC_DELUGE] && atk_elem == ELE_WATER)
ratio += skill->enchant_eff[sc->data[SC_DELUGE]->val1-1];
+ if(sc->data[SC_FIRE_CLOAK_OPTION] && atk_elem == ELE_FIRE)
+ damage += damage * sc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100;
}
if( target && target->type == BL_SKILL ) {
if( atk_elem == ELE_FIRE && battle->get_current_skill(target) == GN_WALLOFTHORN ) {
@@ -373,6 +375,8 @@ int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 d
if( tsc->data[SC_COLD] && target->type != BL_MOB)
status_change_end(target, SC_COLD, INVALID_TIMER);
if( tsc->data[SC_EARTH_INSIGNIA]) damage += damage/2;
+ if( tsc->data[SC_FIRE_CLOAK_OPTION])
+ damage -= damage * tsc->data[SC_FIRE_CLOAK_OPTION]->val2 / 100;
if( tsc->data[SC_VOLCANIC_ASH]) damage += damage/2; //150%
break;
case ELE_HOLY:
@@ -2863,6 +2867,9 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
damage >>= 2; //75% reduction
}
+ if ( sc->data[SC_WATER_BARRIER] )
+ damage = damage * ( 100 - 20 ) / 100;
+
// Compressed code, fixed by map.h [Epoque]
if (src->type == BL_MOB) {
int i;