Ver Fonte

Follow up to r17417 - fix for element to apply correctly to status atk in Renewal battle calculations

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17418 54d463be-8e91-2dee-dedb-b68131a5f0ec
hipsterfont há 12 anos atrás
pai
commit
c8a3950898
1 ficheiros alterados com 12 adições e 10 exclusões
  1. 12 10
      src/map/battle.c

+ 12 - 10
src/map/battle.c

@@ -2416,19 +2416,21 @@ struct Damage battle_calc_damage_parts(struct Damage wd, struct block_list *src,
 	int left_element = battle_get_weapon_element(wd, src, target, skill_id, skill_lv, EQI_HAND_L, false);
 
 	wd.statusAtk += battle_calc_status_attack(sstatus, EQI_HAND_R);
+	wd.statusAtk2 += battle_calc_status_attack(sstatus, EQI_HAND_L);
 
-	if (sd) {
-		wd.statusAtk2 += battle_calc_status_attack(sstatus, EQI_HAND_L);
-
-		if (!skill_id) { // status atk is considered neutral on normal attacks [helvetica]
+	if (!skill_id) { // status atk is considered neutral on normal attacks [helvetica]
+		if(sd && sd->sc.data[SC_SEVENWIND]) { // Mild Wind applies element to status ATK as well as weapon ATK [helvetica]
+			wd.statusAtk = battle_attr_fix(src, target, wd.statusAtk, right_element, tstatus->def_ele, tstatus->ele_lv);
+			wd.statusAtk2 = battle_attr_fix(src, target, wd.statusAtk, left_element, tstatus->def_ele, tstatus->ele_lv);	
+		}	
+		else {
 			wd.statusAtk = battle_attr_fix(src, target, wd.statusAtk, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv);
 			wd.statusAtk2 = battle_attr_fix(src, target, wd.statusAtk, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv);
-		} else {
-			wd.statusAtk = battle_attr_fix(src, target, wd.statusAtk, right_element, tstatus->def_ele, tstatus->ele_lv);
-			wd.statusAtk2 = battle_attr_fix(src, target, wd.statusAtk, left_element, tstatus->def_ele, tstatus->ele_lv);
-		}
-		if(sd->sc.data[SC_SEVENWIND]) // Mild Wind applies element to status ATK as well as weapon ATK [helvetica]
-			wd.statusAtk = battle_attr_fix(src, target, wd.statusAtk, right_element, tstatus->def_ele, tstatus->ele_lv);
+		}	
+	} 
+	else {
+		wd.statusAtk = battle_attr_fix(src, target, wd.statusAtk, right_element, tstatus->def_ele, tstatus->ele_lv);
+		wd.statusAtk2 = battle_attr_fix(src, target, wd.statusAtk, left_element, tstatus->def_ele, tstatus->ele_lv);
 	}
 
 	wd.weaponAtk += battle_calc_base_weapon_attack(src, tstatus, &sstatus->rhw, sd);