Global

Members

game :Game

Global game object used to track one interactive story fiction game
Type:
Source:

is_mobile :boolean

Flag used to tell if current user is interacting on a mobile device or not
Type:
  • boolean
Source:

is_right_to_left :boolean

Flag to set the text direction of the game to right-to-left. (if false, the text direction is left-to-right)
Type:
  • boolean
Source:

locale :string

Locale to use when looking up strings to be output in a particular language. We set the default here, but a particular game can override this in its script tag before calling initGame()
Type:
  • string
Source:

object_counter :number

Used as part of the closure of makeGameObject so that every game object has an integer id.
Type:
  • number
Source:

tl :Object

Contains {locale => {to_translate_id => translation}} for each item in the game engine that needs to be localized. There are not too many strings to translate. For a particular game you could tack on to this tl variable after you load game.js in a script tag before you call initGame.
Type:
  • Object
Source:

Methods

addListenersAnchors(anchors)

Adds click event listeners to all anchor objects in a list that have href targets beginning with #. Such a target is to a location within the current game, so the click event callback then calls game.takeTurn based on this url.
Parameters:
Name Type Description
anchors NodeList | HTMLCollection to add click listeners for game take turn callbacks.
Source:

baseLoc()

Returns the Location object the player begins the game at
Source:

clickProceed(message) → {Promise}

Adds a link with link text message which when clicked will allow the rendering of a Location to continue.
Parameters:
Name Type Description
message string link text for the link that is pausing the rendering of the current location.
Source:
Returns:
which will be resolved which the link is clicked.
Type
Promise
Used to disable any volatile links which might cause issues if clicked during rendering of the staging portion of a presentation. For example, saves screen links in either the main-nav panel/main-nav bar or in the game content area. The current place where this is used is at the start of rendering a location. A location might have several x-present tags, some of which could be drawn after a clickProceed, or a delay. As these steps in rendering are not good "save places", at the start of rendering a location, all save are disabled. Only after the last drawable x-present for a location has completed are they renabled.
Source:

elt(id) → {Element}

Returns an Element object from the current document which has the provided id.
Parameters:
Name Type Description
id string of element trying to get an object for
Source:
Returns:
desired element, if exists, else null
Type
Element
Used to re-enable any disabled volatile links in either the main-nav panel/main-nav bar or in the game content area. The current place where this is used is at the end of rendering a location. For why this is called,
Source:
See:
  • disableVolatileLinks()

evaluateDataChecks(section) → {string}

A data-ck attribute on any tag other than an x-present tag can contain a Javascript boolean expression to control the display or non-display of that element. This is similar to a ck attribute of an x-present tag. This method evalutes data-ck expressions for each tag in the text in its section argument and adds a class="none" attribute to that tag if it evaluates to false (causing it not to display). The string after these substitutions is returned.
Parameters:
Name Type Description
section string of text to check for data-ck attributes and for which to carry out the above described substitutions
Source:
Returns:
after substitutions have been carried out.
Type
string

hasVisited(location_id) → {boolean}

Returns whether the main character has ever been to the location given by location_id
Parameters:
Name Type Description
location_id string id of location checking if main character has been to
Source:
Returns:
whther the main chracter has been there
Type
boolean

here() → {Location}

Returns the location object associated with the main-character current position.
Source:
Returns:
associated with main-character position
Type
Location

(async) initGame()

Module initialization function used to set up the game object corresponding to the current HTML document. If there is a current game state in sessionStorage it is used to initialize the game state, otherwise, the game state is based on the start of the game. After this state is set up, the current location is drawn to the game content area.
Source:

interpolateVariables(text) → {string}

Given a string which may contain Javascript string interpolation expressions, i.e., ${some_expression}, produces a string where those expressions have been replaced with their values.
Parameters:
Name Type Description
text string to have Javascript interpolation expressions replaced with their values
Source:
Returns:
result of carrying out the replacement
Type
string

isHere() → {boolean}

For use in default actions only!!! Returns whether the main-character is in the Location of the default action. In all other cases returns false
Source:
Returns:
where the main-character is in the room of the current default action
Type
boolean

