setCardBackId(cardBackId) {
    if (this._cardBackId !== cardBackId) {
      this._cardBackId = cardBackId;

      // remove previous card back sprites
      if (this.cardBackSprite != null) {
        this.cardBackSprite.destroy();
        this.cardBackSprite = null;
      }
      if (this.cardBackGlowOutlineSprite != null) {
        this.cardBackGlowOutlineSprite.destroy();
        this.cardBackGlowOutlineSprite = null;
      }

      // invalidate previous resources
      if (this._cardBackResourceRequestId != null) {
        this.removeResourceRequestById(this._cardBackResourceRequestId);
        this._cardBackResourceRequestId = null;
      }

      if (this._cardBackId != null) {
        // load new
        const cardBackPkgId = PKGS.getCardBackPkgIdentifier(this._cardBackId);
        const cardBackResourceRequestId = this._cardBackResourceRequestId = `${cardBackPkgId}_${UtilsJavascript.generateIncrementalId()}`;

        // setup promise to wait for resources
        this.addResourceRequest(cardBackResourceRequestId, cardBackPkgId)
          .then((cardBackResourceRequestId) => {
            if (!this.getAreResourcesValid(cardBackResourceRequestId)) return; // card back has changed

            // initialize card back sprites
            const cardBackData = SDK.CosmeticsFactory.cardBackForIdentifier(this._cardBackId);

            // card back
            this.cardBackSprite = GlowSprite.create(cardBackData.img);
            this.cardBackSprite.setFlippedX(true);
            this._containerNodeBack.addChild(this.cardBackSprite, -3.0);

            // glow outline
            this.cardBackGlowOutlineSprite = BaseSprite.create(cardBackData.glowOutlineRSX.img);
            this.cardBackGlowOutlineSprite.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
            this.cardBackGlowOutlineSprite.setFlippedX(true);
            this.cardBackGlowOutlineSprite.setVisible(false);
            this._containerNodeBack.addChild(this.cardBackGlowOutlineSprite, -2.0);
          });
      }
    }
  }
Sets card back identifier, loading resources and swapping sprites as needed.