diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 4f0e519163..a6564c7da2 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -6944,11 +6944,27 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl battle_attack_sc_bonus(&wd, src, target, skill_id, skill_lv); if (sd) { //monsters, homuns and pets have their damage computed directly - //PATK mod applies to Dragonbreaths if Dragonic Aura is skilled only - [munkrej] - if (!((skill_id == RK_DRAGONBREATH || skill_id == RK_DRAGONBREATH_WATER) && pc_checkskill( sd, DK_DRAGONIC_AURA ) == 0)) { - wd.damage = (int64)floor((float)((wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.percentAtk) * (100 + sstatus->patk) / 100 + wd.masteryAtk + bonus_damage)); - if (is_attack_left_handed(src, skill_id)) - wd.damage2 = (int64)floor((float)((wd.statusAtk2 + wd.weaponAtk2 + wd.equipAtk2 + wd.percentAtk2) * (100 + sstatus->patk) / 100 + wd.masteryAtk2 + bonus_damage)); + wd.damage = wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.percentAtk; + if( is_attack_left_handed( src, skill_id ) ){ + wd.damage2 = wd.statusAtk2 + wd.weaponAtk2 + wd.equipAtk2 + wd.percentAtk2; + } + // Apply PATK mod + // But for Dragonbreaths it only applies if Dragonic Aura is skilled + if( ( skill_id != RK_DRAGONBREATH && skill_id != RK_DRAGONBREATH_WATER ) || pc_checkskill( sd, DK_DRAGONIC_AURA ) > 0 ){ + wd.damage = (int64)floor( (float)( wd.damage * ( 100 + sstatus->patk ) / 100 ) ); + if( is_attack_left_handed( src, skill_id ) ){ + wd.damage2 = (int64)floor( (float)( wd.damage2 * ( 100 + sstatus->patk ) / 100 ) ); + } + } + // Apply MasteryATK + wd.damage += wd.masteryAtk; + if( is_attack_left_handed( src, skill_id ) ){ + wd.damage2 += wd.masteryAtk2; + } + // Apply bonus damage + wd.damage += bonus_damage; + if( is_attack_left_handed( src, skill_id ) ){ + wd.damage2 += bonus_damage; } // CritAtkRate modifier