Design document

Preamble

Contents

Abstract entities

Controllers

Controllers reflect the global status of objects on the level. There are eight independent controllers on each level (and one more virtual controller).

All active objects (currently beams and doors) can be linked to one or more controllers. Although it is not obligatory to link an object to at least one controller, doing so is mostly useless, since the object will be always off.

The controller 0 is a virtual controller - it is always on, allowing level designers to use it to program the initial state of the objects on the level.

The status of an active object is "on" if an odd number of linked controllers is on, and "off" otherwise.

Base tiles

Blocks

Gems

Gems come in three flavors: 1-point gems, 3-point gems and 5-point gems.

3-point gems, when irradiated by any beam, reflect the beam ninety degrees left.

5-point gems, when irradiated by any beam, reflect the beam ninety degrees right.

Glass wall

This tile is passable only by beams. To all other objects, it is impassable.

Thin wall

This tile blocks passage in one direction (the one where the wall is).

When inserting thin walls in a level, they must appear in the two tiles that are being separated.

This makes it easier to draw an aesthetically good level, as thin walls are drawn perfectly symmetric as a result of the following guideline.

Buttons

Doors

Robots

Followers

Turners

Turners move once a turn, and try to keep moving on the same direction. If that is not possible, they turn left or right, depending on the turner handedness. If that is not possible, they turn right or left. If that is not possible, they turn back.

Chasers

Chasers move once a turn, and always try to reduce the horizontal or vertical distance to the player, whichever is bigger (in case of a tie, horizontal moves are favoured).

Beams

Attractor beams

Repulsor beams

Laser beams