From a10bdc2e2056e8fde02411e1716f7e21f5d50df7 Mon Sep 17 00:00:00 2001
From: Rumen Nikiforov <unafraid89@gmail.com>
Date: Mon, 30 Jun 2014 19:05:17 +0000
Subject: [PATCH] BETA: DP-Part for [L6577]

---
 L2J_DataPack_BETA/dist/game/data/scripts.cfg  |   1 -
 .../group_template/L2AttackableAIScript.java  | 222 ------------------
 2 files changed, 223 deletions(-)
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
index f0f42cdab3..945f1430aa 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg
+++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
@@ -91,7 +91,6 @@ ai/fantasy_isle/MC_Show.java
 ai/fantasy_isle/HandysBlockCheckerEvent.java
 
 # Group Template
-ai/group_template/L2AttackableAIScript.java
 ai/group_template/AltarsOfSacrifice.java
 ai/group_template/BeastFarm.java
 ai/group_template/DenOfEvil.java
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java
deleted file mode 100644
index 1cd9ab59af..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (C) 2004-2014 L2J DataPack
- * 
- * This file is part of L2J DataPack.
- * 
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package ai.group_template;
-
-import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ATTACK;
-
-import java.util.List;
-
-import ai.npc.AbstractNpcAI;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.ai.CtrlEvent;
-import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.datatables.NpcData;
-import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
-import com.l2jserver.gameserver.model.L2Object;
-import com.l2jserver.gameserver.model.actor.L2Attackable;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2RiftInvaderInstance;
-import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.skills.Skill;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Overarching Superclass for all mob AI.
- * @author Fulminus
- */
-public final class L2AttackableAIScript extends AbstractNpcAI
-{
-	private L2AttackableAIScript()
-	{
-		super(L2AttackableAIScript.class.getSimpleName(), "ai");
-		final List<L2NpcTemplate> templates = NpcData.getInstance().getTemplates(npc -> (npc.getLevel() >= 1) && (npc.getLevel() < 100));
-		
-		// register all mobs here...
-		for (L2NpcTemplate t : templates)
-		{
-			try
-			{
-				if (L2Attackable.class.isAssignableFrom(Class.forName("com.l2jserver.gameserver.model.actor.instance." + t.getType() + "Instance")))
-				{
-					addAttackId(t.getId());
-					addKillId(t.getId());
-					addSkillSeeId(t.getId());
-					addSpawnId(t.getId());
-					addFactionCallId(t.getId());
-					addAggroRangeEnterId(t.getId());
-				}
-			}
-			catch (ClassNotFoundException ex)
-			{
-				_log.info("Class not found " + t.getType() + "Instance");
-			}
-		}
-	}
-	
-	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
-	{
-		return null;
-	}
-	
-	@Override
-	public String onSpellFinished(L2Npc npc, L2PcInstance player, Skill skill)
-	{
-		return null;
-	}
-	
-	@Override
-	public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon)
-	{
-		if (caster == null)
-		{
-			return null;
-		}
-		if (!(npc instanceof L2Attackable))
-		{
-			return null;
-		}
-		
-		L2Attackable attackable = (L2Attackable) npc;
-		
-		int skillEffectPoint = skill.getEffectPoint();
-		
-		if (caster.hasSummon())
-		{
-			if ((targets.length == 1) && Util.contains(targets, caster.getSummon()))
-			{
-				skillEffectPoint = 0;
-			}
-		}
-		
-		if (skillEffectPoint > 0)
-		{
-			if (attackable.hasAI() && (attackable.getAI().getIntention() == AI_INTENTION_ATTACK))
-			{
-				L2Object npcTarget = attackable.getTarget();
-				for (L2Object skillTarget : targets)
-				{
-					if ((npcTarget == skillTarget) || (npc == skillTarget))
-					{
-						L2Character originalCaster = isSummon ? caster.getSummon() : caster;
-						attackable.addDamageHate(originalCaster, 0, (skillEffectPoint * 150) / (attackable.getLevel() + 7));
-					}
-				}
-			}
-		}
-		
-		return null;
-	}
-	
-	@Override
-	public String onFactionCall(L2Npc npc, L2Npc caller, L2PcInstance attacker, boolean isSummon)
-	{
-		if (attacker == null)
-		{
-			return null;
-		}
-		
-		L2Character originalAttackTarget = (isSummon ? attacker.getSummon() : attacker);
-		if (attacker.isInParty() && attacker.getParty().isInDimensionalRift())
-		{
-			byte riftType = attacker.getParty().getDimensionalRift().getType();
-			byte riftRoom = attacker.getParty().getDimensionalRift().getCurrentRoom();
-			
-			if ((caller instanceof L2RiftInvaderInstance) && !DimensionalRiftManager.getInstance().getRoom(riftType, riftRoom).checkIfInZone(npc.getX(), npc.getY(), npc.getZ()))
-			{
-				return null;
-			}
-		}
-		
-		// By default, when a faction member calls for help, attack the caller's attacker.
-		// Notify the AI with EVT_AGGRESSION
-		npc.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, originalAttackTarget, 1);
-		
-		return null;
-	}
-	
-	@Override
-	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
-	{
-		if (player == null)
-		{
-			return null;
-		}
-		
-		L2Character target = isSummon ? player.getSummon() : player;
-		
-		((L2Attackable) npc).addDamageHate(target, 0, 1);
-		
-		// Set the intention to the L2Attackable to AI_INTENTION_ACTIVE
-		if (npc.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
-		{
-			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
-		}
-		return null;
-	}
-	
-	@Override
-	public String onSpawn(L2Npc npc)
-	{
-		return null;
-	}
-	
-	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
-	{
-		if ((attacker != null) && (npc instanceof L2Attackable))
-		{
-			L2Attackable attackable = (L2Attackable) npc;
-			
-			L2Character originalAttacker = isSummon ? attacker.getSummon() : attacker;
-			attackable.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, originalAttacker);
-			attackable.addDamageHate(originalAttacker, damage, (damage * 100) / (attackable.getLevel() + 7));
-		}
-		return null;
-	}
-	
-	@Override
-	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
-	{
-		if (npc instanceof L2MonsterInstance)
-		{
-			final L2MonsterInstance mob = (L2MonsterInstance) npc;
-			if ((mob.getLeader() != null) && mob.getLeader().hasMinions())
-			{
-				final int respawnTime = Config.MINIONS_RESPAWN_TIME.containsKey(npc.getId()) ? Config.MINIONS_RESPAWN_TIME.get(mob.getId()) * 1000 : -1;
-				mob.getLeader().getMinionList().onMinionDie(mob, respawnTime);
-			}
-			
-			if (mob.hasMinions())
-			{
-				mob.getMinionList().onMasterDie(false);
-			}
-		}
-		return null;
-	}
-	
-	public static void main(String[] args)
-	{
-		new L2AttackableAIScript();
-	}
-}
\ No newline at end of file
-- 
GitLab