Pre-release
AdventureJS Docs Downloads Bundler Devlog Score: 0 Moves: 0
// renderIfAssetHas.js
(function () {
  /* global AdventureJS A */

  var p = AdventureJS.Game.prototype;

  /**
   *
   * @method AdventureJS.Game#renderIfAssetHas
   * @memberOf AdventureJS.Game
   * @param {String} token
   */
  p.renderIfAssetHas = function Game_renderIfAssetHas(token) {
    let rendered = "";
    let [, condition, substitution] = token.match(/^\[(.*?)\]\s*(.*)$/s);
    let asset_name, asset, match, target, target_name;

    // condition
    // find asset name between if and is, and property after is
    match = condition.match(/if\s+(.*?)\s+has\s+(.*)/s);
    if (match) {
      asset_name = match[1].trim();
      target_name = match[2].trim(); // might still be two words
    }

    if (asset_name) asset = this.game.getAsset(asset_name);
    if (target_name) target = this.game.getAsset(target_name);

    if (asset && target && asset.has(target)) {
      rendered = substitution;
    }

    return rendered;
  }; //
})();