|
@@ -3858,13 +3858,17 @@ static void battle_calc_skill_base_damage(struct Damage* wd, struct block_list *
|
|
|
case RK_DRAGONBREATH_WATER:
|
|
|
{
|
|
|
int damagevalue = (sstatus->hp / 50 + status_get_max_sp(src) / 4) * skill_lv;
|
|
|
-
|
|
|
if(status_get_lv(src) > 100)
|
|
|
damagevalue = damagevalue * status_get_lv(src) / 100;
|
|
|
- if(sd)
|
|
|
- damagevalue = damagevalue * ( 90 + 10 * pc_checkskill( sd, RK_DRAGONTRAINING ) + ( pc_checkskill( sd, DK_DRAGONIC_AURA ) >= 1 ? ( sstatus->pow / 4 + sstatus->patk / 2 ) : 0 ) ) / 100;
|
|
|
- if (sc && sc->getSCE(SC_DRAGONIC_AURA))// Need official damage increase. [Rytech]
|
|
|
- damagevalue += damagevalue * 50 / 100;
|
|
|
+ if(sd) {
|
|
|
+ if (pc_checkskill( sd, DK_DRAGONIC_AURA ) >= 1) {
|
|
|
+ damagevalue = damagevalue * (90 + 10 * pc_checkskill( sd, RK_DRAGONTRAINING ) + sstatus->pow / 5 ) / 100;
|
|
|
+ } else {
|
|
|
+ damagevalue = damagevalue * (90 + 10 * pc_checkskill( sd, RK_DRAGONTRAINING )) / 100;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sc && sc->getSCE(SC_DRAGONIC_AURA))
|
|
|
+ damagevalue += damagevalue * sc->getSCE(SC_DRAGONIC_AURA)->val1 * 10 / 100;
|
|
|
ATK_ADD(wd->damage, wd->damage2, damagevalue);
|
|
|
#ifdef RENEWAL
|
|
|
ATK_ADD(wd->weaponAtk, wd->weaponAtk2, damagevalue);
|
|
@@ -6899,9 +6903,12 @@ 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
|
|
|
- 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));
|
|
|
+ //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));
|
|
|
+ }
|
|
|
|
|
|
// CritAtkRate modifier
|
|
|
if (wd.type == DMG_CRITICAL || wd.type == DMG_MULTI_HIT_CRITICAL) {
|