diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/GiganticGolem.java b/src/main/java/com/l2jserver/datapack/ai/individual/GiganticGolem.java
index 446f9de65fb585721bff3d71bfa8d8db36e26454..730bb49b377902178fc624830b37ca93ac61ae7c 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/GiganticGolem.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/GiganticGolem.java
@@ -38,11 +38,11 @@ import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
 
 /**
  * Gigantic Golem AI.
- * @author Kerberos, Maneco2
+ * @author Kerberos
+ * @author Maneco2
  * @version 2.6.2.0
  */
-public class GiganticGolem extends AbstractNpcAI
-{
+public class GiganticGolem extends AbstractNpcAI {
 	// NPCs
 	private static final int DR_CHAOS = 32033;
 	private static final int GIGANTIC_GOLEM = 25703;
@@ -54,6 +54,8 @@ public class GiganticGolem extends AbstractNpcAI
 	private static final SkillHolder GOLEM_BOOM = new SkillHolder(6264);
 	private static final SkillHolder NPC_EARTH_SHOT = new SkillHolder(6608);
 	// Variables
+	private L2Npc _raidBoss;
+	private boolean _skillsAcess = false;
 	private static long _lastAttack = 0;
 	private static final int RESPAWN = 24;
 	private static final int MAX_CHASE_DIST = 3000;
@@ -64,8 +66,7 @@ public class GiganticGolem extends AbstractNpcAI
 	private static final Location PLAYER_TELEPORT = new Location(94832, -112624, -3304);
 	private static final Location DR_CHAOS_LOC = new Location(96320, -110912, -3328, 8191);
 	
-	public GiganticGolem()
-	{
+	public GiganticGolem() {
 		super(GiganticGolem.class.getSimpleName(), "ai/individual");
 		addFirstTalkId(DR_CHAOS);
 		addKillId(GIGANTIC_GOLEM);
@@ -75,30 +76,21 @@ public class GiganticGolem extends AbstractNpcAI
 		addAttackId(GIGANTIC_GOLEM, GIGANTIC_BOOM_GOLEM);
 		
 		final long remain = GlobalVariablesManager.getInstance().getLong("GolemRespawn", 0) - System.currentTimeMillis();
-		if (remain > 0)
-		{
+		if (remain > 0) {
 			startQuestTimer("CLEAR_STATUS", remain, null, null);
-		}
-		else
-		{
+		} else {
 			startQuestTimer("CLEAR_STATUS", 1000, null, null);
 		}
 	}
 	
 	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
-	{
-		switch (event)
-		{
-			case "ATTACK_MACHINE":
-			{
-				for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(STRANGE_MACHINE))
-				{
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+		switch (event) {
+			case "ATTACK_MACHINE": {
+				for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(STRANGE_MACHINE)) {
 					final L2Npc obj = spawn.getLastSpawn();
-					if (obj != null)
-					{
-						if (npc.getId() == DR_CHAOS)
-						{
+					if (obj != null) {
+						if (npc.getId() == DR_CHAOS) {
 							npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, obj);
 							npc.broadcastPacket(new SpecialCamera(npc, 1, -200, 15, 10000, 1000, 20000, 0, 0, 0, 0, 0));
 						}
@@ -107,113 +99,88 @@ public class GiganticGolem extends AbstractNpcAI
 				startQuestTimer("ACTION_CAMERA", 10000, npc, player);
 				break;
 			}
-			case "ACTION_CAMERA":
-			{
+			case "ACTION_CAMERA": {
 				startQuestTimer("MOVE_SHOW", 2500, npc, player);
 				npc.broadcastPacket(new SpecialCamera(npc, 1, -150, 10, 3000, 1000, 20000, 0, 0, 0, 0, 0));
 				break;
 			}
-			case "MOVE_SHOW":
-			{
+			case "MOVE_SHOW": {
 				startQuestTimer("TELEPORT", 2000, npc, player);
 				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(96055, -110759, -3312, 0));
 				broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.FOOLS_WHY_HAVENT_YOU_FLED_YET_PREPARE_TO_LEARN_A_LESSON);
 				break;
 			}
-			case "TELEPORT":
-			{
-				if (player.isInParty())
-				{
+			case "TELEPORT": {
+				if (player.isInParty()) {
 					final L2Party party = player.getParty();
 					final boolean isInCC = party.isInCommandChannel();
 					final List<L2PcInstance> members = (isInCC) ? party.getCommandChannel().getMembers() : party.getMembers();
-					for (L2PcInstance groupMembers : members)
-					{
-						if (groupMembers.isInsideRadius(npc, 2000, true, false))
-						{
+					for (L2PcInstance groupMembers : members) {
+						if (groupMembers.isInsideRadius(npc, 2000, true, false)) {
 							groupMembers.teleToLocation(PLAYER_TELEPORT, true);
 						}
 					}
-				}
-				else
-				{
+				} else {
 					player.teleToLocation(PLAYER_TELEPORT);
 				}
 				
-				if ((npc != null) && (npc.getId() == DR_CHAOS))
-				{
+				if ((npc != null) && (npc.getId() == DR_CHAOS)) {
 					npc.deleteMe();
 				}
 				startQuestTimer("WAIT_CAMERA", 1000, npc, player);
 				break;
 			}
-			case "WAIT_CAMERA":
-			{
+			case "WAIT_CAMERA": {
 				startQuestTimer("SPAWN_RAID", 1000, npc, player);
 				npc.broadcastPacket(new SpecialCamera(npc, 30, -200, 20, 6000, 700, 8000, 0, 0, 0, 0, 0));
 				break;
 			}
-			case "SPAWN_RAID":
-			{
+			case "SPAWN_RAID": {
 				addSpawn(GIGANTIC_GOLEM, 94640, -112496, -3360, 0, false, 0);
 				break;
 			}
-			case "FLAG":
-			{
+			case "FLAG": {
 				npc.getVariables().set(SPAWN_FLAG, false);
 				break;
 			}
-			case "CORE_AI":
-			{
-				if (npc != null)
-				{
+			case "CORE_AI": {
+				if (npc != null) {
 					((L2Attackable) npc).clearAggroList();
 					npc.disableCoreAI(false);
 				}
 				break;
 			}
-			case "CLEAR_STATUS":
-			{
+			case "CLEAR_STATUS": {
 				addSpawn(DR_CHAOS, DR_CHAOS_LOC, false, 0);
 				GlobalVariablesManager.getInstance().set("GolemRespawn", 0);
 				break;
 			}
-			case "SKILL_ATTACK":
-			{
+			case "SKILL_ATTACK": {
 				addSkillCastDesire(npc, npc, SMOKE, 1000000L);
-				if (!npc.getVariables().getBoolean(ATTACK_FLAG, false))
-				{
+				if (!npc.getVariables().getBoolean(ATTACK_FLAG, false)) {
 					npc.disableCoreAI(true);
 					npc.getVariables().set(ATTACK_FLAG, true);
 				}
 				break;
 			}
-			case "MOVE_TIME": 
-			{
-				if (npc != null)
-				{
-					for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(3000))
-					{
-						if ((obj != null) && (obj.isRaid()))
-						{
+			case "MOVE_TIME": {
+				if (npc != null) {
+					for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(3000)) {
+						if ((obj != null) && (obj.isRaid())) {
 							addMoveToDesire(npc, new Location(obj.getX() + getRandom(-200, 200), obj.getY() + getRandom(-200, 200), obj.getZ() + 20, 0), 0);
 						}
 					}
 				}
 				break;
 			}
-			case "CHECK_ATTACK":{
-				if ((_lastAttack + 1800000) < System.currentTimeMillis())
-				{
-					if (npc != null)
-					{
+			case "CHECK_ATTACK": {
+				if ((_lastAttack + 1800000) < System.currentTimeMillis()) {
+					if (npc != null) {
 						npc.deleteMe();
 						cancelQuestTimer("CHECK_ATTACK", npc, null);
 						startQuestTimer("CLEAR_STATUS", 1000, null, null);
 					}
-				}
-				else
-				{
+				} else {
 					startQuestTimer("CHECK_ATTACK", 60000, npc, null);
 				}
 				break;
@@ -223,10 +190,8 @@ public class GiganticGolem extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onFirstTalk(L2Npc npc, L2PcInstance player)
-	{
-		if (npc.getId() == DR_CHAOS)
-		{
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
+		if (npc.getId() == DR_CHAOS) {
 			startQuestTimer("ATTACK_MACHINE", 3000, npc, player);
 			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(96320, -110912, -3328, 0));
 			broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.HOW_DARE_YOU_TRESPASS_INTO_MY_TERRITORY_HAVE_YOU_NO_FEAR);
@@ -235,30 +200,28 @@ public class GiganticGolem extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
-	{
-		if (npc.getId() == GIGANTIC_BOOM_GOLEM)
-		{
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
+		if (npc.getId() == GIGANTIC_BOOM_GOLEM) {
 			npc.doCast(GOLEM_BOOM);
-		}
-		else
-		{
+		} else {
 			_lastAttack = System.currentTimeMillis();
 			
-			if (!npc.isCastingNow())
-			{
-				if (getRandom(100) < 5)
-				{
+			if ((_raidBoss != null) && (!npc.isCastingNow())) {
+				if (getRandom(100) < 5) {
 					npc.doCast(NPC_EARTH_SHOT);
-				}
-				else if ((getRandom(100) < 1) && (npc.getCurrentHp() < (npc.getMaxHp() * MIN_HP_PERCENTAGE)))
-				{
-					npc.doCast(EMP_SHOCK);
+				} else if ((getRandom(100) < 1) && (npc.getCurrentHp() < (npc.getMaxHp() * MIN_HP_PERCENTAGE))) {
+					if (_skillsAcess) {
+						npc.doCast(EMP_SHOCK);
+					} else {
+						_skillsAcess = true;
+						_raidBoss.enableSkill(EMP_SHOCK.getSkill());
+					}
+				} else if (_skillsAcess) {
+					_skillsAcess = false;
+					_raidBoss.disableSkill(EMP_SHOCK.getSkill(), -1);
 				}
 			}
-			
-			if (!npc.getVariables().getBoolean(SPAWN_FLAG, false))
-			{
+			if (!npc.getVariables().getBoolean(SPAWN_FLAG, false)) {
 				npc.getVariables().set(SPAWN_FLAG, true);
 				int posX = npc.getX() + getRandom(-200, 200);
 				int posY = npc.getY() + getRandom(-200, 200);
@@ -270,9 +233,7 @@ public class GiganticGolem extends AbstractNpcAI
 				addSpawn(GIGANTIC_BOOM_GOLEM, posX + getRandom(-200, 200), posY + getRandom(-200, 200), npc.getZ() + 20, 0, false, 0);
 				startQuestTimer("FLAG", 360000, npc, null);
 			}
-			
-			if (npc.calculateDistance(npc.getSpawn().getLocation(), false, false) > MAX_CHASE_DIST)
-			{
+			if (npc.calculateDistance(npc.getSpawn().getLocation(), false, false) > MAX_CHASE_DIST) {
 				npc.disableCoreAI(true);
 				npc.teleToLocation(npc.getSpawn().getLocation());
 			}
@@ -281,8 +242,7 @@ public class GiganticGolem extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
-	{
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
 		final long respawnTime = RESPAWN * 3600000;
 		GlobalVariablesManager.getInstance().set("GolemRespawn", System.currentTimeMillis() + respawnTime);
 		startQuestTimer("CLEAR_STATUS", respawnTime, null, null);
@@ -291,31 +251,27 @@ public class GiganticGolem extends AbstractNpcAI
 	}
 	
 	@Override
-	protected void onTeleport(L2Npc npc)
-	{
+	protected void onTeleport(L2Npc npc) {
 		startQuestTimer("CORE_AI", 100, npc, null);
 	}
 	
 	@Override
-	public void onMoveFinished(L2Npc npc)
-	{
+	public void onMoveFinished(L2Npc npc) {
 		startQuestTimer("SKILL_ATTACK", 1000, npc, null);
 		startQuestTimer("MOVE_TIME", 3000, npc, null);
 	}
 	
 	@Override
-	public String onSpawn(L2Npc npc)
-	{
-		if (npc.getId() == GIGANTIC_BOOM_GOLEM)
-		{
+	public String onSpawn(L2Npc npc) {
+		if (npc.getId() == GIGANTIC_BOOM_GOLEM) {
 			npc.setIsRunning(true);
 			npc.scheduleDespawn(360000);
 			startQuestTimer("MOVE_TIME", 3000, npc, null);
 			((L2Attackable) npc).setCanReturnToSpawnPoint(false);
-		}
-		else
-		{
+		} else {
+			_raidBoss = npc;
 			_lastAttack = System.currentTimeMillis();
+			_raidBoss.disableSkill(EMP_SHOCK.getSkill(), -1);
 			startQuestTimer("CHECK_ATTACK", 300000, npc, null);
 			broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.BWAH_HA_HA_YOUR_DOOM_IS_AT_HAND_BEHOLD_THE_ULTRA_SECRET_SUPER_WEAPON);
 		}
diff --git a/src/main/resources/data/skillTrees/classSkillTree.xml b/src/main/resources/data/skillTrees/classSkillTree.xml
index 18e7fec4db6a4db65526594c53f9b0d69e627689..0a7cd9df493b667cb603b7302e8916c66c3b45f0 100644
--- a/src/main/resources/data/skillTrees/classSkillTree.xml
+++ b/src/main/resources/data/skillTrees/classSkillTree.xml
@@ -12673,7 +12673,6 @@
 		<skill skillName="Dryad Root" skillId="1201" skillLvl="26" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
 		<skill skillName="Word of Fear" skillId="1272" skillLvl="6" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
 		<skill skillName="Concentration" skillId="1078" skillLvl="5" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
-		<skill skillName="Resist Earth" skillId="1548" skillLvl="1" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
 		<skill skillName="Resist Poison" skillId="1033" skillLvl="1" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
 		<skill skillName="Erase" skillId="1395" skillLvl="3" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
 		<skill skillName="Mana Burn" skillId="1398" skillLvl="3" getLevel="60" levelUpSp="231000" learnedByNpc="true" />
@@ -12709,7 +12708,6 @@
 		<skill skillName="Dryad Root" skillId="1201" skillLvl="28" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
 		<skill skillName="Word of Fear" skillId="1272" skillLvl="8" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
 		<skill skillName="Bless the Body" skillId="1045" skillLvl="5" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
-		<skill skillName="Resist Earth" skillId="1548" skillLvl="2" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
 		<skill skillName="Resist Poison" skillId="1033" skillLvl="2" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
 		<skill skillName="Erase" skillId="1395" skillLvl="5" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
 		<skill skillName="Mana Burn" skillId="1398" skillLvl="5" getLevel="64" levelUpSp="370000" learnedByNpc="true" />
@@ -12749,7 +12747,6 @@
 		<skill skillName="Dryad Root" skillId="1201" skillLvl="30" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
 		<skill skillName="Word of Fear" skillId="1272" skillLvl="10" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
 		<skill skillName="Concentration" skillId="1078" skillLvl="6" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
-		<skill skillName="Resist Earth" skillId="1548" skillLvl="3" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
 		<skill skillName="Resist Poison" skillId="1033" skillLvl="3" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
 		<skill skillName="Erase" skillId="1395" skillLvl="7" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
 		<skill skillName="Mana Burn" skillId="1398" skillLvl="7" getLevel="68" levelUpSp="640000" learnedByNpc="true" />
diff --git a/src/main/resources/data/skillTrees/forgottenSkillTree.xml b/src/main/resources/data/skillTrees/forgottenSkillTree.xml
index 55801c9f8f48a6d600884e71740605dbdff5f945..f1f69f1e4cee54ecb3d10e2b1b89dab9cfbb572b 100644
--- a/src/main/resources/data/skillTrees/forgottenSkillTree.xml
+++ b/src/main/resources/data/skillTrees/forgottenSkillTree.xml
@@ -101,11 +101,11 @@
 		<skill skillName="Fighters Will" skillId="758" skillLvl="1" getLevel="81" learnedByFS="true" />
 		<skill skillName="Archers Will" skillId="759" skillLvl="1" getLevel="81" learnedByFS="true" />
 		<skill skillName="Expose Weak Point" skillId="767" skillLvl="1" getLevel="81" learnedByFS="true" />
-		<skill skillName="Dread Pool" skillId="774" skillLvl="1" getLevel="81" learnedByFS="true" />
 		<skill skillName="Final Secret" skillId="917" skillLvl="1" getLevel="81" learnedByFS="true" />
 		<skill skillName="Protection of Rune" skillId="755" skillLvl="1" getLevel="82" learnedByFS="true" />
 		<skill skillName="Protection of Elemental" skillId="756" skillLvl="1" getLevel="82" learnedByFS="true" />
 		<skill skillName="Protection of Alignment" skillId="757" skillLvl="1" getLevel="82" learnedByFS="true" />
+		<skill skillName="Dread Pool" skillId="774" skillLvl="1" getLevel="83" learnedByFS="true" />
 	</skillTree>
 	<!-- Phoenix Knight -->
 	<skillTree type="classSkillTree" classId="90">
diff --git a/src/main/resources/data/stats/npcs/25700-25799.xml b/src/main/resources/data/stats/npcs/25700-25799.xml
index 0d95746c4cfa3f6c6e72fd6ddf0b5e39b4db5fd1..0253e8be38e7e35d61bbe92ae41bca8f410bf96e 100644
--- a/src/main/resources/data/stats/npcs/25700-25799.xml
+++ b/src/main/resources/data/stats/npcs/25700-25799.xml
@@ -206,6 +206,9 @@
 			</minions>
 			<param name="Party_Type" value="2" />
 			<param name="Party_Loyalty" value="2" />
+			<param name="Skill01_Probablity" value="0" />
+			<skill name="Skill01_ID" id="6263" level="1" /> <!-- EMP Shock -->
+			<skill name="Skill02_ID" id="6608" level="10" /> <!-- NPC earth shot -->
 		</parameters>
 		<race>CONSTRUCT</race>
 		<sex>MALE</sex>
@@ -238,6 +241,8 @@
 			<skill id="4416" level="2" /> <!--Magic Creatures -->
 			<skill id="4494" level="1" /> <!--Raid Boss -->
 			<skill id="5465" level="1" /> <!--Earth Attacks -->
+			<skill id="6263" level="1" /> <!--EMP Shock -->
+			<skill id="6608" level="10" /> <!--NPC earth shot -->
 			<skill id="6663" level="1" /> <!--Level 76 Raid Boss -->
 		</skillList>
 		<exCrtEffect>true</exCrtEffect>
@@ -311,6 +316,10 @@
 	</npc>
 	<npc id="25705" level="74" type="L2Monster" name="Gigantic Boom Golem" title="Chaos">
 		<!-- Confirmed CT2.5 -->
+		<parameters>
+			<skill name="Skill01_ID" id="6265" level="1" /> <!-- Smoke -->
+			<skill name="Skill02_ID" id="6264" level="1" /> <!-- Golem Boom -->
+		</parameters>
 		<race>CONSTRUCT</race>
 		<sex>MALE</sex>
 		<stats str="40" int="21" dex="30" wit="20" con="43" men="20">
@@ -337,6 +346,8 @@
 			<skill id="4414" level="2" /> <!--Standard Type -->
 			<skill id="4415" level="3" /> <!--One-handed Sword -->
 			<skill id="4416" level="2" /> <!--Magic Creatures -->
+			<skill id="6264" level="1" /> <!--Golem Boom -->
+			<skill id="6265" level="1" /> <!--Smoke -->
 		</skillList>
 		<exCrtEffect>true</exCrtEffect>
 		<ai aggroRange="300" clanHelpRange="300" isAggressive="false" />