Boss related script cleanups.
This commit is contained in:
		@@ -76,10 +76,8 @@ public class Core extends AbstractNpcAI
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final byte ALIVE = 0;
 | 
			
		||||
	private static final byte DEAD = 1;
 | 
			
		||||
	
 | 
			
		||||
	private static boolean _firstAttacked;
 | 
			
		||||
	
 | 
			
		||||
	private static final Collection<Attackable> _minions = ConcurrentHashMap.newKeySet();
 | 
			
		||||
	private static boolean _firstAttacked;
 | 
			
		||||
	
 | 
			
		||||
	private Core()
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -71,10 +71,6 @@ public class Orfen extends AbstractNpcAI
 | 
			
		||||
	// private static final int RIBA = 29017;
 | 
			
		||||
	private static final int RIBA_IREN = 29018;
 | 
			
		||||
	
 | 
			
		||||
	private static boolean _IsTeleported;
 | 
			
		||||
	private static Set<Attackable> _minions = ConcurrentHashMap.newKeySet();
 | 
			
		||||
	private static ZoneType ZONE;
 | 
			
		||||
	
 | 
			
		||||
	private static final byte ALIVE = 0;
 | 
			
		||||
	private static final byte DEAD = 1;
 | 
			
		||||
	
 | 
			
		||||
@@ -82,6 +78,10 @@ public class Orfen extends AbstractNpcAI
 | 
			
		||||
	private static final SkillHolder BLOW = new SkillHolder(4067, 4);
 | 
			
		||||
	private static final SkillHolder ORFEN_HEAL = new SkillHolder(4516, 1);
 | 
			
		||||
	
 | 
			
		||||
	private static boolean _isTeleported;
 | 
			
		||||
	private static Set<Attackable> _minions = ConcurrentHashMap.newKeySet();
 | 
			
		||||
	private static ZoneType _zone;
 | 
			
		||||
	
 | 
			
		||||
	private Orfen()
 | 
			
		||||
	{
 | 
			
		||||
		final int[] mobs =
 | 
			
		||||
@@ -91,8 +91,8 @@ public class Orfen extends AbstractNpcAI
 | 
			
		||||
			RIBA_IREN
 | 
			
		||||
		};
 | 
			
		||||
		registerMobs(mobs);
 | 
			
		||||
		_IsTeleported = false;
 | 
			
		||||
		ZONE = ZoneManager.getInstance().getZoneById(12013);
 | 
			
		||||
		_isTeleported = false;
 | 
			
		||||
		_zone = ZoneManager.getInstance().getZoneById(12013);
 | 
			
		||||
		final StatSet info = GrandBossManager.getInstance().getStatSet(ORFEN);
 | 
			
		||||
		final int status = GrandBossManager.getInstance().getBossStatus(ORFEN);
 | 
			
		||||
		if (status == DEAD)
 | 
			
		||||
