@Override
	public void move(Entity e) {
		if (!Exploded) {
			FuseRemaining--;
			if (FuseRemaining < 0) {
				Exploded = true;
			}
		}
		if (Exploded && !Shrinking) {
			Radius += growthrate;
			BOOM.playAsSoundEffect(0.2f + (float) (Radius * 0.001),
					0.1f + (float) (Radius * 0.005), false);
			if (Radius > MaxRadius) {
				Shrinking = true;
			}
		} else if (Exploded) {
			Radius -= shrinkrate;
		}
		int points = (int) (Math.random() * 27) + 3;
		float poly[] = new float[points * 2];
		float ANGLE = (float) (2 * Math.PI / (points));

		for (int i = 0; i <= points * 2 - 1; i += 2) {
			float pX = (float) (Radius / 2
					* Math.sin(ANGLE * i + (Math.random() * ANGLE)) + Math
					.random() * 20) + x;
			float pY = (float) (Radius / 2
					* Math.cos(ANGLE * i + (Math.random() * ANGLE)) + Math
					.random() * Math.min(20, Radius))
					+ y;
			poly[i] = pX;
			poly[i + 1] = pY;
		}
		shape = new Polygon(poly);
		if (Radius < 0 && Shrinking) {
			death((byte) 0);
		}
	}