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