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

  /**
   * @ajspath AdventureJS.Atom.Asset.Concept
   * @augments AdventureJS.Assets.Asset
   * @class AdventureJS.Assets.Concept
   * @ajsconstruct MyGame.createAsset({ "class": "Concept", "name": "foo", [...] })
   * @ajsconstructedby AdventureJS.Game#createAsset
   * @ajsnavheading GlobalAssets
   * @param {String} game_name Name of top level game instance that is scoped to window.
   * @param {String} name Instance name.
   * @summary Base class for abtract concepts such as string and number.
   * @classdesc
   * <p>
   * The Concept class is used for abstract concepts
   * that a player might input, including strings and numbers,
   * such as "say 'foo' to clerk" or "type 42 on keypad".
   * Also includes turns and minutes for cases like
   * "wait 10 turns" or "wait 15 minutes."
   **/
  class Concept extends AdventureJS.Assets.Asset {
    constructor(name, game_name, context_id = "", id = "") {
      super(name, game_name, context_id, id);
      this.class = "Concept";
      this.is.abstract = true;
      this.is.singleton = true;
      this.is.global = true;
      this.is.known = true;
      this.is.seen = true;

      // write "foo" on page
      // write "foo" on page with pen
      // this.setDOV("write");

      // say "hello" to man
      // this.setDOV("say");

      //type "hello" on keyboard
      // this.setDOV("type");

      // enter "hello" on
      // this.setDOV("enter");
    }
  }
  AdventureJS.Assets.Concept = Concept;
})();