Adventure.js Docs Downloads
Score: 0 Moves: 0

Class: Game

Defined in: adventure/Game.js, line 6

Public Constructor:

var MyGame = new adventurejs.Game( "MyGame", "MyGameDisplay" )

Game is used to construct a new game instance. This instance contains the entire game and all of its methods. If you open the browser inspector window, go to the console, and type "MyGame" (or whatever game_name you have provided), you can see the properties scoped to the Game object. Every object in the game is given a reference back to the main Game object. This means that you can run multiple games in a single HTML page.

Example:

A minimal game defines at least one Room and one Player Character. If you don't provide either of these, one will be created automatically.

var MyGame = new adventurejs.Game( "MyGame", "MyGameDisplay" )
.set({
  title: "Welcome Game",
  author: "Ivan Cockrum",
  description: "This is my great game! Thanks for playing!",
  version: "0.0.1",
});

MyGame.createAsset({
  class: "Room",
  name: "Welcome Room",
  descriptions:{ look: "You've entered the Welcome Room. " },
});

MyGame.createAsset({
  class: "Player",
  name: "Guest",
  is: { active: true, },
  place: { in: "Welcome Room" },
});

Private Constructor:

var foo = new adventurejs.Game(game_nameopt, displayElIdopt)

Parameters:

  • game_name String <optional>
    Default value: ""
    A string that matches the name of the var used to store the new Game instance. Used to give the game a reference back to itself, relative to the browser window. If no name is provided, the instance name will default to "MyGame". The chief reason you might want to use a custom game_name is if you want to run multiple instance of adventure.js on a single page; give them distinct names to prevent them from colliding. You also may want to refer to your Game instance if you write any custom javascript.
  • displayElId String <optional>
    Default value: ""
    A string that matches the ID of an existing DOM element into which to insert the game Display. If no ID is provided, a DOM element will be created with an ID of "MyGameDisplay" and class of "game_display", and appended to .
Inherited Overrides
IndexMethodsProperties

Index

Methods:

Properties:

Methods Collapse all  |  Expand all

$directions() → {Object}

Defined in: adventure/game/_directions.js, line 9

Convenience method to get the exit directions of the current room asset.

Returns:

Object
$exits() → {Object}

Defined in: adventure/game/_exits.js, line 9

Convenience method to get the exits of the current room asset.

Returns:

Object
appendToOutput(msg) → {boolean}

Defined in: adventure/Game.js, line 590

Parameters:

  • msg String
Convenience method is a shortcut to game.parser.input_history[ 0 ].appendToOutput(). Provides a method for author to append custom text after default output for the turn.

Returns:

boolean
appendToOutput(msg) → {boolean}

Defined in: adventure/Game.js, line 605

Parameters:

  • msg String
This convenience method is a shortcut to game.parser.input_history[ 0 ].overrideOutput(). Provides a method for author to override default text output for the turn.

Returns:

boolean
arrayToLowerCase(array) → {Array}

Defined in: adventure/static/arrayToLowerCase.js, line 4

Parameters:

  • array Array
Takes an array of strings, converts them to lowercase, and returns the array.

Returns:

Array
clearInput()

Defined in: adventure/Game.js, line 275

An alias to method display.clearInput.
combineVerbs(verbs, intoVerb) → {object}

Defined in: adventure/Game.js, line 718

Parameters:

  • verbs object
  • intoVerb object
This convenience method is a shortcut to game.dictionary.combineVerbs().

Returns:

object
convertTemperature(temperature, parent_id) → {Boolean}

Defined in: adventure/static/convertTemperature.js, line 4

Todos: Finish writing this.

Parameters:

  • temperature Number | String
    In Celsius.
  • parent_id String
    The ID of the game object the temperature applies to.
INCOMPLETE. A simple function to check whether a value is === false or null.

Returns:

Boolean
createAsset(asset) → {Object}

