@Override
	public void processNPC() {
		super.processNPC();
		List<WorldObject> objects = World.getRegion(getRegionId()).getSpawnedObjects();
		if (objects != null) {
			final HunterNPC info = HunterNPC.forId(getId());
			int objectId = info.getEquipment().getObjectId();
			for (final WorldObject object : objects) {
				if (object.getId() == objectId) {
					if (OwnedObjectManager.convertIntoObject(object,
							new WorldObject(info.getSuccessfulTransformObjectId(), 10, 0,
									this.getX(), this.getY(), this.getPlane()),
									new ConvertEvent() {
						@Override
						public boolean canConvert(Player player) {
							if (player == null || player.getLockDelay() > Utils.currentTimeMillis())
								return false;
							if (Hunter.isSuccessful(player, info.getLevel(), new DynamicFormula() {
								@Override
								public int getExtraProbablity(Player player) {
									//bait here
									return 1;
								}
							})) {
								failedAttempt(object, info);
								return false;
							} else {
								setNextAnimation(info.getSuccessCatchAnim());
								return true;
							}
						}
					})) {
						setRespawnTask(); // auto finishes
					}
				}
			}
		}
	}