loc(object_id) → {Location}

Returns the game location with the provided id.
Parameters:
Name Type Description
object_id string to get game Location for
Source:
Returns:
game location associated with object_id if it exists
Type
Location

makeGameObject(DOMElement) → {Object}

Used to convert a DOM Element dom_object to an Object or Location suitable for a FRISE game. dom_object's whose tagName does not begin with x- will result in null being returned. If the tagName is x-location, a Location object will be returned, otherwise, a Javascript Object is returned. The innerHTML of any subtag of an x-object or an x-location beginning with x- becomes the value of a field in the resulting object with the name of the tag less x-. For example, a DOM Object representing the following HTML code: Robert Smith 25 will be processed to a Javascript Object { id: "bob", name: "Robert Smith", age: "25" }
Parameters:
Name Type Description
DOMElement Element to be convert into a FRISE game Object or Location
Source:
Returns:
the resulting FRISE game Object or Location or null if the tagName of the DOMElement didn't begin with x-
Type
Object

makeGameObjects(tag_objects) → {Array}

Creates from an HTMLCollection or Nodelist of x-object or x-location elements an array of Location's or Object's suitable for a FRISE Game object. Elements of the collection whose name aren't of the form x- or which don't have id's are ignored. Otherwise, the id field of the output Object or Location is set to the value of the x-object or x-location's id. Details about how a suitable FRISE Game object is created can be found @see makeGameObject()
Parameters:
Name Type Description
tag_objects HTMLCollection | Nodelist collection to be converted into an array FRISE game objects or location objects.
Source:
Returns:
an array of FRISE game or location objects.
Type
Array

mc() → {object}

Returns the game object associated with the main-character. This function is just an abbreviation for obj('main-character')
Source:
Returns:
game object associated with main-character
Type
object

obj(object_id) → {object}

Returns the game object with the provided id.
Parameters:
Name Type Description
object_id string to get game object for
Source:
Returns:
game object associated with object_id if it exists
Type
object

sel(a) → {NodeList}

Returns a list of Node's which match the CSS selector string provided.
Parameters:
Name Type Description
a string CSS selector string to match against current document
Source:
Returns:
of matching Element's
Type
NodeList

sleep(time) → {Promise}

Sleep time many milliseconds before continuing to execute whatever code was executing. This function returns a Promise so needs to be executed with await so that the code following the sleep statement will be used to resolve the Promise
Parameters:
Name Type Description
time number time in milliseconds to sleep for
Source:
Returns:
a promise whose resolve callback is to be executed after that many milliseconds.
Type
Promise

tag(name) → {HTMLCollection}

Returns a collection of objects for Element's that match the provided Element name in the current document.
Parameters:
Name Type Description
name string of HTML/XML Element wanted from current document
Source:
Returns:
of matching Element's
Type
HTMLCollection

toggleDisplay(id, display_type)

Used to change the display css property of the element of the provided id to display_type if it doesn't already have that value, if it does, then the display property is set to none. If display_type is not provided then its value is assumed to be block.
Parameters:
Name Type Description
id string of HTML Element to toggle display property of
display_type string value to toggle between it and none.
Source:

toggleMainNav()

Used to toggle the display or non-display of the main navigation bar on the side of game screen
Source:

upperFirst(str) → {string}

Upper cases first letter of a string
Parameters:
Name Type Description
str string string to upper case the first letter of
Source:
Returns:
result of upper-casing
Type
string

xelt(id) → {Object}

Returns a game object based on the element in the current document of the provided id.
Parameters:
Name Type Description
id string of element in current document.
Source:
Returns:
a game object.
Type
Object

xsel(a) → {Array}

Returns an array of game objects based on the elements in the current document that match the CSS selector passed to it.
Parameters:
Name Type Description
a string CSS selector for objects in the current document
Source:
Returns:
of game objects based on the tags that matched the selector
Type
Array

xtag(a) → {Array}

Returns an array of game objects based on the elements in the current document of the given tag name.
Parameters:
Name Type Description
a string name of a tag such as x-location or x-object.
Source:
Returns:
of game objects based on the tags that matched the selector
Type
Array