Cleanup of PATK calculation (#8094)
Follow up to 66dddb3 (rathena/rathena#7996) Fixes RK_DRAGONBREATH handling when DK_DRAGONIC_AURA is not skilled
This commit is contained in:
parent
a3cb48a341
commit
60dbe5a42d
@ -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);
|
battle_attack_sc_bonus(&wd, src, target, skill_id, skill_lv);
|
||||||
|
|
||||||
if (sd) { //monsters, homuns and pets have their damage computed directly
|
if (sd) { //monsters, homuns and pets have their damage computed directly
|
||||||
//PATK mod applies to Dragonbreaths if Dragonic Aura is skilled only - [munkrej]
|
wd.damage = wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.percentAtk;
|
||||||
if (!((skill_id == RK_DRAGONBREATH || skill_id == RK_DRAGONBREATH_WATER) && pc_checkskill( sd, DK_DRAGONIC_AURA ) == 0)) {
|
if( is_attack_left_handed( src, skill_id ) ){
|
||||||
wd.damage = (int64)floor((float)((wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.percentAtk) * (100 + sstatus->patk) / 100 + wd.masteryAtk + bonus_damage));
|
wd.damage2 = wd.statusAtk2 + wd.weaponAtk2 + wd.equipAtk2 + wd.percentAtk2;
|
||||||
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));
|
// 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
|
// CritAtkRate modifier
|
||||||
|
Loading…
x
Reference in New Issue
Block a user