From 12e26c7a8d747d891e10e6db5f4785e70ea4284f Mon Sep 17 00:00:00 2001
From: Zoey76 <zoey_76@msn.com>
Date: Sat, 9 Oct 2021 23:50:33 -0300
Subject: [PATCH] Removing custom attribute dmgDirectlyToHp from Backstab

https://trello.com/c/Yj4JzrmW/90-remove-custom-attribute-dmgdirectlytohp-from-skill
---
 .../effecthandlers/instant/Backstab.java      | 22 +++++++++----------
 .../data/stats/skills/00000-00099.xml         |  1 -
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/Backstab.java b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/Backstab.java
index c6dd30e147..1adef62557 100644
--- a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/Backstab.java
+++ b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/Backstab.java
@@ -20,13 +20,10 @@ package com.l2jserver.datapack.handlers.effecthandlers.instant;
 
 import com.l2jserver.gameserver.enums.ShotType;
 import com.l2jserver.gameserver.model.StatsSet;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.conditions.Condition;
 import com.l2jserver.gameserver.model.effects.AbstractEffect;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
-import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Formulas;
 
 /**
@@ -67,11 +64,11 @@ public final class Backstab extends AbstractEffect {
 			return;
 		}
 		
-		final L2Character target = info.getEffected();
-		final L2Character activeChar = info.getEffector();
-		final Skill skill = info.getSkill();
-		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		byte shld = Formulas.calcShldUse(activeChar, target, skill);
+		final var target = info.getEffected();
+		final var activeChar = info.getEffector();
+		final var skill = info.getSkill();
+		final boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		final byte shld = Formulas.calcShldUse(activeChar, target, skill);
 		double damage = Formulas.calcBackstabDamage(activeChar, target, skill, shld, ss, _power);
 		
 		// Crit rate base crit rate for skill, modified with STR bonus
@@ -79,7 +76,11 @@ public final class Backstab extends AbstractEffect {
 			damage *= 2;
 		}
 		
-		target.reduceCurrentHp(damage, activeChar, skill);
+		if (target.isPlayer()) {
+			target.getActingPlayer().getStatus().reduceHp(damage, activeChar, true, false, skill.isToggle(), true);
+		} else {
+			target.reduceCurrentHp(damage, activeChar, skill);
+		}
 		target.notifyDamageReceived(damage, activeChar, skill, true, false, false);
 		
 		// Manage attack or cast break of the target (calculating rate, sending message...)
@@ -89,8 +90,7 @@ public final class Backstab extends AbstractEffect {
 		}
 		
 		if (activeChar.isPlayer()) {
-			L2PcInstance activePlayer = activeChar.getActingPlayer();
-			activePlayer.sendDamageMessage(target, (int) damage, false, true, false);
+			activeChar.sendDamageMessage(target, (int) damage, false, true, false);
 		}
 		
 		// Check if damage should be reflected
diff --git a/src/main/resources/data/stats/skills/00000-00099.xml b/src/main/resources/data/stats/skills/00000-00099.xml
index 615616422a..4a6351efbc 100644
--- a/src/main/resources/data/stats/skills/00000-00099.xml
+++ b/src/main/resources/data/stats/skills/00000-00099.xml
@@ -1166,7 +1166,6 @@
 		<set name="affectScope" val="SINGLE" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
-		<set name="dmgDirectlyToHp" val="true" />
 		<set name="effectPoint" val="#effectPoint" />
 		<set name="effectRange" val="400" />
 		<set name="hitCancelTime" val="500" />
-- 
GitLab