Explorar o código

Minor corrections to Break Through (#5917)

* Fixes the attack bonus not properly applying to masteries.
* Fixes the healing bonus not increasing per skill level learned.
Aleos %!s(int64=3) %!d(string=hai) anos
pai
achega
47cb6dc637
Modificáronse 2 ficheiros con 8 adicións e 12 borrados
  1. 3 7
      src/map/battle.cpp
  2. 5 5
      src/map/skill.cpp

+ 3 - 7
src/map/battle.cpp

@@ -2072,6 +2072,9 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in
 		damage += (skill * 2);
 #endif
 
+	if ((skill = pc_checkskill(sd, NV_BREAKTHROUGH)) > 0)
+		damage += 15 * skill + (skill > 4 ? 25 : 0);
+
 	// Kagerou/Oboro Spirit Charm bonus
 	if (sd->spiritcharm >= MAX_SPIRITCHARM) {
 		if ((sd->spiritcharm_type == CHARM_TYPE_FIRE && status->def_ele == ELE_EARTH) ||
@@ -3399,13 +3402,6 @@ static void battle_calc_attack_masteries(struct Damage* wd, struct block_list *s
 #endif
 		}
 
-		if (skill_id == NV_BREAKTHROUGH) {
-			ATK_ADD(wd->damage, wd->damage2, 15 * skill_lv + (skill_lv > 4 ? 25 : 0));
-#ifdef RENEWAL
-			ATK_ADD(wd->masteryAtk, wd->masteryAtk2, 15 * skill_lv + (skill_lv > 4 ? 25 : 0));
-#endif
-		}
-
 		switch(skill_id) {
 			case RA_WUGDASH:
 			case RA_WUGSTRIKE:

+ 5 - 5
src/map/skill.cpp

@@ -621,23 +621,23 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk
 
 		if ((skill = pc_checkskill(sd, NV_BREAKTHROUGH)) > 0)
 #ifdef RENEWAL
-			hp_bonus += 2;
+			hp_bonus += 2 * skill;
 #else
 			hp += hp * skill * 2 / 100;
 #endif
 
 		if ((skill = pc_checkskill(sd, NV_TRANSCENDENCE)) > 0)
 #ifdef RENEWAL
-			hp_bonus += 3;
+			hp_bonus += 3 * skill;
 #else
 			hp += hp * skill * 3 / 100;
 #endif
 
-	if (skill = pc_skillheal_bonus(sd, skill_id))
+		if (skill = pc_skillheal_bonus(sd, skill_id))
 #ifdef RENEWAL
-		hp_bonus += skill;
+			hp_bonus += skill;
 #else
-		hp += hp * skill / 100;
+			hp += hp * skill / 100;
 #endif
 	}