Pre-release
AdventureJS Docs Downloads
Score: 0 Moves: 0
// rehydrateStrings.js

(function () {
  /* global AdventureJS A */

  var p = AdventureJS.Parser.prototype;

  /**
   * Rehydrate substrings that have been reduced to symbols.
   * Ex: 'type $0 on keyboard' => 'type "querty" on keyboard'.
   * @memberOf AdventureJS.Parser
   * @method AdventureJS.Parser#rehydrateStrings
   * @param {String} input
   * @returns {String|Boolean}
   */
  p.rehydrateStrings = function Parser_rehydrateStrings(input) {
    this.game.log(
      "L1641",
      "log",
      "high",
      `[rehydrateStrings.js] rehydrateStrings() receive: ${input}`,
      "Parser"
    );

    const this_turn = this.input_history[0];

    input = input.replace(/\$\d/g, (match) => {
      return this_turn.quote_tokens[match]
        ? this_turn.quote_tokens[match]
        : match;
    });

    this.game.log(
      "L1642",
      "log",
      "high",
      `[rehydrateStrings.js] rehydrateStrings() return: ${input}`,
      "Parser"
    );
    return input;
  };
})();