From d421225c4fa844f7226326ff33ff7ba0c2d67ee0 Mon Sep 17 00:00:00 2001 From: Aleos Date: Thu, 9 Apr 2020 11:45:52 -0400 Subject: [PATCH] Fixes Acid Demonstration for pre-renewal (#4775) * Fixes #4770. * Adds back missing case for pre-renewal damage calculation. * Adds back long ranged check for Neutral Barrier in pre-renewal. Thanks to @danieljorge17! --- src/map/battle.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/map/battle.cpp b/src/map/battle.cpp index bb2e10d5bd..709d86acf0 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -1046,7 +1046,11 @@ bool battle_check_sc(struct block_list *src, struct block_list *target, struct s status_change_end(target, SC_SAFETYWALL, INVALID_TIMER); } - if (sc->data[SC_NEUTRALBARRIER] && (d->flag&(BF_LONG|BF_MAGIC)) == BF_LONG) { + if (sc->data[SC_NEUTRALBARRIER] && ((d->flag&(BF_LONG|BF_MAGIC)) == BF_LONG +#ifndef RENEWAL + || skill_id == CR_ACIDDEMONSTRATION +#endif + )) { d->dmg_lv = ATK_MISS; return false; } @@ -6878,7 +6882,9 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * // AD benefits from endow/element but damage is forced back to neutral md.damage = battle_attr_fix(src, target, md.damage, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv); } + // Fall through #else + case CR_ACIDDEMONSTRATION: if(tstatus->vit+sstatus->int_) //crash fix md.damage = (int)((int64)7*tstatus->vit*sstatus->int_*sstatus->int_ / (10*(tstatus->vit+sstatus->int_))); else