// Bucket.js
(function () {
/* global AdventureJS A */
/**
* @ajspath AdventureJS.Atom.Asset.Tangible.Entity.Container.LiquidContainer.Bucket
* @augments AdventureJS.Assets.LiquidContainer
* @class AdventureJS.Assets.Bucket
* @ajsconstruct MyGame.createAsset({ "class": "Bucket", "name": "foo", [...] })
* @ajsconstructedby AdventureJS.Game#createAsset
* @ajsnavheading KitchenClasses
* @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 My partner will high-dive into this ordinary glass o' water.
* @classdesc
* <p>
* <strong>Bucket</strong> is a subclass of
* {@link AdventureJS.Assets.LiquidContainer|LiquidContainer}.
* Player can drink from it, pour from it, pour into it.
* Authors can set a maximum volume / current volume
* for Bucket.
* </p>
* <a option id="Examples"></a>
* <h3 class="examples">Example:</h3>
* <pre class="display"><code class="language-javascript">MyGame.createAsset({
* class: "Bucket",
* name: "bucket",
* synonyms: ["galvanized", "steel"],
* descriptions: { look: "It's a galvanized steel bucket. ", },
* in: {
* vessel: {
* max_volume: 2000,
* volume: 2000,
* substance_id: "water",
* },
* },
* });
* </code></pre>
**/
class Bucket extends AdventureJS.Assets.LiquidContainer {
constructor(name, game_name, context_id = "", id = "") {
super(name, game_name, context_id, id);
this.class = "Bucket";
this.singular = "bucket";
this.plural = "bucket";
this.singularPluralPairs = [["bucket", "buckets"]];
this.adjectives = [];
this.setDOVs(["get", "take", "give", "put"]);
// this.appearance.opacity = 0.1;
this.aspects.in.vessel.max_volume = 5000;
}
}
AdventureJS.Assets.Bucket = Bucket;
})();