diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java
index 236448d44c374e269917120a9c7fe7bd0517e5ec..78b0f633cce52a9c1c11ca260cfcd619fd2242e1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java
@@ -18,7 +18,8 @@
  */
 package handlers.effecthandlers;
 
-import javolution.util.FastList;
+import java.util.ArrayList;
+import java.util.List;
 
 import com.l2jserver.gameserver.ai.CtrlEvent;
 import com.l2jserver.gameserver.datatables.NpcTable;
@@ -59,22 +60,25 @@ public class SignetMDam extends L2Effect
 	{
 		L2NpcTemplate template;
 		if (getSkill() instanceof L2SkillSignetCasttime)
+		{
 			template = NpcTable.getInstance().getTemplate(getSkill().getNpcId());
+		}
 		else
+		{
 			return false;
+		}
 		
-		L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(), template, getEffector());
+		final L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(), template, getEffector());
 		effectPoint.setCurrentHp(effectPoint.getMaxHp());
 		effectPoint.setCurrentMp(effectPoint.getMaxMp());
-		//L2World.getInstance().storeObject(effectPoint);
 		
 		int x = getEffector().getX();
 		int y = getEffector().getY();
 		int z = getEffector().getZ();
 		
-		if (getEffector().isPlayer() && getSkill().getTargetType() == L2TargetType.TARGET_GROUND)
+		if (getEffector().isPlayer() && (getSkill().getTargetType() == L2TargetType.TARGET_GROUND))
 		{
-			Point3D wordPosition = getEffector().getActingPlayer().getCurrentSkillWorldPosition();
+			final Point3D wordPosition = getEffector().getActingPlayer().getCurrentSkillWorldPosition();
 			
 			if (wordPosition != null)
 			{
@@ -94,26 +98,34 @@ public class SignetMDam extends L2Effect
 	@Override
 	public boolean onActionTime()
 	{
-		if (getCount() >= getTotalCount() - 2)
+		if (getCount() >= (getTotalCount() - 2))
+		{
 			return true; // do nothing first 2 times
+		}
 		int mpConsume = getSkill().getMpConsume();
 		
-		L2PcInstance activeChar = getEffector().getActingPlayer();
+		final L2PcInstance activeChar = getEffector().getActingPlayer();
 		
-		boolean sps = getSkill().isMagic() && getEffector().isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = getSkill().isMagic() && getEffector().isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
-
-		FastList<L2Character> targets = new FastList<>();
+		activeChar.rechargeShots(getSkill().useSoulShot(), getSkill().useSpiritShot());
+		
+		boolean sps = getSkill().useSpiritShot() && getEffector().isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = getSkill().useSpiritShot() && getEffector().isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		
+		List<L2Character> targets = new ArrayList<>();
 		
 		for (L2Character cha : _actor.getKnownList().getKnownCharactersInRadius(getSkill().getSkillRadius()))
 		{
-			if (cha == null || cha == activeChar)
+			if ((cha == null) || (cha == activeChar))
+			{
 				continue;
+			}
 			
 			if (cha.isL2Attackable() || cha.isPlayable())
 			{
 				if (cha.isAlikeDead())
+				{
 					continue;
+				}
 				
 				if (mpConsume > activeChar.getCurrentMp())
 				{
@@ -131,7 +143,9 @@ public class SignetMDam extends L2Effect
 					}
 				}
 				else
+				{
 					targets.add(cha);
+				}
 			}
 		}
 		
@@ -140,17 +154,18 @@ public class SignetMDam extends L2Effect
 			activeChar.broadcastPacket(new MagicSkillLaunched(activeChar, getSkill().getId(), getSkill().getLevel(), targets.toArray(new L2Character[targets.size()])));
 			for (L2Character target : targets)
 			{
-				boolean mcrit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, getSkill()));
-				byte shld = Formulas.calcShldUse(activeChar, target, getSkill());
-				int mdam = (int) Formulas.calcMagicDam(activeChar, target, getSkill(), shld, sps, bss, mcrit);
+				final boolean mcrit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, getSkill()));
+				final byte shld = Formulas.calcShldUse(activeChar, target, getSkill());
+				final int mdam = (int) Formulas.calcMagicDam(activeChar, target, getSkill(), shld, sps, bss, mcrit);
 				
 				if (target.isSummon())
