ctor() {
    // do super constructor
    this._super();

    this.whenRequiredResourcesReady().then((requestId) => {
      if (!this.getAreResourcesValid(requestId)) return; // resources have been invalidated

      this._gradientFloorSprite = new BaseSprite(RSX.prismatic_gradients.img);
      this._gradientFloorSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._gradientFloorSprite.setXYZRotation(CONFIG.ENTITY_XYZ_ROTATION);
      this._gradientFloorSprite.setScale(0.65);
      this._gradientFloorSprite.setVisible(false);

      // voronoi
      this._voronoiPrismaticSprite = new VoronoiPrismaticSprite();
      this._voronoiPrismaticSprite.setXYZRotation(CONFIG.ENTITY_XYZ_ROTATION);
      this._voronoiPrismaticSprite.setTextureRect(this._gradientFloorSprite._rect);
      this._voronoiPrismaticSprite.setScale(0.5);
      this._voronoiPrismaticSprite.setVisible(false);

      // soft rays
      this._raySoftRedSprite = new BaseSprite(RSX.prismatic_ray_soft_red.img);
      this._raySoftRedSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._raySoftRedSprite.setAnchorPoint(0.5, 0.0);
      this._raySoftRedSprite.setOpacity(this._rayOpacity);
      this._raySoftRedSprite.setScale(this._rayScale);
      this._raySoftRedSprite.setVisible(false);
      this._raySoftGreenSprite = new BaseSprite(RSX.prismatic_ray_soft_green.img);
      this._raySoftGreenSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._raySoftGreenSprite.setAnchorPoint(0.5, 0.0);
      this._raySoftGreenSprite.setOpacity(this._rayOpacity);
      this._raySoftGreenSprite.setScale(this._rayScale);
      this._raySoftGreenSprite.setVisible(false);
      this._raySoftBlueSprite = new BaseSprite(RSX.prismatic_ray_soft_blue.img);
      this._raySoftBlueSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._raySoftBlueSprite.setAnchorPoint(0.5, 0.0);
      this._raySoftBlueSprite.setOpacity(this._rayOpacity);
      this._raySoftBlueSprite.setScale(this._rayScale);
      this._raySoftBlueSprite.setVisible(false);

      // hard rays
      this._rayHardRedSprite = new BaseSprite(RSX.prismatic_ray_hard_red.img);
      this._rayHardRedSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._rayHardRedSprite.setAnchorPoint(0.5, 0.0);
      this._rayHardRedSprite.setOpacity(this._rayOpacity);
      this._rayHardRedSprite.setScale(this._rayScale);
      this._rayHardRedSprite.setVisible(false);
      this._rayHardGreenSprite = new BaseSprite(RSX.prismatic_ray_hard_green.img);
      this._rayHardGreenSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._rayHardGreenSprite.setAnchorPoint(0.5, 0.0);
      this._rayHardGreenSprite.setOpacity(this._rayOpacity);
      this._rayHardGreenSprite.setScale(this._rayScale);
      this._rayHardGreenSprite.setVisible(false);
      this._rayHardBlueSprite = new BaseSprite(RSX.prismatic_ray_hard_blue.img);
      this._rayHardBlueSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
      this._rayHardBlueSprite.setAnchorPoint(0.5, 0.0);
      this._rayHardBlueSprite.setOpacity(this._rayOpacity);
      this._rayHardBlueSprite.setScale(this._rayScale);
      this._rayHardBlueSprite.setVisible(false);

      // particles
      const randomRangeX = CONFIG.TILESIZE * 0.25;
      const randomRangeY = CONFIG.TILESIZE * 0.25;
      this._particles = BaseParticleSystem.create(RSX.prismatic_card_particles.plist);
      this._particles.setFadeInAtLifePct(0.1);
      this._particles.setPosition(0.0, randomRangeY * 2.0);
      this._particles.setPosVar(cc.p(randomRangeX * 2.0, randomRangeY));
      this._particles.stopSystem();

      this.addChild(this._gradientFloorSprite);
      this.addChild(this._voronoiPrismaticSprite);
      this.addChild(this._raySoftRedSprite);
      this.addChild(this._raySoftGreenSprite);
      this.addChild(this._raySoftBlueSprite);
      this.addChild(this._rayHardRedSprite);
      this.addChild(this._rayHardGreenSprite);
      this.addChild(this._rayHardBlueSprite);
      this.addChild(this._particles);
    });
  }
*************************************************************************
PrismaticPlayCardNode
var PrismaticPlayCardNode = cc.Node
PrismaticPlayCardNode.create()
**************************************************************************