binding-of-isaac/README.md

1.9 KiB

--| 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 ..]


    |> if entityType >= 4, use 1 for HP and 0 for damage <|
    |> *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)

    -> 9 (beat block)**
        [.. ontime, offtime, start] with
            {ontime,offtime} = double[>0.0]
            start = {0,1}