diff options
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 17 |
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] ) { |