Defined in: adventure/game/createAsset.js, line 8

Parameters:

  • asset Object
    A generic object with properties to copy into a new classed object.
MyGame.createAsset({ "class":"foo", "name":"bar", [...] })

createAsset() is a constructor function available to authors, for creating all instances of Asset and its subclasses, which includes most of the objects you'd put in a game world.

The function takes one parameter: a generic object containing properties to be passed into a class instance. For most asset classes, the only required properties are 'class' and 'name'. You'd likely also want to specify 'location', though that's not a required property. Otherwise, an author only needs to define the properties they wish to revise away from default settings.

For example, to create a simple brass key with default settings and put it in a particular location:

MyGame.createAsset({ 
  "class":"Key", 
  "name":"brass key", 
  place: { in: "desk drawer" },
});

At runtime, createAsset() returns a new instance of the given class, uses the given name to create an id, validates the object properties, initializes the new object, and then adds it to the game world. Failure to pass any of these steps will throw an error to the console.

For more examples of how to use createAsset, see How to Create Assets and other How To docs under Get Started.

Returns:

Object A new Asset of the class specified in asset.class.
createCompass(properties) → {Object}

Defined in: adventure/game/createCompass.js, line 8

Parameters:

  • properties Object
    A generic object with properties used to construct a compass.
createCompass is an alias to method game.display.createCompass()

Returns:

Object A new compass object.
createGlobalCeilings()

Defined in: adventure/game/createGlobalCeilings.js, line 9

