showSpawn() {
    if (!this.getIsSpawned()) {
      this.setSpawned(true);
      this.whenResourcesReady(this.getCardResourceRequestId()).then((cardResourceRequestId) => {
        if (!this.getAreResourcesValid(cardResourceRequestId)) return; // card has changed
        // play apply sound
        const sfx_apply = this.getSoundResource() && this.getSoundResource().apply;
        if (sfx_apply != null) {
          audio_engine.current().play_effect(sfx_apply, false);
        }

        // show the spawn
        this.showSpawnSprites();

        // update owner sprites
        this.updateOwnerSprites();

        if (SDK.Cards.getIsPrismaticCardId(this.sdkCard.getId())) {
          // show prismatic spawn
          if (this.sdkCard.isOwnedByMyPlayer()) {
            this.addInjectedVisualStateTagWithId(EntityNodeVisualStateTag.createShowGlowForPlayerTag(), this._prismaticSpawnGlowTagId);
          } else {
            this.addInjectedVisualStateTagWithId(EntityNodeVisualStateTag.createShowGlowForOpponentTag(), this._prismaticSpawnGlowTagId);
          }

          const colorForOwnerTint = this._getColorForOwnerTint() || cc.color(255, 255, 255);
          this.entitySprite.runAction(cc.sequence(
            cc.tintTo(0.2, 0, 0, 0),
            cc.delayTime(0.2),
            cc.tintTo(0.2, colorForOwnerTint.r, colorForOwnerTint.g, colorForOwnerTint.b),
            cc.callFunc(() => {
              this.removeInjectedVisualStateTagById(this._prismaticSpawnGlowTagId);
            }),
          ));

          // show prismatic state
          if (!CONFIG.SHOW_PRISMATIC_ONLY_ON_INSPECT
            && !(this.sdkCard instanceof SDK.Tile)) {
            this.showPrismatic();
          }
        }
      });
    }

    return 0.0;
  }
Shows unit as newly spawning.
@returns {Number} duration of show