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

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

  var p = adventurejs.Tangible.prototype;

  /**
   * <strong>put</strong> places one asset inside another,
   * bypassing onMoveThatToThis and subsequent
   * doMoveThatToThis/doMoveThisToThat.
   * @memberOf adventurejs.Tangible
   * @method adventurejs.Tangible#put
   * @param {String} aspect
   * @param {Object|String} asset asset object or name/id
   */
  p.put = function Tangible_put(aspect, asset) {
    this.game.log(
      "L1483",
      "log",
      "high",
      `[put.js] ${this.id} ${aspect} ${asset.id}`,
      "Game"
    );
    if ("string" === typeof asset) asset = this.game.getAsset(asset);
    if (!asset) return false;
    aspect = aspect || asset.default_aspect;
    if (!aspect) return false;
    if (!asset.hasAspectAt(aspect)) return false;
    this.setPlace(aspect, asset.id);
    return true;
  };
})();