浏览代码

Envenom Element Modifier Adjustments (#8237)

- Envenom now applies the attribute table to the final damage again (fixes #8212)
Playtester 1 年之前
父节点
当前提交
eb4658f940
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      src/map/battle.cpp

+ 5 - 2
src/map/battle.cpp

@@ -3739,11 +3739,11 @@ static void battle_calc_element_damage(struct Damage* wd, struct block_list *src
 	status_change* sc = status_get_sc(src);
 	struct status_data* sstatus = status_get_status_data(src);
 	struct status_data* tstatus = status_get_status_data(target);
+	int right_element = battle_get_weapon_element(wd, src, target, skill_id, skill_lv, EQI_HAND_R, true);
 
 	// Elemental attribute fix
 	if(!nk[NK_IGNOREELEMENT] && (wd->damage > 0 || wd->damage2 > 0)) {
 		int left_element = battle_get_weapon_element(wd, src, target, skill_id, skill_lv, EQI_HAND_L, true);
-		int right_element = battle_get_weapon_element(wd, src, target, skill_id, skill_lv, EQI_HAND_R, true);
 
 		switch (skill_id) {
 			case PA_SACRIFICE:
@@ -3805,8 +3805,11 @@ static void battle_calc_element_damage(struct Damage* wd, struct block_list *src
 		ATK_ADD(wd->damage, wd->damage2, battle_get_spiritball_damage(*wd, *src, skill_id));
 
 		// Skill-specific bonuses
-		if (skill_id == TF_POISON)
+		if (skill_id == TF_POISON) {
 			ATK_ADD(wd->damage, wd->damage2, 15 * skill_lv);
+			// Envenom applies the attribute table to the base damage and then again to the final damage
+			wd->damage = battle_attr_fix(src, target, wd->damage, right_element, tstatus->def_ele, tstatus->ele_lv, 1);
+		}
 	}
 
 	// These bonuses do not apply to skills that ignore element, unit skills and skills that have their own base damage formula