@Override
	public void update(final int delta) {
		if (!isActive && !Game.getInstance().getCurrentLevel().isWon())
			return;

		pos.y -= 400. * delta / DURATION;

		timeLeft -= delta;
		if (timeLeft < 0) {
			kill();

			if (Game.getInstance().getCurrentLevel().getLevelType() == Level.LEVEL_COMPLEX) {
				World.getInstance().addEntity(new ActionRocketEntity(startPos, color));
			}

			for (int x = -2; x <= 2; x++) {
				for (int y = -2; y <= 2; y++) {
					if (x + y == 0)
						continue;
					World.getInstance().addEntity(new SparkEntity(pos, new Vector2d(x, y), color));
				}

			}
		}
	}