Selaa lähdekoodia

Fix Enchant Deadly Poison causing a major Attack boost - Fixes bugreport:7827
Fix attribute fixing not being applied to damage correctly (helvetica) - Concerning bugreport:7809

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17417 54d463be-8e91-2dee-dedb-b68131a5f0ec

akinari1087 12 vuotta sitten
vanhempi
commit
4c74221e4b
2 muutettua tiedostoa jossa 12 lisäystä ja 9 poistoa
  1. 12 5
      src/map/battle.c
  2. 0 4
      src/map/status.c

+ 12 - 5
src/map/battle.c

@@ -2416,13 +2416,20 @@ 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);
-#ifdef RENEWAL
-	if (sd) { // Mild Wind applies element to status ATK as well as weapon ATK [helvetica]
-		if(sd->sc.data[SC_SEVENWIND]) 
+
+	if (sd) {
+		wd.statusAtk2 += battle_calc_status_attack(sstatus, EQI_HAND_L);
+
+		if (!skill_id) { // status atk is considered neutral on normal attacks [helvetica]
+			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);
 	}
-#endif
 
 	wd.weaponAtk += battle_calc_base_weapon_attack(src, tstatus, &sstatus->rhw, sd);
 	wd.weaponAtk = battle_attr_fix(src, target, wd.weaponAtk, right_element, tstatus->def_ele, tstatus->ele_lv);

+ 0 - 4
src/map/status.c

@@ -4703,10 +4703,6 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan
 		watk += watk * sc->data[SC_TIDAL_WEAPON]->val2 / 100;
 	if(sc->data[SC_ANGRIFFS_MODUS])
 		watk += watk * sc->data[SC_ANGRIFFS_MODUS]->val2/100;
-#ifdef RENEWAL_EDP
-	if( sc->data[SC_EDP] )
-		watk = watk * (100 + sc->data[SC_EDP]->val1 * 80) / 100;
-#endif
 
 	return (unsigned short)cap_value(watk,0,USHRT_MAX);
 }