Boss related script cleanups.

This commit is contained in:
MobiusDevelopment
2022-01-31 05:43:13 +00:00
parent 3bf00c88bf
commit f43491f64f
179 changed files with 3171 additions and 3794 deletions

View File

@@ -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()
{

View File

@@ -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))

View File

@@ -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);