public void setInvul(boolean invulState) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst != null) { mobInst.setInvul(invulState); } } }
protected void removeDead() { List<L2ControllableMobInstance> deadMobs = new FastList<>(); for (L2ControllableMobInstance mobInst : getMobs()) { if ((mobInst != null) && mobInst.isDead()) { deadMobs.add(mobInst); } } getMobs().removeAll(deadMobs); }
public void setNoMoveMode(boolean enabled) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.setNotMoving(enabled); } }
public void setFollowMode(L2Character character) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.follow(character); } }
public void setCastMode() { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.setAlternateAI(L2ControllableMobAI.AI_CAST); } }
public void setIdleMode() { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.stop(); } }
public void setAttackTarget(L2Character target) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.forceAttack(target); } }
public boolean isGroupMember(L2ControllableMobInstance mobInst) { for (L2ControllableMobInstance groupMember : getMobs()) { if (groupMember == null) { continue; } if (groupMember.getObjectId() == mobInst.getObjectId()) { return true; } } return false; }
public void setAttackGroup(MobGroup otherGrp) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.forceAttackGroup(otherGrp); ai.setIntention(CtrlIntention.AI_INTENTION_ACTIVE); } }
public void setAttackRandom() { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.setAlternateAI(L2ControllableMobAI.AI_NORMAL); ai.setIntention(CtrlIntention.AI_INTENTION_ACTIVE); } }
public void killGroup(L2PcInstance activeChar) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } if (!mobInst.isDead()) { mobInst.reduceCurrentHp(mobInst.getMaxHp() + 1, activeChar, null); } SpawnTable.getInstance().deleteSpawn(mobInst.getSpawn(), false); } getMobs().clear(); }
public void teleportGroup(L2PcInstance player) { removeDead(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } if (!mobInst.isDead()) { int x = player.getX() + Rnd.nextInt(50); int y = player.getY() + Rnd.nextInt(50); mobInst.teleToLocation(x, y, player.getZ(), true); L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.follow(player); } } }
public void returnGroup(L2Character activeChar) { setIdleMode(); for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } int signX = (Rnd.nextInt(2) == 0) ? -1 : 1; int signY = (Rnd.nextInt(2) == 0) ? -1 : 1; int randX = Rnd.nextInt(MobGroupTable.RANDOM_RANGE); int randY = Rnd.nextInt(MobGroupTable.RANDOM_RANGE); L2ControllableMobAI ai = (L2ControllableMobAI) mobInst.getAI(); ai.move( activeChar.getX() + (signX * randX), activeChar.getY() + (signY * randY), activeChar.getZ()); } }
public void unspawnGroup() { removeDead(); if (getActiveMobCount() == 0) { return; } for (L2ControllableMobInstance mobInst : getMobs()) { if (mobInst == null) { continue; } if (!mobInst.isDead()) { mobInst.deleteMe(); } SpawnTable.getInstance().deleteSpawn(mobInst.getSpawn(), false); } getMobs().clear(); }