// Extrusion.js
(function () {
/*global adventurejs A*/
"use strict";
/**
* @ajspath adventurejs.Atom.Asset.Matter.Tangible.Thing.Extrusion
* @augments adventurejs.Thing
* @class adventurejs.Extrusion
* @ajsconstruct MyGame.createAsset({ "class":"Extrusion", "name":"foo", [...] })
* @ajsconstructedby adventurejs.Game#createAsset
* @ajsnavheading MiscAssetClasses
* @param {String} game_name The name of the top level game object.
* @param {String} name A name for the object, to be serialized and used as ID.
* @summary Use to create things player can tie rope to and swing from.
* @classdesc
* <p>
* <strong>Extrusion</strong> is a minimally specialized
* subclass of
* {@link adventurejs.Thing|Thing},
* with properties that allow
* a player to {@link lasso_with|lasso} it, or
* {@link tie_noun1_to_noun2|tie} a {@link adventurejs.Rope|Rope}
* to it, and {@link swing_on|swing on} the tied Rope.
* You might use it to make a branch, or a flagpole,
* or a broken cornice, or a protruding piece of pipe,
* anything that a player might use to lasso and swing
* from one spot to another.
* </p>
* <h3 class="examples">Example:</h3>
* <pre class="display"><code class="language-javascript">MyGame.createAsset({
* class: "Extrusion",
* name: "broken rebar",
* place: { on: "underside of the bridge" },
* descriptions: {
* look: "A thick chunk of rebar extrudes from the underside of the bridge. ",
* },
* z: 2,
* });
* </code></pre>
* <p>
* To learn more about swinging, see
* <a href="/doc/Tangibles_SwingingAndChasms.html">Swinging and Chasms</a>.
* </p>
**/
class Extrusion extends adventurejs.Thing {
constructor(name, game_name) {
super(name, game_name);
this.class = "Extrusion";
this.is.listed_in_room = false;
this.setDOVs(["lasso", "tie"]);
this.can.support_swinging = true;
}
}
adventurejs.Extrusion = Extrusion;
})();