@Override
	public void think(){
		Random rand = new Random(System.currentTimeMillis());

		if (!hasTarget){
			ArrayList<AbstractMob> targetslist = Boot.getNPCList().findNearMobs(xLoc, yLoc, 6, getID());

			if (targetslist != null){
				AbstractMob target = findBestTarget(targetslist);
				if (target != null){
					hasTarget = true;
					this.target = target;
				}
			} else {
				if (rand.nextInt(4) == 0){
					move(rand.nextInt(4));
				}
			}
		} else {
			double distance = PointMath.distance2Points(target.getX(), target.getY(), this.getX(), this.getY());

			if (attackTimer == 0 && distance < 2){
				attackTimer = attackSpeed;
				target.damage(10);
			}
			if (distance < 8){
				move(goTowardsTargetDirection());
			} else {
				hasTarget = false;
				this.target = null;
			}
		}
	}