public BlueShell(GL2 gl, Scene scene, Vehicle car, float trajectory) {
    super(gl, scene, car, trajectory);

    if (shellList == -1) {
      shellList = gl.glGenLists(1);
      gl.glNewList(shellList, GL2.GL_COMPILE);
      displayWildcardObject(gl, SHELL_FACES, textures);
      gl.glEndList();

      spikeNode = new SceneNode(spike_model);
      spikeNode.setRenderMode(RenderMode.COLOR);

      noiseSampler = TextureLoader.load(gl, "tex/blast_noise.png");

      float[] blastColor = RGB.INDIGO;

      blastLight = new Light(gl, new Vec3(), blastColor, blastColor, blastColor);

      blastLight.setConstantAttenuation(0.5f);
      blastLight.setLinearAttenuation(0.001f);
      blastLight.setQuadraticAttenuation(0.001f);
      blastLight.enableAttenuation = true;
      blastLight.disable(gl);
    }

    generator = new ParticleGenerator();

    boundColor = RGB.toRGBA(RGB.INDIGO, BOUND_ALPHA);
  }
  public BlueShell(Scene scene, Vec3 c) {
    super(null, scene, null, 0);

    bound = new Sphere(c, RADIUS);
    boundColor = RGB.toRGBA(RGB.INDIGO, BOUND_ALPHA);

    generator = new ParticleGenerator();
  }