Create global ceiling (although there's only one).
createGlobalExits()

Defined in: adventure/game/createGlobalExits.js, line 9

Create global exits.
createGlobalFloors()

Defined in: adventure/game/createGlobalFloors.js, line 9

Create global floors (although there's only one).
createGlobalScenery()

Defined in: adventure/game/createGlobalScenery.js, line 9

Create global scenery.
createGlobalWalls()

Defined in: adventure/game/createGlobalWalls.js, line 9

Create global walls.
createImageDock(properties) → {Object}

Defined in: adventure/game/createImageDock.js, line 8

Parameters:

  • properties Object
    A generic object with properties used to construct an image dock.
createImageDock is an alias to method game.display.createImageDock()

Returns:

Object A new image dock object.
createImageLookup(asset) → {Object}

Defined in: adventure/game/createImageLookup.js, line 8

Parameters:

  • asset Object
    A generic object with properties to copy into the image library.
createImageLookup() is a method used to create an image lookup. Generally used for setting room background images. The function takes one parameter: a generic object containing an array of image id/url pairs.
MyGame.createImageLookup({
  images: [
    { id: "desert", image: "images/backgrounds/desert.jpg" },
    { id: "sea", image: "images/backgrounds/sea.jpg" },
    { id: "mountains", image: "images/backgrounds/mountains.jpg" },
    { id: "dungeon", image: "images/backgrounds/dungeon.jpg" },
    { id: "throneroom", image: "images/backgrounds/throneroom.jpg" },
  ],
});
The image library is accessible at game.image_lookup.

Returns:

Object A reference to the image lookup.
createInventoryDock(properties) → {Object}

Defined in: adventure/game/createInventoryDock.js, line 8

Parameters:

  • properties Object
    A generic object with properties used to construct an inventory dock.
createInventoryDock is an alias to method game.display.createInventoryDock()

Returns:

Object A new inventory dock object.
createVerb(verb) → {object}

Defined in: adventure/Game.js, line 690

Parameters:

  • verb object
This convenience method is a shortcut to game.dictionary.createVerb().

Returns:

object
createVerbDock(properties) → {Object}

Defined in: adventure/game/createVerbDock.js, line 8

Parameters:

  • properties Object
    A generic object with properties used to construct the verb dock.
createVerbDock is an alias to method game.display.createVerbDock()

Returns:

Object A new verb dock object.
diff(baseline_object, updated_object) → {Object}

Defined in: adventure/static/diff.js, line 5

Parameters:

  • baseline_object Object
    Old object
  • updated_object Object
    New object
diff function for comparing objects. Specifically intended to support UNDO and SAVE / RESTORE. It recurses objects, stringifies arrays, copies others.

Returns:

Object
disableAllVerbsBut(verbs) → {object}

Defined in: adventure/Game.js, line 664

Parameters:

  • verbs object
This convenience method is a shortcut to game.dictionary.disableAllVerbsBut().

Returns:

object
disableVerbs(verbs) → {object}

Defined in: adventure/Game.js, line 651

Parameters:

  • verbs object
This convenience method is a shortcut to game.dictionary.disableVerbs().

Returns:

object
disableVerbs(disabled_verbs) → {object}

Defined in: adventure/Game.js, line 733

Parameters:

  • disabled_verbs object
This convenience method is a shortcut to game.dictionary.disableVerbs().

Returns:

object
enableVerbs(verbs) → {object}

Defined in: adventure/Game.js, line 677

Parameters:

  • verbs object
This convenience method is a shortcut to game.dictionary.enableVerbs().

Returns:

object
getAsset(identifier, params) → {String}

Defined in: adventure/game/getAsset.js, line 9

Parameters:

  • identifier String
    Name or ID of a game object.
  • params Object
    Used to check for 'prefer_substance' in cases of looking for substances in containers.
getAsset or shortcut get takes a string representing an asset name or id and tries to return an asset object.

Returns:

String An object ID.
getCurrentRoom() → {Object}

Defined in: adventure/game/getCurrentRoom.js, line 9

Convenience method to get the current room asset.

Returns:

Object
getCurrentRoomExits() → {String}

Defined in: adventure/game/getCurrentRoomExits.js, line 9

Returns:

String A formatted list of exits.
getCurrentRoomFloor() → {Object}

Defined in: adventure/game/getCurrentRoomFloor.js, line 9

Convenience method to get the current room's floor.

Returns:

Object
getCustomSuccessMessage(asset, verbName) → {Boolean}

Defined in: adventure/game/getCustomSuccessMessage.js, line 9

Parameters:

  • asset Object
    A game asset.
  • verbName String
    A verb name.
Check to see if an Asset has a custom success message for the specified verb.

Returns:

Boolean
getExitFromDirection(direction) → {Object}

Defined in: adventure/game/getExitFromDirection.js, line 9

Parameters:

  • direction String
Does current room have an exit in that direction? If not use global exit. Always applies to currentRoom. If no exit found, returns false.

Returns:

Object An exit.
getExtendedExitName(exit, destination) → {String}

Defined in: adventure/game/getExtendedExitName.js, line 9

Parameters:

  • exit Object
  • destination Object

Returns:

String
getGlobalAssetDescription(asset) → {String}

Defined in: adventure/game/getGlobalAssetDescription.js, line 9

Parameters:

  • asset Object | String

Global assets are a bit (perhaps overly) complicated. They exist as singular objects in the game world, and they can be enabled/disabled and have their descriptions overridden per room and per zone.

For example:

  • MyGame.world.global_air is an asset
  • MyGame.world.room.room_scenery.global_air is a simple object that can be used to determine whether a global asset is available in a given room.
  • MyGame.world.zone.zone_scenery.global_air is a simple object that can be used to determine whether a global asset is available in a given zone.
  • Though global asset is singular, its description can be overridden by descriptions set in room_scenery and zone_scenery.

    Returns:

    String A description of the specified asset id.
    getInput() → {Object}

    Defined in: adventure/game/getInput.js, line 9

    Convenience method to get this turn's input.

    Returns:

    Object
    getLastTurn() → {Object}

    Defined in: adventure/game/getLastTurn.js, line 9

    Convenience method to get this turn's input.

    Returns:

    Object
    getPlayer() → {Object}

    Defined in: adventure/game/getPlayer.js, line 9

    Convenience method to get the player asset.

    Returns:

    Object
    getPrintableObjectList(objects, exclusions) → {String}

    Defined in: adventure/game/getPrintableObjectList.js, line 9

    Parameters:

    • objects Object
      An array of object ID strings.
    • exclusions Object
      An array of of object ID strings to exclude.

    Returns:

    String A formatted string.
    getStringLookup(verbs) → {object}

    Defined in: adventure/Game.js, line 638

    Parameters:

    • verbs object
    This convenience method is a shortcut to game.dictionary.getStringLookup().

    Returns:

    object
    getStringOrArrayOrFunction(obj, scope, params) → {String}

    Defined in: adventure/game/getStringOrArrayOrFunction.js, line 9

    Parameters:

    • obj String | Array | function | Boolean | null
      Can be string or array or function.
    • scope Object
      Optional reference to set scope to an object.
    • params Object
      Optional params to pass to a function.

    Get string or array or function. Because Javascript is untyped, we can pass any kind of value in a variable. We take advantage of that here to provide flexibility to authors in properties that print a string back to the player.

    • Strings will be printed as is.
    • Arrays can be set to provide a string from a randomized index, or a sequential index that increments each time it's called.
    • Functions can use their own internal logic to return a string, allowing for dynamic state-based descriptions, such as whether an Asset is open or closed.

    Example:

    MyGame.createAsset({
      class: "Desk",
      name: "desk",
      descriptions: { look: "An old school wooden desk. ", },
    });
    MyGame.createAsset({
      class: "Drawer",
      name: "drawer",
      descriptions: { 
        look: function(){
          return "The drawer is $( drawer is open or closed ). ";
        }, 
      },
    });
    MyGame.createAsset({
      class: "Blotter",
      name: "blotter",
      descriptions: { 
        look: [
          {randomize: true},
          "The words 'live and let die' are scrawled on the blotter. ",
          "The desk blotter has 'born to bleed' carved into it. ",
          "You see 'zep rulez!' scratched in to the desk blotter. ",
        ], 
      },
    });
    

    For more information, see How to Use String|Array|Function.

    Properties that call getStringOrArrayOrFunction

    • verb subscription with_success: asset.get[in]direct_object_of_verb[verb].with_success
    • verb subscription then_destroy: asset.get[in]direct_object_of_verb[verb].then_destroy
    • all descriptions: asset.description and asset.descriptions[any]
    • room events: room.room_events
    • zone events: room.zone.zone_events
    • custom vars: MyGame.world._vars[ property ]
    • constraint message: character.constrained_msg

    Returns:

    String
    getSubstanceContainers(asset_id, selects) → {Array}

    Defined in: adventure/game/getSubstanceContainers.js, line 9

    Parameters:

    • asset_id String
    • selects Array
    Select assets containing the specified substance.

    Returns:

    Array
    getWordCount() → {Array}

    Defined in: adventure/game/getWordCount.js, line 8

    getWordCount() is a utility method to get a count of all the unique words the game "knows".

    Returns:

    Array
    isFalseOrNull(value) → {Boolean}

    Defined in: adventure/static/isFalseOrNull.js, line 4

    Parameters:

    • value *
    A simple function to check whether a value is === false or null.

    Returns:

    Boolean
    isIdInMixedArray(array) → {Array}

    Defined in: adventure/static/isIdInMixedArray.js, line 5

    Parameters:

    • array Array
    Convert an array of arbitrary strings to an array of IDs useable by game objects.
    • convert ' ' to '_'
    • convert ' and ' to '&'
    • convert '.' to '$'

    Returns:

    Array
    listCurrentRoomContents(room) → {String}

    Defined in: adventure/game/listRoomContents.js, line 9

    Parameters:

    • room Object

    Returns:

    String
    log(method, level, msg)

    Defined in: adventure/game/log.js, line 8

    Parameters:

    • method String | Number
      0=log, 1=warn, 2=error
    • level String | Number
      0=critical, 1=high, 2=medium, 3=low
    • msg *
      Message for console.
    Custom logging function.
    patchVerb(patch_verb) → {object}

    Defined in: adventure/Game.js, line 747

    Parameters:

    • patch_verb object
    patchVerb enables an author to revise the properties of an existing verb. For example, let's say you want to revise the verb "plug" so that it works in the dark - meaning that players it can operate on assets the player can't see. You might copy the plug.phrase1 and in your game file, call patchVerb with line visible: true removed.
    MyGame.patchVerb({
      name: "plug",
      phrase1:{
        accepts_noun: true,
        requires_noun: true,
        accepts_preposition: true,
        noun_must_be:
        {
          known: true,
          tangible: true,
          present: true,
          visible: true,
          reachable: true,
        },
      },
    });
    


    ( game.patchVerb() actually forwards to game.dictionary.patchVerb() ).

    Returns:

    object
    play()

    Defined in: adventure/game/play.js, line 9

    Validate and initialize all classed game objects in world. Validation is internal to each object. Initialization draws connections to other objects.

    Returns:

    adventurejs.Game
    prependToOutput(msg) → {boolean}

    Defined in: adventure/Game.js, line 620

    Parameters:

    • msg String
    This convenience method is a shortcut to game.parser.input_history[ 0 ].prependToOutput(). Provides a method for author to prepend custom text before default output for the turn.

    Returns:

    boolean
    print(msg, classes)

    Defined in: adventure/game/print.js, line 8

    Parameters:

    • msg String
    • classes String
    Validate and initialize all classed game objects in world. Validation is internal to each object. Initialization draws connections to other objects.
    printCurrentRoom(params)

    Defined in: adventure/game/printCurrentRoom.js, line 9

    Todos: Formalize handling for description/brief/verbose descriptions

    Parameters:

    • params Object
    Print room description to game display. Includes input, room name, and room description. Calling the function with params.verbose set to true will override global verbosity settings and try to print a verbose description.

    For example:
    printCurrentRoom( { verbose: true } )
    printCurrentRoomContents()

    Defined in: adventure/game/printCurrentRoomContents.js, line 9

    printCurrentRoomExits()

    Defined in: adventure/game/printCurrentRoomExits.js, line 9

    printInput(input)

    Defined in: adventure/game/printInput.js, line 9

    Parameters:

    • input String
    printPlayerInventory()

    Defined in: adventure/game/printPlayerInventory.js, line 9

    printRoomZoneEvents()

    Defined in: adventure/game/printRoomZoneEvents.js, line 9

    printWithInput(msg, classes)

    Defined in: adventure/game/printWithInput.js, line 9

    Parameters:

    • msg String
    • classes String
    propercase(string) → {String}

    Defined in: adventure/static/propercase.js, line 5

    Parameters:

    • string String
    Converts a string to Propercase (lower case with leading cap).

    Returns:

    String
    registerInterval(id, callback)

    Defined in: adventure/Game.js, line 787

    Todos: add number of turns as a param and only call per x turn

    Parameters:

    • id string
      id of Asset which owns the function.
    • callback string
      The function to call on interval.
    Intervals are callback functions used to fire in-game events every turn. For example, turn on a water faucet and the faucet pours water every turn until it's turned off. registerInterval adds functions to the list.
    replaceVerb(oldVerb, newVerb) → {object}

    Defined in: adventure/Game.js, line 703

    Parameters:

    • oldVerb object
    • newVerb object
    This convenience method is a shortcut to game.dictionary.replaceVerb().

    Returns:

    object
    sendToInput()

    Defined in: adventure/Game.js, line 265

    An alias to method display.sendToInput.
    sendToParser()

    Defined in: adventure/Game.js, line 252

    Takes an input and immediately forwards it to the parser.
    set(props) → {adventurejs.Game}

    Defined in: adventure/game/set.js, line 9

    Parameters:

    • props Object
      A generic object containing properties to copy to the Game instance.
    This is a shallow copy for setting global properties on the main game object. Returns the game object for chaining.

    Returns:

    adventurejs.Game Returns the instance the method is called on (useful for chaining calls.)
    setGlobalDescriptions(globals)

    Defined in: adventure/game/setGlobalDescriptions.js, line 9

    Parameters:

    • globals Object
      A list of globle Scenery Assets.
    A method to let author set default descriptions for global objects such as sun, moon, sky, floor, walls.
    setPlayerRoom(newRoom, params)

    Defined in: adventure/game/setPlayerRoom.js, line 9

    Parameters:

    • newRoom Object
      A room object to which to move player.
    • params Object
    Move player to the specified room.
    stringToArray(string) → {Array}

    Defined in: adventure/static/stringToArray.js, line 4

    Parameters:

    • string String
    Convert a string into an array containing the string.

    Returns:

    Array
    substituteCustomTemplates(msg) → {String}

    Defined in: adventure/game/substituteCustomTemplates.js, line 8

    Todos: update classdesc

    Parameters:

    • msg String
      A string on which to perform substitutions.
    substituteCustomTemplates acts on strings prior to printing them to Display. Substitution is the last step of Game.print(). It replaces custom templates, aka substrings bracketed inside parentheses, like $(door is open or closed).

    For example:
    descriptions: { look: "The drawer is $( drawer is open or closed )." }


    This method is similar to Javascript ES6 template literals but with important distinctions.
  • The adventurejs version uses different symbols: $(parentheses) instead of Javascript's native ${curly braces}.
  • Substrings inside $(parens) are evaluated by adventurejs, rather than native Javascript, so they have limited scope.


  • There are several types of valid substitutions:
  • $( author_variables ) refers to author-created custom variables that are stored within the game scope so that they can be written out to saved game files. (See How to Use Custom Vars for more info.)
  • $( asset is state or unstate ) allows authors to refer to a game asset by name or id and print certain verb states. Names are serialized during the substitution process, meaning that, for example: $( brown jar is open or closed ) will be interpreted to check for MyGame.world.brown_jar.is.closed.
  • $(tag|text) is a shortcut to <span class="tag">text</span>, to make it easier to add custom CSS styles to text.

    Adventurejs custom templates can be mixed & matched with template literals. Custom templates can be used in any string that outputs to the game display. However, because template literals in strings are evaluated when the properties containing them are created, they will cause errors on game startup. In order to use native Javascript template literals, they must be returned by functions. MyGame.createAsset({ class: "Room", name: "Standing Room", descriptions: { brief: "The north door is $(north is open or closed). ", through: "Through the door you see a $(northcolor) light. ", verbose: return function(){ `The north door ${MyGame.world.aurora_door.is.closed ? "is closed, hiding the aurora. " : "is open, revealing the $(northcolor) aurora light" }` } } })
  • Returns:

    String
    substituteHTMLTags(msg) → {String}

    Defined in: adventure/game/substituteHTMLTags.js, line 8

    Parameters:

    • msg String
      A string on which to perform substitutions.
    substituteHTMLTags acts on strings prior to printing them to Display. Substitution is the last step of Game.print(). It replaces text in <angle>brackets</> with <span class="angle">brackets</span>, providing a shortcut method to adding CSS styles to text.

    For example:

    MyGame.createAsset({ class: "Room", name: "Standing Room", descriptions: { brief: "The north door is open. ", through: "Through the door you see a bright light. ", * verbose: return function(){ `The north door ${MyGame.world.aurora_door.is.closed ? "is closed, hiding the aurora. " : "is open, revealing the $(northcolor) aurora light" }` } } })

    Returns:

    String
    tryTravel(direction, params)

    Defined in: adventure/game/tryTravel.js, line 9

    Parameters:

    • direction String
    • params Object
    Tries to move the player in the specified direction.
    unregisterInterval(id, callback)

    Defined in: adventure/Game.js, line 808

    Parameters:

    • id string
      id of Asset which owns the function.
    • callback string
      The function to call on interval.
    Intervals are callback functions used to fire in-game events every turn. For example, turn on a water faucet and the faucet pours water every turn until it's turned off. unregisterInterval removes callback functions from the list.
    unregisterInterval()

    Defined in: adventure/Game.js, line 836

    callIntervals uses pointers to asset properties to print messages or apply custom logic every turn. For example, turn on a water faucet and have the faucet pour water every turn until it's turned off, or turn on a radio and have it play music lyrics. Properties can be strings or arrays or functions.
    unregisterInterval()

    Defined in: adventure/Game.js, line 886

    This convenience property is a shortcut to game.world._vars, which is a container for any custom variables set by authors. Variables stored here are saved within the scope of data that gets written to save files.
    updateDisplayCompasses()

    Defined in: adventure/Game.js, line 364

    Write current room's exits to the display's compass rose.
    updateDisplayInventory()

    Defined in: adventure/Game.js, line 392

    Update the inventory in inventory docks.
    updateDisplayRoom()

    Defined in: adventure/Game.js, line 330

    Concatenate room name + player situation and save to game.displayRoomName. If there's a room image, update that.
    updateDisplayVerbs()

    Defined in: adventure/Game.js, line 381

    Todos: this has no logic yet

    Update the verbs in verb docks.
    validateClassList(property) → {Array}

    Defined in: adventure/static/validateClassList.js, line 4

    Todos: Is this unused?

    Parameters:

    • property String | Array
    Validate a list of classes. Unused?

    Returns:

    Array
    worldClone(source_world) → {Object}

    Defined in: adventure/game/worldClone.js, line 9

    Parameters:

    • source_world Object
    Clone the game world for save / restore functions.

    Returns:

    Object Returns a copy of the source world.
    worldConstructAsset(source) → {Object}

    Defined in: adventure/game/worldConstructAsset.js, line 9

    Parameters:

    • source Object
      A generic object containing properties to copy to a game object.
    Takes a generic object and returns a classed object.

    Returns:

    Object Returns an instance of whatever class was defined.
    worldCreateDeferredAssets()

    Defined in: adventure/game/worldCreateDeferredAssets.js, line 9

    Create objects - mainly exits - that were defined within other unclassed generic objects.

    Objects created here also need to be validated, since they were added to the deferred list during the initial validation pass and therefore missed validation.
    worldDiff(source_world) → {String}

    Defined in: adventure/game/worldDiff.js, line 9

    Parameters:

    • source_world Object
    Get the diff between the baseline world state and the current world state to create a minimum data set for writing saved games.

    Returns:

    String Returns a stringified diff.
    worldInitializeAssets()

    Defined in: adventure/game/worldInitializeAssets.js, line 9

    Initialize all game assets.
    worldMerge(source, dest) → {Object}

    Defined in: adventure/game/worldMerge.js, line 8

    Parameters:

    • source Object
    • dest Object
    Deep worldMerge function for simple object types, used to merge restored save game files into baseline game state.

    Returns:

    Object dest
    worldRestore(saved_world)

    Defined in: adventure/game/worldRestore.js, line 9

    Parameters:

    • saved_world Object
    For UNDO and RESTORE. Revert the world to the baseline snapshot and then merge in updates from a partial copy.
    worldSave(world)

    Defined in: adventure/game/worldSave.js, line 8

    Parameters:

    • world Object
    Save the current world state for UNDO.
    worldSortLookupValues()

    Defined in: adventure/game/worldSortLookupValues.js, line 9

    Sort lookupTable values that contain multiple IDs.
    worldValidateAssets()

    Defined in: adventure/game/worldValidateAssets.js, line 9

    Validate all assets in world.
    worldValidatePrecursor(child) → {Object}

    Defined in: adventure/game/worldValidatePrecursor.js, line 9

    Parameters:

    • child Object
      A generic object.
    Validate unclassed precursor object prior to creating an asset. Generic objects must have at minimum a valid class and a name. Name is used to generate ID. Exits are the exception, where ID is generated from location + direction.

    Returns:

    Object A classed object.

    Properties Collapse all  |  Expand all

    author :String

    Defined in: adventure/Game.js, line 310

    Default value: ""

    Get/set game author and pass to Display.
    class_lookup

    Defined in: adventure/Game.js, line 162

    class_lookup stores a lookup table containing the ids of all assets by class.
    currentRoom :Object

    Defined in: adventure/Game.js, line 534

    Deprecated
    • Use game.getCurrentRoom() instead.
    Convenience method to get the player's current room.
    game :Object

    Defined in: adventure/Game.js, line 79

    Default value: {}

    A reference back to this Game object. Chiefly used for consistency so we can refer to this.game, which is how we refer back to the Game from many functions.
    game_name :String

    Defined in: adventure/Game.js, line 89

    game_name holds a copy of the variable name used to store the current game instance, to which every asset in the game world holds a reference. (By default, we use "MyGame", but you can use any name.) The variable is scoped to window, and in order to get the game object, we call window[this.game_name]. Though it would be easier to use a direct object reference, doing so creates a circular reference, which complicates JSON encoding, which is how we save/restore the game state.
    image_lookup

    Defined in: adventure/Game.js, line 176

    image_lookup stores a lookup table for optional images supplied by author.
    input :Object

    Defined in: adventure/Game.js, line 547

    Deprecated
    • Use game.getInput() instead.
    Convenience method to get this turn's input.
    inventorydocks :Object

    Defined in: adventure/Game.js, line 235

    inventorydocks is an array that stores references to any custom inventorydocks.
    last_turn :Object

    Defined in: adventure/Game.js, line 560

    Deprecated
    • Use game.getLastTurn() instead.
    Convenience method to get last turn.
    player :Object

    Defined in: adventure/Game.js, line 521

    Deprecated
    • Use game.getPlayer() instead.
    Convenience method to get the player.
    room_lookup

    Defined in: adventure/Game.js, line 169

    room_lookup stores an array containing the ids of all rooms.
    score :String

    Defined in: adventure/Game.js, line 425

    Default value: ""

    Get/set game score and pass to Display.
    scorecard :Object

    Defined in: adventure/Game.js, line 213

    scorecard is a singleton class that stores all the game's score events and functions for managing score.
    settings :Object

    Defined in: adventure/Game.js, line 110

    settings is a singleton class that stores all the game's global settings.
    title :String

    Defined in: adventure/Game.js, line 289

    Default value: ""

    Get/set game title and pass to Display.
    version :String

    Defined in: adventure/Game.js, line 442

    Default value: ""

    Get/set game version and pass to Display.
    world_lookup

    Defined in: adventure/Game.js, line 121

    world stores all the game asset objects. It also stores a handful of variables such as _player and _currentRoom which are used for convenience. It also stores any global vars created by the game's author. This last is done to give authors a place to store vars that can be written out with saved games.
    world_lookup

    Defined in: adventure/Game.js, line 133

    world._vars is a namespace for authors to store any custom vars that they would like to be written out with saved games, so that they can be restored along with other saved game data in order to retain game state.
    world_lookup

    Defined in: adventure/Game.js, line 155

    world_lookup stores a lookup table containing indexed keywords for all game assets.
    Documentation generated by JSDoc 3.6.11 on Mon Nov 20 2023 18:01:53 GMT-0800 (Pacific Standard Time)
    Found a problem or error in the docs? Report it to docs@adventurejs.com.