public void tick() {
		if(!removed) {
			lifetime--;

			radiusx = (int) (startradiusx*(0.5+rand.nextDouble()/2));
			radiusy = (int) (startradiusy*(0.5+rand.nextDouble()/2));
			
			int wigglex = 0;
			int wiggley = 0;
			
			if(lifetime % 1 == 0) {
				wigglex = (int) (Math.cos((rand.nextDouble()*2*Math.PI))*2);
				wiggley = (int) (Math.sin((rand.nextDouble()*2*Math.PI))*2);
			}
			
			xto = x + (int) (vec.x + velocity.x) + wigglex;
			yto = y + (int) (vec.y + velocity.y) + wiggley;

			if(!canMoveX() || !canMoveY())
				die();
			
			if(canMoveX())
				moveX();
			if(canMoveY())
				moveY();
			if(lifetime <= 0)
				removed = true;

		}
	}