Skip to content

Custom UI Elements

ThePix edited this page Apr 21, 2021 · 2 revisions

Quest 6 happens in a web page, making it easy to add your own elements to the screen, given some knowledge of javaScript, HTML and CSS.

Update and Init

Often it is useful if your new feature gets initialised after the interface is in place, and also after each turn. To achieve this, create a JavaScript object, and add it to io.modulesToUpdate or io.modulesToInit as required.

map = {}
io.modulesToUpdate.push(map)
io.modulesToInit.push(map)

Anything added to io.modulesToInit will have their "init" function run what the game is initialised, and anything added to io.modulesToUpdate will have their "update" function run at the end of every turn (actually, this will be after every command by the player, whether it is technically a command of not).

As an example, here is the "update" function from image-map.js.

map.update = function() {
  settings.mapOffsetX = 0
  settings.mapOffsetY = 0
  settings.mapScale = 1
  map.redraw()
}

Custom keys

By default the key of the number pad can be used to navigate the world. You can change how this works by capturing the event in settings.customKeyResponses. This should return true if it has handled the event, or false to let the defaults have at it.

This simple example will just print the keycode to the console, but always returns false, so keys work as normal.

settings.customKeyResponses = function(keycode) {
  log(keycode)
  return false
}

This example captures the keycode 96, the 0 key on the number pad, and has it perform a specific action.

settings.customKeyResponses = function(keycode) {
  if (keycode === 96) {
    parser.parse("get ball")
    return true
  }
  return false
}

Use wisely. The player will have certain expectations about what the number pad does.

Tutorial

QuestJS Basics

The Text Processor

Commands

Templates for Items

See also:

Handing NPCs

The User Experience (UI)

The main screen

The Side Panes

Multi-media (sounds, images, maps, etc.)

Dialogue boxes

Other Elements

Role-playing Games

Web Basics

How-to

Time

Items

Locations

Exits

Meta

Meta: About The Whole Game

Releasing Your Game

Reference

Clone this wiki locally