ctor() {
    this._super();

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

      // text label
      this.label = new BaseLabel('', RSX.font_bold.name, 16, cc.size(CONFIG.GENERAL_SPEECH_WIDTH, 0.0));
      const colorsByFormattingTag = {};
      colorsByFormattingTag[CONFIG.FORMATTING_ENGINE.emphasisStart] = CONFIG.DIALOGUE_HIGHLIGHT_TEXT_COLOR;
      this.label.setColorsByFormattingTag(colorsByFormattingTag);
      this.label.setFontFillColor(CONFIG.DIALOGUE_TEXT_COLOR);
      this.label.setAnchorPoint(0, 1);
      this.addChild(this.label, 1);
    });

    return true;
  }
*************************************************************************
SpeechNode
 - node used to show speech for an entity node
**************************************************************************