50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# --| Syntax for level files |--
|
|
|
|
1) **General rule**
|
|
each file must be named "room_k" where k is a positive integer
|
|
if "room_k" exists then all "room_u" where 0 <= u < k exists
|
|
|
|
2) **Data structure**
|
|
below is a detailled list for all block types ;
|
|
each block type (Blocks, Teleporters, Entities) must have the corresponding word directly above it
|
|
not all three keywords have to be written
|
|
|
|
*Data-specific structure :*
|
|
blocks:
|
|
[x, y, z, w, h, d, rhz, rvt, r, g, b]
|
|
|
|
teleporters:
|
|
[x, y, z, w, h, d, rhz, rvt, r, g, b, dest_chx, dest_chy]
|
|
|
|
entities:
|
|
[x, y, z, w, h, d, rhz, rvt, r, g, b, hp, damage, entityType ..]
|
|
*Entity types are :*
|
|
-> **0 (coin)** -> damage equals the coin's value
|
|
-> **1 (non-moving explosive)**
|
|
-> **2 (seeking explosive)**
|
|
-> **3 (shooting non-moving explosive)**
|
|
-> **4 (moving platform)**
|
|
[.. amplitude_x, amplitude_y, amplitude_z, mult, divd, phase] with *<- extra arguments at the end of []*
|
|
amplitude_{x,y,z} = double[>= 0.0]
|
|
{mult,divd} = int
|
|
{phase} = int[0, 360]
|
|
|
|
-> **5 (linear moving platform)**
|
|
[.. amplitude_x, amplitude_y, amplitude_z, speed_x, speed_y, speed_z] with
|
|
amplitude_{x,y,z} = double[>= 0.0]
|
|
speed_{x,y,z} = double
|
|
|
|
-> **6 (text box)**
|
|
[.. text, tred, tgreen, tblue] with
|
|
text = {char*}
|
|
|
|
-> **7 (warp text box)**
|
|
[.. dest_folder, room_count, text, tred, tgreen, tblue] with
|
|
{dest_folder,text} = {char*} (length <= 50)
|
|
{r,g,b} = int[0-256]
|
|
|
|
|
|
-> **8 (lock box)**
|
|
[.. cost, doPay, tred, tgreen, tblue] with
|
|
cost = int[> 0] (0 breaks)
|
|
doPay = {0, 1} (bool) |