14 |
@node Top, Introduction, (dir), (dir) |
@node Top, Introduction, (dir), (dir) |
15 |
@top |
@top |
16 |
|
|
17 |
This manual describes the internals of Enigma, i.e., how to build new |
This manual describes the internals of Enigma, in particular |
18 |
|
how to build new |
19 |
levels using Lua and how to interact with the game engine. It |
levels using Lua and how to interact with the game engine. It |
20 |
corresponds to Enigma version 0.80. |
describes Enigma version 0.80. |
21 |
@end ifnottex |
@end ifnottex |
22 |
|
|
23 |
@menu |
@menu |
48 |
Flood Gates (@file{nat8.lua}) Was one of the first levels to use Lua |
Flood Gates (@file{nat8.lua}) Was one of the first levels to use Lua |
49 |
for more than simply building the level and then handing it over to |
for more than simply building the level and then handing it over to |
50 |
the game engine. The flowing water is controlled by a small function |
the game engine. The flowing water is controlled by a small function |
51 |
written in Lua--the game engine knows nothing about it. |
written in Lua--there is no built-in suppport for flowing water in the game engine. |
52 |
|
|
53 |
@item |
@item |
54 |
Enigris (@file{ralf04.lua}) lets you play Tetris inside Enigma. |
Enigris (@file{ralf04.lua}) lets you play Tetris inside Enigma. |
195 |
@section Stones |
@section Stones |
196 |
|
|
197 |
@menu |
@menu |
198 |
|
* st-actorimpulse:: |
199 |
* st-chameleon:: |
* st-chameleon:: |
200 |
* st-death:: |
* st-death:: |
|
* st-death_invisible:: |
|
201 |
* st-disco:: |
* st-disco:: |
202 |
* st-easymode:: |
* st-easymode:: |
203 |
* st-fart:: |
* st-fart:: |
215 |
* st-wood:: |
* st-wood:: |
216 |
@end menu |
@end menu |
217 |
|
|
218 |
@node st-chameleon, st-death, Stones, Stones |
@node st-actorimpulse, st-chameleon, Stones, Stones |
219 |
|
@subsection st-actorimpulse: Bumper Stones |
220 |
|
|
221 |
|
These stones apply an impulse to actors that touch them. The amount |
222 |
|
of force applied can be controlled by setting |
223 |
|
@code{enigma.BumperForce} accordingly (the default is 800). |
224 |
|
Alternatively, the @code{force} attribute can be used to set this |
225 |
|
factor for @emph{individual} bumper stones. |
226 |
|
|
227 |
|
The invisible variant, @code{st-actorimpulse_invisible} can |
228 |
|
``painted'' with a brush. |
229 |
|
|
230 |
|
@node st-chameleon, st-death, st-actorimpulse, Stones |
231 |
@subsection st-chameleon: Chameleon Stone |
@subsection st-chameleon: Chameleon Stone |
232 |
|
|
233 |
This stone takes on the look of the floor beneath it. Actors can |
This stone takes on the look of the floor beneath it. Actors can |
234 |
move through it, so these stones are perfect for hiding stuff under |
move through it, so these stones are perfect for hiding stuff under |
235 |
them... |
them... |
236 |
|
|
237 |
@node st-death, st-death_invisible, st-chameleon, Stones |
@node st-death, st-disco, st-chameleon, Stones |
238 |
@subsection st-death: Skull Stone |
@subsection st-death: Skull Stones |
239 |
|
|
240 |
Simply kills all marbles that touch it (except when protected by an |
Simply kills all marbles that touch it (except when protected by an |
241 |
umbrella). @ref{st-death_invisible}. |
umbrella). There is an invisible variant, @code{st-death_invisible}. |
242 |
|
|
|
@node st-death_invisible, st-disco, st-death, Stones |
|
|
@subsection st-death_invisible: Invivible Skull Stone |
|
243 |
|
|
244 |
Simply kills all marbles that touch it (except when protected by an |
@node st-disco, st-easymode, st-death, Stones |
|
umbrella). This variant is invisible. @ref{st-death}. |
|
|
|
|
|
@node st-disco, st-easymode, st-death_invisible, Stones |
|
245 |
@subsection st-disco: Disco Stones |
@subsection st-disco: Disco Stones |
246 |
|
|
247 |
Darkens everything that is underneath the stone (much like tinted |
Darkens everything that is underneath the stone (much like tinted |
539 |
means that the floor will always crack, 0 that it is indestructible. |
means that the floor will always crack, 0 that it is indestructible. |
540 |
@end defvar |
@end defvar |
541 |
|
|
542 |
|
@defvar enigma.BumperForce |
543 |
|
The amount of force applied to an actor that hits an |
544 |
|
@code{st-actorimpulse} stone. @ref{st-actorimpulse}. |
545 |
|
@end defvar |
546 |
|
|
547 |
@defvar enigma.ConserveLevel |
@defvar enigma.ConserveLevel |
548 |
@code{TRUE} or @code{FALSE}. If @code{FALSE}, reload the level |
@code{TRUE} or @code{FALSE}. If @code{FALSE}, reload the level |
549 |
whenever the an actor that is controlled by a player (i.e., one that |
whenever the an actor that is controlled by a player (i.e., one that |