Skip to content
This repository has been archived by the owner on Aug 7, 2024. It is now read-only.

Game Objects

Alexandru Dan edited this page Aug 30, 2017 · 19 revisions

Avatars

The avatar is an interface between the worker and the managers in the simulation. It also provides a nice abstraction for what the simulation perceives as a 'user'. The avatar related functionality is grouped inside the avatar folder.

The avatar functionality is separated in several classes:

  • avatar wrapper - the central avatar functionality, including the communication with the worker and the simulation properties such as health, score and so on
  • avatar view - a personalized view of the worlds for each avatar
  • avatar appearance - fields used only by the Raphael JS client
  • the avatar manager - a structure that keeps a list of avatars. It is used by the Turn Manager to update the environment
  • fog of war

The Avatar Wrapper

The avatar wrapper represents the application's view of a character, together with an API that communicates to the worker via HTTP GETs.

The main functionality is:

  • decide action - fetches an action from the worker and updates the current action to be executed
  • clear action
  • update effects - apply effects that come from getting a pickup
  • add event - attaches an event to the event setting -- not yet used

Deciding an action is done by making a GET request to the Game API and processing the received JSON. If an error occurs during the process, a wait action is emitted.

There is also some functionality not fully used/implemented:

  • die - dies and respawns at new location
  • damage - take damage

Actions

An action is a pair (avatar, location). The action is register onto the WorldMap by being appended to a cell.

The action is processed by calling the apply function.

  • if the action is legal it is applied
  • if not it is rejected

The exposed interface is:

  • apply
    • has to return true if application succeeded
    • attaches an event to the avatar
  • is_legal
    • returns if an action is legal from the point of view of the map
    • the action gets applied or rejected accordingly
  • reject
    • attaches a (failed) event to the avatar

Pickups and Effects

Clone this wiki locally