private L2Character findNextRndTarget(double aggroRange) { L2Attackable npc = (L2Attackable)_actor; double dblAggroRange = aggroRange*aggroRange; if(dblAggroRange == 1.0) dblAggroRange = 2000; List potentialTarget = new FastList(); for (L2Object obj : npc.getKnownList().getKnownObjects().values()) { if(!(obj instanceof L2PcInstance) || !(obj instanceof L2Summon)) continue; double dist2 = ((L2Attackable)_actor).getPlanDistanceSq(obj.getX(), obj.getY()); if (dist2 > dblAggroRange) continue; L2Character target = (L2Character)obj; if(target.isDead()) continue; potentialTarget.add(target); } if (potentialTarget.size() == 0) // nothing to do return null; // we choose a random target int choice = Rnd.nextInt(potentialTarget.size()); L2Character target = potentialTarget.get(choice); return target; }