summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index c0c2e29cc..b19e13438 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1188,9 +1188,9 @@ int64 battle_calc_cardfix(int attack_type, struct block_list *src, struct block_
else if( cardfix != 1000 )
damage = damage * cardfix / 1000;
#else
- if ( (cflag & 1) && cardfix_ != 100 )
- damage += damage * (cardfix - 100) / 100;
- else if ( cardfix != 100 )
+ if ((cflag & 1) && cardfix_ != 100)
+ damage += damage * (cardfix_ - 100) / 100;
+ else if (cardfix != 100)
damage += damage * (cardfix - 100) / 100;
#endif
}
@@ -5833,6 +5833,17 @@ void battle_reflect_damage(struct block_list *target, struct block_list *src, st
delay += 100;/* gradual increase so the numbers don't clip in the client */
}
+ if (sc->data[SC_MVPCARD_ORCLORD]) {
+ NORMALIZE_RDAMAGE(damage * sc->data[SC_MVPCARD_ORCLORD]->val1 / 100);
+
+ rdelay = clif->delay_damage(tick + delay, src, src, status_get_amotion(src), status_get_dmotion(src), rdamage, 1, BDT_ENDURE);
+
+ if (tsd)
+ battle->drain(tsd, src, rdamage, rdamage, status_get_race(src), 0);
+ battle->delay_damage(tick, wd->amotion, target, src, 0, CR_REFLECTSHIELD, 0, rdamage, ATK_DEF, rdelay, true);
+
+ delay += 100;
+ }
}
if( ( ssc = status->get_sc(src) ) ) {
if( ssc->data[SC_INSPIRATION] ) {