@Override
	public void update(double dt) {
		super.update(dt);

		for (Entity e : level.getEntityNear(y, x, getWidth(), getHeight())) {
			if (e == this || e == owner || !(e instanceof LivingEntity))
				continue;

			boolean collide = Collide.aabb(x, y, getWidth(),
					(int) getHeight(), e.getBox().x, e.getBox().y,
					e.getBox().width, e.getBox().height);

			if (collide) {
				hit((LivingEntity) e);
			}
		}

		for (LivingEntity e : hit) {
			e.dx += Math.cos(angle) * repulsePower;
			e.dy += Math.sin(angle) * repulsePower;
		}
		
		if (time >= duration) {
			remove();
		}
	}