@@ -199,12 +199,12 @@ public class Orfen extends AbstractNpcAI
 | 
			
		||||
		}
 | 
			
		||||
		else if (event.equalsIgnoreCase("check_orfen_pos"))
 | 
			
		||||
		{
 | 
			
		||||
			if ((_IsTeleported && (npc.getCurrentHp() > (npc.getMaxHp() * 0.95))) || (!ZONE.isInsideZone(npc) && !_IsTeleported))
 | 
			
		||||
			if ((_isTeleported && (npc.getCurrentHp() > (npc.getMaxHp() * 0.95))) || (!_zone.isInsideZone(npc) && !_isTeleported))
 | 
			
		||||
			{
 | 
			
		||||
				setSpawnPoint(npc, getRandom(3) + 1);
 | 
			
		||||
				_IsTeleported = false;
 | 
			
		||||
				_isTeleported = false;
 | 
			
		||||
			}
 | 
			
		||||
			else if (_IsTeleported && !ZONE.isInsideZone(npc))
 | 
			
		||||
			else if (_isTeleported && !_zone.isInsideZone(npc))
 | 
			
		||||
			{
 | 
			
		||||
				setSpawnPoint(npc, 0);
 | 
			
		||||
			}
 | 
			
		||||
@@ -292,9 +292,9 @@ public class Orfen extends AbstractNpcAI
 | 
			
		||||
		final int npcId = npc.getId();
 | 
			
		||||
		if (npcId == ORFEN)
 | 
			
		||||
		{
 | 
			
		||||
			if (!_IsTeleported && ((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 4)))
 | 
			
		||||
			if (!_isTeleported && ((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 4)))
 | 
			
		||||
			{
 | 
			
		||||
				_IsTeleported = true;
 | 
			
		||||
				_isTeleported = true;
 | 
			
		||||
				setSpawnPoint(npc, 0);
 | 
			
		||||
			}
 | 
			
		||||
			else if (npc.isInsideRadius2D(attacker, 1000) && !npc.isInsideRadius2D(attacker, 300) && (getRandom(10) == 0))
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_FOLLOW;
 | 
			
		||||
import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_IDLE;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.l2jmobius.commons.util.Chronos;
 | 
			
		||||
import org.l2jmobius.gameserver.data.xml.SkillData;
 | 
			
		||||
@@ -48,10 +49,10 @@ public class ScarletVanHalisha extends AbstractNpcAI
 | 
			
		||||
	private static final int FRINTEZZA_DAEMON_MORPH = 5018;
 | 
			
		||||
	private static final int FRINTEZZA_DAEMON_FIELD = 5019;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int RANGED_SKILL_MIN_COOLTIME = 60000; // 1 minute
 | 
			
		||||
	private Creature _target;
 | 
			
		||||
	private Skill _skill;
 | 
			
		||||
	private long _lastRangedSkillTime;
 | 
			
		||||
	private static final int RANGED_SKILL_MIN_COOLTIME = 60000; // 1 minute
 | 
			
		||||
	
 | 
			
		||||
	public ScarletVanHalisha()
 | 
			
		||||
	{
 | 
			
		||||
@@ -170,12 +171,12 @@ public class ScarletVanHalisha extends AbstractNpcAI
 | 
			
		||||
		{
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if ((getRandom(100) < 30) || (_target == null) || _target.isDead())
 | 
			
		||||
		{
 | 
			
		||||
			_skill = getRndSkills(npc);
 | 
			
		||||
			_target = getRandomTarget(npc, _skill);
 | 
			
		||||
		}
 | 
			
		||||
		final Creature target = _target;
 | 
			
		||||
		Skill skill = _skill;
 | 
			
		||||
		if (skill == null)
 | 
			
		||||
		{
 | 
			
		||||
@@ -187,6 +188,7 @@ public class ScarletVanHalisha extends AbstractNpcAI
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		final Creature target = _target;
 | 
			
		||||
		if ((target == null) || target.isDead())
 | 
			
		||||
		{
 | 
			
		||||
			// npc.setCastingNow(false);
 | 
			
		||||
@@ -211,49 +213,48 @@ public class ScarletVanHalisha extends AbstractNpcAI
 | 
			
		||||
	
 | 
			
		||||
	private Creature getRandomTarget(Npc npc, Skill skill)
 | 
			
		||||
	{
 | 
			
		||||
		final ArrayList<Creature> result = new ArrayList<>();
 | 
			
		||||
		final List<Creature> result = new ArrayList<>();
 | 
			
		||||
		for (Player obj : npc.getInstanceWorld().getPlayers())
 | 
			
		||||
		{
 | 
			
		||||
			for (Player obj : npc.getInstanceWorld().getPlayers())
 | 
			
		||||
			if (obj.isPlayer() && obj.getActingPlayer().isInvisible())
 | 
			
		||||
			{
 | 
			
		||||
				if (obj.isPlayer() && obj.getActingPlayer().isInvisible())
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			if (((obj.getZ() < (npc.getZ() - 100)) && (obj.getZ() > (npc.getZ() + 100))) || !GeoEngine.getInstance().canSeeTarget(obj, npc))
 | 
			
		||||
			{
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			int skillRange = 150;
 | 
			
		||||
			if (skill != null)
 | 
			
		||||
			{
 | 
			
		||||
				switch (skill.getId())
 | 
			
		||||
				{
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
				if (((obj.getZ() < (npc.getZ() - 100)) && (obj.getZ() > (npc.getZ() + 100))) || !GeoEngine.getInstance().canSeeTarget(obj, npc))
 | 
			
		||||
				{
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
				int skillRange = 150;
 | 
			
		||||
				if (skill != null)
 | 
			
		||||
				{
 | 
			
		||||
					switch (skill.getId())
 | 
			
		||||
					case FRINTEZZA_DAEMON_ATTACK:
 | 
			
		||||
					{
 | 
			
		||||
						case FRINTEZZA_DAEMON_ATTACK:
 | 
			
		||||
						{
 | 
			
		||||
							skillRange = 150;
 | 
			
		||||
							break;
 | 
			
		||||
						}
 | 
			
		||||
						case FRINTEZZA_DAEMON_CHARGE:
 | 
			
		||||
						{
 | 
			
		||||
							skillRange = 400;
 | 
			
		||||
							break;
 | 
			
		||||
						}
 | 
			
		||||
						case YOKE_OF_SCARLET:
 | 
			
		||||
						{
 | 
			
		||||
							skillRange = 200;
 | 
			
		||||
							break;
 | 
			
		||||
						}
 | 
			
		||||
						case FRINTEZZA_DAEMON_MORPH:
 | 
			
		||||
						case FRINTEZZA_DAEMON_FIELD:
 | 
			
		||||
						{
 | 
			
		||||
							_lastRangedSkillTime = Chronos.currentTimeMillis();
 | 
			
		||||
							skillRange = 550;
 | 
			
		||||
							break;
 | 
			
		||||
						}
 | 
			
		||||
						skillRange = 150;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case FRINTEZZA_DAEMON_CHARGE:
 | 
			
		||||
					{
 | 
			
		||||
						skillRange = 400;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case YOKE_OF_SCARLET:
 | 
			
		||||
					{
 | 
			
		||||
						skillRange = 200;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case FRINTEZZA_DAEMON_MORPH:
 | 
			
		||||
					case FRINTEZZA_DAEMON_FIELD:
 | 
			
		||||
					{
 | 
			
		||||
						_lastRangedSkillTime = Chronos.currentTimeMillis();
 | 
			
		||||
						skillRange = 550;
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
				if (Util.checkIfInRange(skillRange, npc, obj, true) && !((Creature) obj).isDead())
 | 
			
		||||
				{
 | 
			
		||||
					result.add(obj);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user