public void removeKnownObject(L2Object object) { if (object == null) return; // Remove a L2Object from _knownObjects, _knownPlayer, _aggroList of the L2Attackable then cancel Attak or Cast if it was targeted super.removeKnownObject(object); // Check if the object is a L2Character if (!(object instanceof L2Character)) return; if (hasAI()) { // Notify the L2MonsterInstance AI with EVT_FORGET_OBJECT getAI().notifyEvent(CtrlEvent.EVT_FORGET_OBJECT, object); //TODO Remove this function because it's already done in L2Character.removeKnownObject // Set the current target to null if the forgotten L2Object was the targeted L2Object // L2Character temp = (L2Character)object; //if (getTarget() == temp) // setTarget(null); } if (isVisible() && getKnownPlayers().isEmpty()) { // Clear the _aggroList of the L2MonsterInstance clearAggroList(); // Remove all L2Object from _knownObjects and _knownPlayer of the L2MonsterInstance then cancel Attak or Cast and notify AI //removeAllKnownObjects(); //TODO Remove this function because it's already done in L2Attackable.removeKnownObject // Set the L2MonsterInstance AI to AI_INTENTION_IDLE // if (hasAI()) // getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null); return; } }