diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-08-07 00:34:35 +0200 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-08-07 00:34:35 +0200 |
commit | d45cf975aab39d04bd43dabaa455fde35b61b8da (patch) | |
tree | f790090f87d71bdbc2d5d26139a18397a3c3d313 /src/map/battle.c | |
parent | 20047594329157be00b82bc5f85e674fc348dddd (diff) | |
download | hercules-d45cf975aab39d04bd43dabaa455fde35b61b8da.tar.gz hercules-d45cf975aab39d04bd43dabaa455fde35b61b8da.tar.bz2 hercules-d45cf975aab39d04bd43dabaa455fde35b61b8da.tar.xz hercules-d45cf975aab39d04bd43dabaa455fde35b61b8da.zip |
- Acid Demo is now reduce by Defender (bug: 8287)
- Fix a behavior with Fog Wall
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 82095b1cd..3a52769fc 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2844,10 +2844,10 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam else damage >>= 1; //Receive 50% damage } -#endif +#endif
if(sc->data[SC_DEFENDER] && - (flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) + ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON) || skill_id == CR_ACIDDEMONSTRATION)) damage = damage * ( 100 - sc->data[SC_DEFENDER]->val2 ) / 100; if(sc->data[SC_GS_ADJUSTMENT] && @@ -2855,8 +2855,10 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam damage -= damage * 20 / 100; if(sc->data[SC_FOGWALL]) { - if(flag&BF_SKILL) //25% reduction - damage -= damage * 25 / 100; + if(flag&BF_SKILL) { //25% reduction
+ if ( !(skill->get_inf(skill_id)&INF_GROUND_SKILL) && !(skill->get_nk(skill_id)&NK_SPLASH) )
+ damage -= 25*damage/100;
+ } else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) damage >>= 2; //75% reduction } |