+				{
 					target.broadcastStatusUpdate();
+				}
 				
 				if (mdam > 0)
 				{
-					if (!target.isRaid()
-							&& Formulas.calcAtkBreak(target, mdam))
+					if (!target.isRaid() && Formulas.calcAtkBreak(target, mdam))
 					{
 						target.breakAttack();
 						target.breakCast();
@@ -169,6 +184,8 @@ public class SignetMDam extends L2Effect
 	public void onExit()
 	{
 		if (_actor != null)
+		{
 			_actor.deleteMe();
+		}
 	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java
index d9de9aafcd0c0b309bcbf4213f2c9172dc98e326..906720391ffbd0487194613417fdeebd237f0d2a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java
@@ -52,9 +52,9 @@ public class Blow implements ISkillHandler
 		if (activeChar.isAlikeDead())
 			return;
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Character target: (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java
index 2ff9f95eea3f56b263d673f2da79e4f5c4b3d809..297bda0c9f06ede45808272b86384648a90914d8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java
@@ -72,7 +72,7 @@ public class Continuous implements ISkillHandler
 				skill = sk;
 		}
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
 		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
 		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 				
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java
index bd8407895044c0e12cf1fe51eef7be990a2c4b12..5827b8e6e3b16af1119b37fc2b2f75f215fbc5b5 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java
@@ -38,9 +38,9 @@ public class CpDam implements ISkillHandler
 			return;
 		}
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Character target : (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java
index 07d862b8a03a157dfef16746eb5b613774de8043..2a7ed80302e5eae19f376d520cd6c580e648f223 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java
@@ -36,9 +36,9 @@ public class CpDamPercent implements ISkillHandler
 		if (activeChar.isAlikeDead())
 			return;
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Character target: (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java
index e956c9cd9d34d81b16cb8c7bd09de51faad37426..d82c5a2be9d0f0c35f4a91a121267e727c119f25 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java
@@ -75,9 +75,9 @@ public class Disablers implements ISkillHandler
 		L2SkillType type = skill.getSkillType();
 		
 		byte shld = 0;
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Object obj: targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java
index 08f8cb5f8c37d8fe7a910ae4559edd1c80103e59..12ed7907ef5cde59d28d392d07a44aff38d2bbab 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java
@@ -46,9 +46,9 @@ public class Manadam implements ISkillHandler
 			return;
 		}
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Character target : (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java
index b66f5d0c1b04fbe1b0f00b08a2c1a9735d776abf..26024965cd5ed2e3726e3cac549b7017c7efdb70 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java
@@ -50,9 +50,9 @@ public class Mdam implements ISkillHandler
 			return;
 		}
 		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
-		boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
-		boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+		boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 		
 		for (L2Character target : (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java
index cfed320d83d6a7bf2eac20cff394ebe1451d7217..6ef30eacc7ec999af105100cbaee123c7f74a597 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java
@@ -35,7 +35,6 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 public class Pdam implements ISkillHandler
 {
-	private static final Logger _log = Logger.getLogger(Pdam.class.getName());
 	private static final Logger _logDamage = Logger.getLogger("damage");
 	
 	private static final L2SkillType[] SKILL_IDS =
@@ -59,12 +58,7 @@ public class Pdam implements ISkillHandler
 		
 		int damage = 0;
 		
-		if (Config.DEBUG)
-		{
-			_log.fine("Begin Skill processing in Pdam.java " + skill.getSkillType());
-		}
-		
-		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+		boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
 		
 		for (L2Character target: (L2Character[]) targets)
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java
index a8748a5dae011f286a99976808a16f543692bd22..7034129b3cbd0cecb81954448b063b5882665247 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java
@@ -72,7 +72,7 @@ public class StrSiegeAssault implements ISkillHandler
 		{
 			// damage calculation
 			int damage = 0;
-			boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
+			boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS);
 			
 			for (L2Character target: (L2Character[]) targets)
 			{