From 72c757439179bb50f7658c7e0c5733599ba2d7db Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Thu, 20 Nov 2025 17:31:52 +0100 Subject: [PATCH] - First commit --- .gitignore | 2 + data/room/00.yaml | 2 + data/room/01.yaml | 117 +++++++++++++++ data/room/02.yaml | 66 +++++++++ data/room/03.yaml | 57 ++++++++ data/room/04.yaml | 65 +++++++++ data/room/05.yaml | 81 +++++++++++ data/room/06.yaml | 86 +++++++++++ data/room/07.yaml | 112 +++++++++++++++ data/room/08.yaml | 68 +++++++++ data/room/09.yaml | 77 ++++++++++ data/room/10.yaml | 50 +++++++ data/room/11.yaml | 85 +++++++++++ data/room/12.yaml | 70 +++++++++ data/room/13.yaml | 91 ++++++++++++ data/room/14.yaml | 78 ++++++++++ data/room/15.yaml | 112 +++++++++++++++ data/room/16.yaml | 83 +++++++++++ data/room/17.yaml | 78 ++++++++++ data/room/18.yaml | 155 ++++++++++++++++++++ data/room/19.yaml | 92 ++++++++++++ data/room/20.yaml | 70 +++++++++ data/room/21.yaml | 77 ++++++++++ data/room/22.yaml | 81 +++++++++++ data/room/23.yaml | 78 ++++++++++ data/room/24.yaml | 88 ++++++++++++ data/room/25.yaml | 102 +++++++++++++ data/room/26.yaml | 133 +++++++++++++++++ data/room/27.yaml | 60 ++++++++ data/room/28.yaml | 57 ++++++++ data/room/29.yaml | 86 +++++++++++ data/room/30.yaml | 76 ++++++++++ data/room/31.yaml | 86 +++++++++++ data/room/32.yaml | 62 ++++++++ data/room/33.yaml | 88 ++++++++++++ data/room/34.yaml | 90 ++++++++++++ data/room/35.yaml | 103 +++++++++++++ data/room/36.yaml | 136 ++++++++++++++++++ data/room/37.yaml | 94 ++++++++++++ data/room/38.yaml | 111 ++++++++++++++ data/room/39.yaml | 108 ++++++++++++++ data/room/40.yaml | 98 +++++++++++++ data/room/41.yaml | 108 ++++++++++++++ data/room/42.yaml | 71 +++++++++ data/room/43.yaml | 65 +++++++++ data/room/44.yaml | 66 +++++++++ data/room/45.yaml | 78 ++++++++++ data/room/46.yaml | 74 ++++++++++ data/room/47.yaml | 105 ++++++++++++++ data/room/48.yaml | 86 +++++++++++ data/room/49.yaml | 54 +++++++ data/room/50.yaml | 80 +++++++++++ data/room/51.yaml | 78 ++++++++++ data/room/52.yaml | 57 ++++++++ data/room/53.yaml | 91 ++++++++++++ data/room/54.yaml | 83 +++++++++++ data/room/55.yaml | 70 +++++++++ data/room/56.yaml | 80 +++++++++++ data/room/57.yaml | 98 +++++++++++++ data/room/58.yaml | 88 ++++++++++++ data/room/59.yaml | 93 ++++++++++++ data/room/60.yaml | 90 ++++++++++++ main.cpp | 31 ++++ yamal.cpp | 358 ++++++++++++++++++++++++++++++++++++++++++++++ yamal.hpp | 117 +++++++++++++++ 65 files changed, 5632 insertions(+) create mode 100644 .gitignore create mode 100644 data/room/00.yaml create mode 100644 data/room/01.yaml create mode 100644 data/room/02.yaml create mode 100644 data/room/03.yaml create mode 100644 data/room/04.yaml create mode 100644 data/room/05.yaml create mode 100644 data/room/06.yaml create mode 100644 data/room/07.yaml create mode 100644 data/room/08.yaml create mode 100644 data/room/09.yaml create mode 100644 data/room/10.yaml create mode 100644 data/room/11.yaml create mode 100644 data/room/12.yaml create mode 100644 data/room/13.yaml create mode 100644 data/room/14.yaml create mode 100644 data/room/15.yaml create mode 100644 data/room/16.yaml create mode 100644 data/room/17.yaml create mode 100644 data/room/18.yaml create mode 100644 data/room/19.yaml create mode 100644 data/room/20.yaml create mode 100644 data/room/21.yaml create mode 100644 data/room/22.yaml create mode 100644 data/room/23.yaml create mode 100644 data/room/24.yaml create mode 100644 data/room/25.yaml create mode 100644 data/room/26.yaml create mode 100644 data/room/27.yaml create mode 100644 data/room/28.yaml create mode 100644 data/room/29.yaml create mode 100644 data/room/30.yaml create mode 100644 data/room/31.yaml create mode 100644 data/room/32.yaml create mode 100644 data/room/33.yaml create mode 100644 data/room/34.yaml create mode 100644 data/room/35.yaml create mode 100644 data/room/36.yaml create mode 100644 data/room/37.yaml create mode 100644 data/room/38.yaml create mode 100644 data/room/39.yaml create mode 100644 data/room/40.yaml create mode 100644 data/room/41.yaml create mode 100644 data/room/42.yaml create mode 100644 data/room/43.yaml create mode 100644 data/room/44.yaml create mode 100644 data/room/45.yaml create mode 100644 data/room/46.yaml create mode 100644 data/room/47.yaml create mode 100644 data/room/48.yaml create mode 100644 data/room/49.yaml create mode 100644 data/room/50.yaml create mode 100644 data/room/51.yaml create mode 100644 data/room/52.yaml create mode 100644 data/room/53.yaml create mode 100644 data/room/54.yaml create mode 100644 data/room/55.yaml create mode 100644 data/room/56.yaml create mode 100644 data/room/57.yaml create mode 100644 data/room/58.yaml create mode 100644 data/room/59.yaml create mode 100644 data/room/60.yaml create mode 100644 main.cpp create mode 100644 yamal.cpp create mode 100644 yamal.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72752d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode/* +yamal diff --git a/data/room/00.yaml b/data/room/00.yaml new file mode 100644 index 0000000..63fa3b6 --- /dev/null +++ b/data/room/00.yaml @@ -0,0 +1,2 @@ +name: Copilot +version: 1.0 \ No newline at end of file diff --git a/data/room/01.yaml b/data/room/01.yaml new file mode 100644 index 0000000..3e1706b --- /dev/null +++ b/data/room/01.yaml @@ -0,0 +1,117 @@ +# THE JAIL +room: 1 + name: "THE JAIL" + bgColor: bright_blue + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 02.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191] + - [167, 165, 184, 166, 165, 184, 165, 165, 167, 165, 165, 166, 165, 165, 184, 165, 165, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 165] + - [210, 180, 210, 212, 210, 180, 210, 211, 212, 210, 180, 210, 210, 211, 210, 212, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42] + - [163, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 163, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42] + - [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42] + - [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33] + - [42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 33, 33, 33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 33, 33] + - [33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 33] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33] + - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33] + - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33] + - [33, 33, 33, 33, 33, 33, 33, 33, 33, -1, -1, -1, -1, -1, -1, -1, 33, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33] + - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33] + - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33] + +# Enemigos en esta habitación +enemies: + - animation: jailer_#1.yaml + position: {x: 1, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 1, y: 13} + position2: {x: 1, y: 13} + color: white + + - animation: jailer_#3.yaml + position: {x: 4, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 4, y: 13} + position2: {x: 4, y: 13} + color: white + + - animation: jailer_#1.yaml + position: {x: 7, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 7, y: 13} + position2: {x: 7, y: 13} + color: white + + - animation: jailer_#2.yaml + position: {x: 10, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 10, y: 13} + position2: {x: 10, y: 13} + color: white + + - animation: jailer_#1.yaml + position: {x: 13, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 13, y: 13} + position2: {x: 13, y: 13} + color: white + + - animation: elsa.yaml + position: {x: 3, y: 9} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 3, y: 9} + position2: {x: 3, y: 9} + color: white + + - animation: elsa.yaml + position: {x: 6, y: 9} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 6, y: 9} + position2: {x: 6, y: 9} + color: white + + - animation: lamp.yaml + position: {x: 23, y: 6} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 23, y: 6} + position2: {x: 23, y: 6} + color: white + + - animation: bry.yaml + position: {x: 17, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 17, y: 13} + position2: {x: 17, y: 13} + color: white + +# No items in this room +items: [] \ No newline at end of file diff --git a/data/room/02.yaml b/data/room/02.yaml new file mode 100644 index 0000000..2a2a283 --- /dev/null +++ b/data/room/02.yaml @@ -0,0 +1,66 @@ +# ROAD TO THE JAIL +room: + name: "ROAD TO THE JAIL" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 04.yaml + left: 01.yaml + right: 03.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: bright_yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 42, 42, 42, 42, 42] + - [42, 165, 165, 166, 167, 165, 184, 166, 165, 184, 165, 165, 167, 165, 165, 166, 165, 165, 184, 165, 165, 165, 184, 166, 165, 165, 165, 184, 24, 24, 24, 24] + - [42, 42, 210, 211, 211, 210, 180, 210, 212, 210, 180, 210, 211, 212, 210, 180, 210, 210, 210, 210, 211, 212, 210, 180, 210, 212, 180, 210, 134, -1, -1, -1] + - [42, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1] + - [42, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24, 24] + - [33, 33, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 302, 24, 24] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [33, 33, -1, 412, 412, 412, 412, -1, -1, -1, -1, 412, 303, 412, 412, 412, -1, -1, -1, -1, 412, 303, 412, 412, 412, 412, 303, -1, -1, -1, 24, 24] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 24, 24] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [33, 33, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 188, 190, 547, -1, -1, -1, -1] + - [33, 33, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 190, -1, -1, 188, 189, 188, 189, 188, 189, 188, 190, 24, 24] + +# Enemigos en esta habitación +enemies: + - animation: bin.yaml + position: {x: 4, y: 7} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 4, y: 7} + position2: {x: 25, y: 7} + color: green + + - animation: upv_student.yaml + position: {x: 4, y: 13} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 4, y: 13} + position2: {x: 19, y: 13} + color: cyan + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 2 + position: {x: 4, y: 6} + counter: 1 diff --git a/data/room/03.yaml b/data/room/03.yaml new file mode 100644 index 0000000..89fe68e --- /dev/null +++ b/data/room/03.yaml @@ -0,0 +1,57 @@ +# VOID MAIN +room: + name: "VOID MAIN" + bgColor: black + border: magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 02.yaml + right: null + + # Colores de los objetos + itemColor1: bright_cyan + itemColor2: yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, -1, -1, 504, 24, 24, 24, 24, 24, 24, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24, -1, -1, -1, 24, 24] + - [24, 24, -1, -1, -1, -1, -1, -1, -1, 252, 252, 252, 252, 252, 252, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 440, 440, 440, 440, -1, -1, -1, -1, -1, -1, -1, -1, 134, 24] + - [24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24] + +# Enemigos en esta habitación +enemies: + - animation: code.yaml + position: {x: 3, y: 2} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 3, y: 2} + position2: {x: 27, y: 2} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 42 + position: {x: 21, y: 13} + counter: 1 diff --git a/data/room/04.yaml b/data/room/04.yaml new file mode 100644 index 0000000..4a8588c --- /dev/null +++ b/data/room/04.yaml @@ -0,0 +1,65 @@ +# JUMP THROUGH +room: + name: "JUMP THROUGH" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 02.yaml + down: null + left: 07.yaml + right: 05.yaml + + # Colores de los objetos + itemColor1: white + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 189, 188, 190, -1, -1, -1, 527, 188, 189, 188, 189, 188, 189, 188, 189] + - [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -1, -1, -1, -1, -1, 527, -1, 14, 14, 14, 14, 14, 14, 14, 14] + - [14, 14, 14, -1, -1, -1, -1, 14, 14, 14, 14, 14, 14, 14, 301, -1, -1, -1, -1, -1, -1, 527, -1, -1, 14, 14, 14, 14, 14, 14, 14, 14] + - [14, 14, -1, -1, -1, -1, -1, 301, 14, 14, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, -1, 14, 14, 14, 14, 14, 14, 14, 14] + - [14, 14, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, -1, -1, 14, 14, 14, 14, 14, 14, 14, 14] + - [14, 14, -1, -1, -1, -1, -1, -1, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, -1, -1, -1, 14, 14, 14, 14, 14, 14, 14, 14] + - [14, 14, -1, -1, -1, -1, -1, -1, 14, 14, -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, 14, 301, -1, -1] + - [14, 14, -1, -1, -1, -1, 414, 414, 14, 14, -1, -1, -1, 414, 414, 414, 414, -1, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, 301, -1, -1, -1] + - [14, 14, -1, -1, -1, -1, -1, -1, 14, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, -1, -1, -1, -1, -1] + - [14, 14, 414, -1, -1, -1, -1, -1, 14, 14, 414, 414, 414, 551, -1, -1, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, -1, -1, -1, -1, -1, -1] + - [14, 14, -1, -1, -1, -1, 414, 414, 14, 14, -1, -1, -1, -1, 551, -1, -1, -1, -1, -1, -1, 14, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 551, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, 414, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 551, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 551, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, 518, 14, 62, 14, 62, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 551, -1, -1, -1, -1, 518, 14, 62, 14, 62, 14, 62, 14, 62] + - [62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62] + +# Enemigos en esta habitación +enemies: + - animation: chip.yaml + position: {x: 24, y: 12} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 24, y: 12} + position2: {x: 31, y: 12} + color: magenta + + - animation: chip.yaml + position: {x: 4, y: 2} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 4, y: 2} + position2: {x: 4, y: 12} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 51 + position: {x: 2, y: 3} + counter: 1 diff --git a/data/room/05.yaml b/data/room/05.yaml new file mode 100644 index 0000000..76ebe5f --- /dev/null +++ b/data/room/05.yaml @@ -0,0 +1,81 @@ +# BIG JUMP +room: + name: "BIG JUMP" + bgColor: black + border: red + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 60.yaml + left: 04.yaml + right: 06.yaml + + # Colores de los objetos + itemColor1: bright_green + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [24, 24, 24, 24, 24, 24, -1, -1, 304, -1, -1, -1, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 425, 426, 425, 426] + - [24, 24, 24, 24, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 425, 426, 92] + - [24, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 116] + - [133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 116] + - [133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 416, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140] + - [24, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24] + - [24, 24, 24, 24, 24, 24, -1, -1, -1, 416, 416, -1, -1, -1, -1, -1, -1, -1, 304, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304] + - [-1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, 416, 416, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 416, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, 416, 416, 416, -1, -1, 24, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 416, 416, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24] + - [-1, -1, -1, -1, -1, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88] + - [30, 30, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 48, 48, 48, 48, 48, 48, 48, 48, 88, 89, 88, 89] + - [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 304, -1, -1, 304, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30] + +# Enemigos en esta habitación +enemies: + - animation: floppy.yaml + position: {x: 15, y: 4} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 15, y: 0} + position2: {x: 15, y: 11} + color: magenta + + - animation: congo.yaml + position: {x: 21, y: 12} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 21, y: 12} + position2: {x: 28, y: 12} + color: yellow + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 68 + position: {x: 1, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 68 + position: {x: 2, y: 3} + counter: 2 + + - tileSetFile: items.gif + tile: 68 + position: {x: 29, y: 12} + counter: 3 + + - tileSetFile: items.gif + tile: 68 + position: {x: 30, y: 12} + counter: 4 diff --git a/data/room/06.yaml b/data/room/06.yaml new file mode 100644 index 0000000..5fb3cc9 --- /dev/null +++ b/data/room/06.yaml @@ -0,0 +1,86 @@ +# WELCOME TO MY ABBEY +room: + name: "WELCOME TO MY ABBEY" + bgColor: blue + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 15.yaml + down: null + left: 05.yaml + right: 25.yaml + + # Colores de los objetos + itemColor1: green + itemColor2: bright_blue + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [425, 426, 425, 426, -1, -1, -1, -1, 425, 426, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67] + - [426, 425, 426, -1, -1, -1, -1, -1, -1, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91] + - [92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92] + - [116, -1, -1, -1, 425, 426, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 402, 403, 403, 116] + - [140, -1, -1, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, 116] + - [31, -1, -1, -1, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, -1, 116] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 402, 403, 403, 403, 404, 549, -1, -1, -1, 116] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, -1, -1, -1, 549, -1, -1, 116] + - [-1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, 116] + - [31, 66, 67, 66, 67, 403, 403, 403, 403, 403, 404, -1, -1, -1, 402, 66, 67, 66, 67, 66, 67, 66, 67, 404, -1, -1, -1, -1, -1, -1, -1, 140] + - [31, 90, 91, 90, 91, 225, -1, -1, -1, -1, -1, -1, -1, -1, 91, 90, 91, 90, 91, 90, 91, 90, 91, 225, -1, -1, -1, -1, -1, -1, -1, 31] + - [134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1] + - [134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1] + - [88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89] + +# Enemigos en esta habitación +enemies: + - animation: abad.yaml + position: {x: 1, y: 13} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 1, y: 13} + position2: {x: 23, y: 13} + color: yellow + flip: true + + - animation: spider.yaml + position: {x: 24, y: 4} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 24, y: 2} + position2: {x: 24, y: 7} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 49 + position: {x: 7, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 49 + position: {x: 1, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 49 + position: {x: 18, y: 14} + counter: 3 + + - tileSetFile: items.gif + tile: 49 + position: {x: 30, y: 9} + counter: 4 + + - tileSetFile: items.gif + tile: 49 + position: {x: 30, y: 4} + counter: 5 diff --git a/data/room/07.yaml b/data/room/07.yaml new file mode 100644 index 0000000..133c9fa --- /dev/null +++ b/data/room/07.yaml @@ -0,0 +1,112 @@ +# SIGMASUA > TELEGRAM +room: + name: "SIGMASUA > TELEGRAM" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 08.yaml + right: 04.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1] + - [1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1] + - [1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1] + - [1, 410, -1, -1, -1, -1, -1, 412, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 412, -1, -1, -1, -1, -1, 410, 1] + - [1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, 1] + - [1, -1, -1, -1, -1, -1, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 410, 410, -1, -1, -1, -1, -1, -1] + - [1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 412, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1] + - [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] + +# Enemigos en esta habitación +enemies: + - animation: sigmasua.yaml + position: {x: 15, y: 7} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 7, y: 7} + position2: {x: 23, y: 7} + color: cyan + + - animation: sigmasua.yaml + position: {x: 15, y: 4} + velocity: {x: -30.0, y: 0} + boundaries: + position1: {x: 7, y: 4} + position2: {x: 23, y: 4} + color: blue + + - animation: sigmasua.yaml + position: {x: 3, y: 8} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 3, y: 5} + position2: {x: 3, y: 13} + color: bright_red + + - animation: sigmasua.yaml + position: {x: 27, y: 8} + velocity: {x: 0, y: -24.0} + boundaries: + position1: {x: 27, y: 5} + position2: {x: 27, y: 13} + color: yellow + + - animation: sigmasua.yaml + position: {x: 12, y: 10} + velocity: {x: 0, y: 18.0} + boundaries: + position1: {x: 12, y: 10} + position2: {x: 12, y: 13} + color: bright_magenta + + - animation: sigmasua.yaml + position: {x: 17, y: 13} + velocity: {x: 0, y: -18.0} + boundaries: + position1: {x: 17, y: 10} + position2: {x: 17, y: 13} + color: bright_green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 67 + position: {x: 15, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 67 + position: {x: 1, y: 8} + counter: 2 + + - tileSetFile: items.gif + tile: 67 + position: {x: 30, y: 8} + counter: 3 + + - tileSetFile: items.gif + tile: 67 + position: {x: 21, y: 13} + counter: 4 diff --git a/data/room/08.yaml b/data/room/08.yaml new file mode 100644 index 0000000..ffc03b2 --- /dev/null +++ b/data/room/08.yaml @@ -0,0 +1,68 @@ +# THE GARDEN +room: + name: "THE GARDEN" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 09.yaml + down: null + left: 16.yaml + right: 07.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, 305, 305, -1, -1, -1, 305, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, 305, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, 305, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 305, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81] + - [81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 81, 81, 81, 81, 81, 81, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 81, 81, 81, 81, 81, 81, 81, 81, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81] + +# Enemigos en esta habitación +enemies: + - animation: abad.yaml + position: {x: 4, y: 13} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 2, y: 13} + position2: {x: 10, y: 13} + color: green + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 18 + position: {x: 5, y: 5} + counter: 1 + + - tileSetFile: items.gif + tile: 18 + position: {x: 25, y: 9} + counter: 2 + + - tileSetFile: items.gif + tile: 18 + position: {x: 10, y: 5} + counter: 3 diff --git a/data/room/09.yaml b/data/room/09.yaml new file mode 100644 index 0000000..775fc9c --- /dev/null +++ b/data/room/09.yaml @@ -0,0 +1,77 @@ +# THE BIG TREE +room: + name: "THE BIG TREE" + bgColor: black + border: bright_blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 10.yaml + down: 08.yaml + left: null + right: null + + # Colores de los objetos + itemColor1: cyan + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, 40, 40, 40, 40, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 40, 40, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 16, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 16, 16, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 16, 16, 16, 16, 16, 16] + - [-1, -1, -1, -1, -1, 304, 304, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 16, 16, 16, 16, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, 304, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, 16, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, 348, 348, 348, 348, 348, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, 16, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, -1, 40, 40, 40, 40, -1, -1, -1, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, 304, 304, 530, -1, -1, -1, -1, -1, -1, 40, 40, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [562, 562, 562, 562, 562, 562, 562, 562, 562, 562, -1, -1, -1, 40, 40, 40, 40, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, -1, -1, 348, 348, 348] + +# Enemigos en esta habitación +enemies: + - animation: congo.yaml + position: {x: 10, y: 12} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 10, y: 12} + position2: {x: 20, y: 12} + color: yellow + flip: true + + - animation: congo.yaml + position: {x: 12, y: 6} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 12, y: 6} + position2: {x: 17, y: 6} + color: white + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 52 + position: {x: 5, y: 7} + counter: 1 + + - tileSetFile: items.gif + tile: 52 + position: {x: 5, y: 1} + counter: 2 + + - tileSetFile: items.gif + tile: 52 + position: {x: 17, y: 4} + counter: 2 diff --git a/data/room/10.yaml b/data/room/10.yaml new file mode 100644 index 0000000..a342752 --- /dev/null +++ b/data/room/10.yaml @@ -0,0 +1,50 @@ +# TREE TOP +room: + name: "TREE TOP" + bgColor: bright_black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 09.yaml + left: null + right: 11.yaml + + # Colores de los objetos + itemColor1: green + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 304, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, -1, 304, 304, -1, 304, -1, 304, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, 304, 304, 304, -1, 304, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, -1, 304, 304, 304, 304, 304, 304, -1, 304, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 304, -1, 304, 304, 304, 304, -1, 304, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, 304, -1, 304, 304, 304, 304, 304, 304, 304, 304, -1, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 304, 304, -1, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 304, 304, 304, 304, 304, 304, 304, 304, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 304, -1, -1, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 304, 304, 304, 40, 40, 304, 304, 304, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, -1, 304, 40, 40, 40, 40, 304, -1, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 304, 304, 40, 40, 40, 40, 304, 304, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, -1, 304, 40, 40, 40, 40, 304, -1, 304, 304, -1, -1, -1, -1, -1, -1, -1, -1, 517, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 85, 85, 85] + +# No enemies in this room +enemies: [] + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 16 + position: {x: 21, y: 4} + counter: 1 diff --git a/data/room/11.yaml b/data/room/11.yaml new file mode 100644 index 0000000..e2ba780 --- /dev/null +++ b/data/room/11.yaml @@ -0,0 +1,85 @@ +# LAZY ROOM +room: + name: "LAZY ROOM" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 10.yaml + right: 12.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27] + - [388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, -1, 364, -1, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 559, 559, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, 559, 559, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [85, 85, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 85, 85] + - [85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85] + +# Enemigos en esta habitación +enemies: + - animation: lamp.yaml + position: {x: 7, y: 10} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 7, y: 10} + position2: {x: 7, y: 10} + color: magenta + + - animation: lamp.yaml + position: {x: 21, y: 10} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 21, y: 10} + position2: {x: 21, y: 10} + color: magenta + + - animation: bin.yaml + position: {x: 12, y: 14} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 3, y: 14} + position2: {x: 27, y: 14} + color: green + + - animation: wave.yaml + position: {x: 7, y: 6} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 0, y: 6} + position2: {x: 14, y: 6} + color: green + + - animation: wave.yaml + position: {x: 23, y: 6} + velocity: {x: -30.0, y: 0} + boundaries: + position1: {x: 16, y: 6} + position2: {x: 31, y: 6} + color: green + +# No items in this room +items: [] \ No newline at end of file diff --git a/data/room/12.yaml b/data/room/12.yaml new file mode 100644 index 0000000..4f0d3cc --- /dev/null +++ b/data/room/12.yaml @@ -0,0 +1,70 @@ +# THE PASSAGE +room: + name: "THE PASSAGE" + bgColor: black + border: green + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 11.yaml + right: 13.yaml + + # Colores de los objetos + itemColor1: red + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, -1, -1, -1, 526, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, 24, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 550, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24, 24, -1, -1, -1, -1, -1, 24, 24, 24, 24, 24] + - [24, 24, 24, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, 24, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24] + - [-1, -1, -1, -1, 394, 394, 394, 394, 394, 370, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, -1, -1, -1, -1, -1, -1, 24] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, 24, 550, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24] + +# Enemigos en esta habitación +enemies: + - animation: floppy.yaml + position: {x: 9, y: 10} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 4, y: 10} + position2: {x: 22, y: 10} + color: green + + - animation: floppy.yaml + position: {x: 1, y: 0} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 1, y: 0} + position2: {x: 1, y: 7} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 34 + position: {x: 17, y: 8} + counter: 1 + + - tileSetFile: items.gif + tile: 34 + position: {x: 3, y: 6} + counter: 2 diff --git a/data/room/13.yaml b/data/room/13.yaml new file mode 100644 index 0000000..b18e415 --- /dev/null +++ b/data/room/13.yaml @@ -0,0 +1,91 @@ +# TUNO KILLER +room: + name: "TUNO KILLER" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 12.yaml + right: 14.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: cyan + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [25, 25, 25, 25, 25, -1, -1, 25, 25, 25, 25, 25, -1, -1, 25, 25, 25, 25, 25, -1, -1, 25, 25, 25, 25, 25, -1, -1, 25, 25, 25, 25] + - [136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136] + - [136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65] + - [136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136] + - [136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65, 136, -1, -1, 136, 65, 136, 65] + - [136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136, 136, -1, -1, 136, 136, 136, 136] + - [136, 136, 111, 136, 136, -1, -1, 136, 136, 111, 136, 136, -1, -1, 136, 136, 111, 136, 136, -1, -1, 136, 136, 111, 136, 136, -1, -1, 136, 136, 111, 136] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25] + +# Enemigos en esta habitación +enemies: + - animation: matatunos.yaml + position: {x: 5, y: 1} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 5, y: 1} + position2: {x: 5, y: 13} + color: bright_blue + + - animation: tuno.yaml + position: {x: 12, y: 4} + velocity: {x: 0, y: 66.0} + boundaries: + position1: {x: 12, y: 1} + position2: {x: 12, y: 13} + color: red + + - animation: tuno.yaml + position: {x: 19, y: 7} + velocity: {x: 0, y: 54.0} + boundaries: + position1: {x: 19, y: 1} + position2: {x: 19, y: 13} + color: yellow + + - animation: tuno.yaml + position: {x: 26, y: 11} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 26, y: 1} + position2: {x: 26, y: 13} + color: magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 53 + position: {x: 9, y: 4} + counter: 1 + + - tileSetFile: items.gif + tile: 53 + position: {x: 16, y: 4} + counter: 2 + + - tileSetFile: items.gif + tile: 53 + position: {x: 23, y: 4} + counter: 3 diff --git a/data/room/14.yaml b/data/room/14.yaml new file mode 100644 index 0000000..44f87dd --- /dev/null +++ b/data/room/14.yaml @@ -0,0 +1,78 @@ +# KILLING SPREE +room: + name: "KILLING SPREE" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 15.yaml + left: 13.yaml + right: 45.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: cyan + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, 29] + - [25, 25, 25, 25, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [136, 136, 136, 136, 136, -1, 25, 25, 25, 25, 25, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, 305, -1, -1, 305, 29] + - [136, 65, 136, 65, 136, -1, 136, 136, 136, 136, 136, 136, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1] + - [136, 136, 136, 136, 136, 421, 136, 136, 65, 136, 65, 136, 136, 537, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1] + - [136, 65, 136, 65, 136, -1, 136, 136, 136, 136, 136, 136, 136, 136, 537, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, 305, -1, -1] + - [136, 136, 136, 136, 136, -1, 136, 136, 65, 136, 65, 136, 65, 136, 136, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, 29, 29] + - [136, 136, 136, 136, 336, -1, 336, 136, 136, 136, 136, 136, 136, 136, 136, 136, -1, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, 336, -1, 336, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, 305, -1, -1, 325, -1, -1, 305, -1, 325, 305, -1, -1, 29] + - [-1, -1, -1, -1, 336, -1, 336, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [15, 15, 15, 15, 15, -1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 325, -1, -1, 325, 325, 15, 15, 15, 15, 15, 15, 15] + +# Enemigos en esta habitación +enemies: + - animation: matatunos.yaml + position: {x: 6, y: 5} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 5, y: 5} + position2: {x: 10, y: 5} + color: bright_green + + - animation: tuno.yaml + position: {x: 21, y: 2} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 21, y: 2} + position2: {x: 21, y: 13} + color: red + + - animation: tuno.yaml + position: {x: 28, y: 6} + velocity: {x: 0, y: -24.0} + boundaries: + position1: {x: 28, y: 2} + position2: {x: 28, y: 13} + color: magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 53 + position: {x: 30, y: 14} + counter: 1 + + - tileSetFile: items.gif + tile: 53 + position: {x: 25, y: 1} + counter: 2 diff --git a/data/room/15.yaml b/data/room/15.yaml new file mode 100644 index 0000000..cfb9761 --- /dev/null +++ b/data/room/15.yaml @@ -0,0 +1,112 @@ +# NOW THIS IS THE BATCAVE! +room: + name: "NOW THIS IS THE BATCAVE!" + bgColor: black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 14.yaml + down: 06.yaml + left: null + right: null + + # Colores de los objetos + itemColor1: yellow + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [15, 15, 15, 15, 15, -1, 15, 15, 15, 15, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 301, -1, -1, 301, 301, 15, 15, 15, 15, 15, 15, 15] + - [15, 15, 301, -1, -1, -1, -1, 348, 15, 348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15, 15] + - [15, 301, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15] + - [15, -1, -1, -1, -1, 348, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 422, 422, 422, 422, 422, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, 15, 15, 15, 15, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, 301, 15, 15, 15, 15, -1, -1, -1, 422, -1, -1, -1, 422, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, -1, 301, 15, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, 423, 421, 423, 421, -1, -1, 15] + - [15, -1, -1, 423, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, 421, 15] + - [15, 421, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, 522, 421, 15] + - [15, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, 422, 421, 421, 422, 360, 408, -1, -1, 15] + - [15, -1, -1, -1, 421, 408, 421, 422, 421, 421, 422, 408, 421, -1, -1, -1, -1, 422, 423, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288, -1, -1, -1, 15] + - [15, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, 288, -1, -1, 15, 15] + - [15, 348, 348, 348, 348, -1, -1, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 15] + +# Enemigos en esta habitación +enemies: + - animation: batman.yaml + position: {x: 17, y: 13} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 7, y: 13} + position2: {x: 29, y: 13} + color: white + flip: true + + - animation: bat.yaml + position: {x: 14, y: 2} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 9, y: 2} + position2: {x: 30, y: 2} + color: bright_blue + + - animation: bat.yaml + position: {x: 10, y: 10} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 1, y: 10} + position2: {x: 30, y: 10} + color: cyan + + - animation: bat.yaml + position: {x: 15, y: 1} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 15, y: 1} + position2: {x: 15, y: 11} + color: red + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 0 + position: {x: 5, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 0 + position: {x: 13, y: 12} + counter: 2 + + - tileSetFile: items.gif + tile: 0 + position: {x: 14, y: 12} + counter: 3 + + - tileSetFile: items.gif + tile: 0 + position: {x: 15, y: 12} + counter: 4 + + - tileSetFile: items.gif + tile: 0 + position: {x: 16, y: 12} + counter: 5 + + - tileSetFile: items.gif + tile: 0 + position: {x: 10, y: 4} + counter: 6 + + - tileSetFile: items.gif + tile: 0 + position: {x: 17, y: 7} + counter: 7 diff --git a/data/room/16.yaml b/data/room/16.yaml new file mode 100644 index 0000000..8e00a6a --- /dev/null +++ b/data/room/16.yaml @@ -0,0 +1,83 @@ +# THE FRIDGE +room: + name: "THE FRIDGE" + bgColor: blue + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 44.yaml + down: null + left: 17.yaml + right: 08.yaml + + # Colores de los objetos + itemColor1: bright_cyan + itemColor2: yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [28, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 416, -1, -1, 416, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, 272, 272, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, 28, 28, 28, -1, 28, 28, 28, 28, 28, -1, 28, 28, 28, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, 321, 321, 321, 321, 321, 321, 321, 321, -1, -1, 321, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 28, 28, 28, -1, -1, 28, 28, 28, 28, 28, 28, 28, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, 272, 272, 272, 272, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [28, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28] + - [-1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 552, -1, -1, -1, -1, -1, -1, 552, -1, -1, -1, -1, -1, -1] + - [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28] + +# Enemigos en esta habitación +enemies: + - animation: chip.yaml + position: {x: 7, y: 3} + velocity: {x: 60.0, y: 0} + boundaries: + position1: {x: 2, y: 3} + position2: {x: 13, y: 3} + color: magenta + + - animation: chip.yaml + position: {x: 30, y: 7} + velocity: {x: -48.0, y: 0} + boundaries: + position1: {x: 10, y: 7} + position2: {x: 30, y: 7} + color: bright_white + + - animation: wave.yaml + position: {x: 15, y: 12} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 15, y: 12} + position2: {x: 30, y: 12} + color: bright_magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 6 + position: {x: 2, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 6 + position: {x: 29, y: 5} + counter: 2 + + - tileSetFile: items.gif + tile: 6 + position: {x: 21, y: 12} + counter: 3 diff --git a/data/room/17.yaml b/data/room/17.yaml new file mode 100644 index 0000000..cc27cb8 --- /dev/null +++ b/data/room/17.yaml @@ -0,0 +1,78 @@ +# I DID NOT COPY THIS ONE +room: + name: "I DID NOT COPY THIS ONE" + bgColor: black + border: magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 18.yaml + left: 49.yaml + right: 16.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87] + - [87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [87, 87, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, -1, -1, -1, -1, -1, -1] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, 87, 87, 87, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, 87, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, 410, 410, 410, 410, 522, -1, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, 87] + - [87, 87, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, 87] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, -1, -1, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362] + +# Enemigos en esta habitación +enemies: + - animation: floppy.yaml + position: {x: 5, y: 6} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 5, y: 4} + position2: {x: 5, y: 10} + color: green + + - animation: floppy.yaml + position: {x: 12, y: 3} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 12, y: 2} + position2: {x: 12, y: 9} + color: cyan + + - animation: chip.yaml + position: {x: 8, y: 13} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 8, y: 13} + position2: {x: 18, y: 13} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 21 + position: {x: 2, y: 9} + counter: 1 + + - tileSetFile: items.gif + tile: 21 + position: {x: 2, y: 5} + counter: 2 diff --git a/data/room/18.yaml b/data/room/18.yaml new file mode 100644 index 0000000..c042b63 --- /dev/null +++ b/data/room/18.yaml @@ -0,0 +1,155 @@ +# MAKE MONEY +room: + name: "MAKE MONEY" + bgColor: black + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 17.yaml + down: 54.yaml + left: 19.yaml + right: null + + # Colores de los objetos + itemColor1: bright_green + itemColor2: bright_yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, 505, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + - [4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4] + - [4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [4, 4, 4, 4, 4, 4, 4, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [4, 4, 4, 4, 172, -1, 133, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [556, 556, 556, 556, 556, 556, 133, -1, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [4, 4, 4, 4, 4, 4, 4, 414, 414, 414, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 4] + - [4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 516, 366, 4] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 366, 366, 366, 428, 428, -1, 428, 428, 366, 366, 366, 366, 366, 366, 366, 366, 4] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, 4, 4] + - [61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, -1, -1, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61] + +# Enemigos en esta habitación +enemies: + - animation: code.yaml + position: {x: 19, y: 6} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 18, y: 6} + position2: {x: 29, y: 6} + color: magenta + + - animation: spider.yaml + position: {x: 14, y: 10} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 14, y: 10} + position2: {x: 28, y: 10} + color: yellow + + - animation: spider.yaml + position: {x: 23, y: 12} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 23, y: 12} + position2: {x: 28, y: 12} + color: magenta + mirror: true + + - animation: lamp.yaml + position: {x: 19, y: 1} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 19, y: 1} + position2: {x: 19, y: 1} + color: yellow + + - animation: lamp.yaml + position: {x: 26, y: 1} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 26, y: 1} + position2: {x: 26, y: 1} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 14 + position: {x: 19, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 14 + position: {x: 19, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 14 + position: {x: 20, y: 3} + counter: 2 + + - tileSetFile: items.gif + tile: 14 + position: {x: 21, y: 3} + counter: 3 + + - tileSetFile: items.gif + tile: 14 + position: {x: 22, y: 3} + counter: 4 + + - tileSetFile: items.gif + tile: 14 + position: {x: 23, y: 3} + counter: 5 + + - tileSetFile: items.gif + tile: 14 + position: {x: 24, y: 3} + counter: 6 + + - tileSetFile: items.gif + tile: 14 + position: {x: 25, y: 3} + counter: 7 + + - tileSetFile: items.gif + tile: 14 + position: {x: 26, y: 3} + counter: 8 + + - tileSetFile: items.gif + tile: 14 + position: {x: 27, y: 3} + counter: 9 + + - tileSetFile: items.gif + tile: 14 + position: {x: 28, y: 3} + counter: 10 + + - tileSetFile: items.gif + tile: 14 + position: {x: 29, y: 3} + counter: 11 + + - tileSetFile: items.gif + tile: 14 + position: {x: 30, y: 3} + counter: 12 + + - tileSetFile: items.gif + tile: 14 + position: {x: 29, y: 12} + counter: 13 diff --git a/data/room/19.yaml b/data/room/19.yaml new file mode 100644 index 0000000..895e671 --- /dev/null +++ b/data/room/19.yaml @@ -0,0 +1,92 @@ +# THIS CAN'T BE THE BATCAVE +room: + name: "THIS CAN'T BE THE BATCAVE" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 20.yaml + right: 18.yaml + + # Colores de los objetos + itemColor1: cyan + itemColor2: blue + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 37, 37, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, -1, 37, 37, 240, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 240, 37, 37, -1, -1, -1, -1, -1, 187] + - [-1, -1, -1, -1, -1, 37, 37, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, 37, 37, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, 37, 37, -1, -1, -1, -1, -1, -1, -1, -1, 240, 240, 240, 240, -1, -1, -1, -1, -1, -1, -1, -1, 37, 37, -1, -1, -1, -1] + - [-1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1] + - [-1, -1, -1, 240, 37, -1, -1, -1, 240, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 240, -1, -1, -1, 37, 240, -1, -1, -1] + - [-1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1] + - [37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37] + +# Enemigos en esta habitación +enemies: + - animation: batman.yaml + position: {x: 10, y: 13} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 5, y: 13} + position2: {x: 26, y: 13} + color: bright_cyan + flip: true + + - animation: spider.yaml + position: {x: 0, y: 1} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 1, y: 1} + position2: {x: 31, y: 1} + color: cyan + mirror: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 34 + position: {x: 14, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 34 + position: {x: 15, y: 6} + counter: 2 + + - tileSetFile: items.gif + tile: 34 + position: {x: 16, y: 6} + counter: 3 + + - tileSetFile: items.gif + tile: 34 + position: {x: 17, y: 6} + counter: 4 + + - tileSetFile: items.gif + tile: 34 + position: {x: 5, y: 12} + counter: 5 + + - tileSetFile: items.gif + tile: 34 + position: {x: 26, y: 12} + counter: 6 diff --git a/data/room/20.yaml b/data/room/20.yaml new file mode 100644 index 0000000..5810ced --- /dev/null +++ b/data/room/20.yaml @@ -0,0 +1,70 @@ +# ENTRANCE TO THE VALLEY +room: + name: "ENTRANCE TO THE VALLEY" + bgColor: black + border: red + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 21.yaml + right: 19.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [20, 20, 20, 20, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, 412, 412, 412, 412, 412, -1, -1, -1, -1, 412, 412, 412, 412, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, 412, 412, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, -1, -1, -1, -1, -1, -1, -1, 412, 412, 412, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, 412, -1, -1, -1] + - [306, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, 412, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, 20, 20, 20, 20, 20, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155] + +# Enemigos en esta habitación +enemies: + - animation: bin.yaml + position: {x: 8, y: 12} + velocity: {x: 60.0, y: 0} + boundaries: + position1: {x: 8, y: 12} + position2: {x: 24, y: 12} + color: green + + - animation: code.yaml + position: {x: 13, y: 2} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 13, y: 2} + position2: {x: 13, y: 9} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 19 + position: {x: 7, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 19 + position: {x: 27, y: 8} + counter: 2 diff --git a/data/room/21.yaml b/data/room/21.yaml new file mode 100644 index 0000000..ca8c8fd --- /dev/null +++ b/data/room/21.yaml @@ -0,0 +1,77 @@ +# ENTER PAKU SIMBEL +room: + name: "ENTER PAKU SIMBEL" + bgColor: bright_black + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 23.yaml + down: null + left: 22.yaml + right: 20.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 529, -1, -1, -1, -1, 20, 20, 20, 20, 20] + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -1, -1, 529, -1, -1, -1, -1, -1, 306, 20, 20] + - [20, 20, 20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, 20] + - [20, 20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, 20] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, 518, 20, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 20, 20, 20, 20] + - [-1, -1, -1, -1, -1, 399, -1, -1, -1, 396, 396, 396, 396, 397, 399, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 298, 20, 22, 23, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, 518, 298, 298, 20, 46, 47, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 298, 298, 298, 20, 20, 20, 20] + - [418, 396, -1, 418, 398, 398, 418, 418, -1, 396, 396, 396, 418, 418, 418, 398, 418, 396, 418, -1, 418, 398, 418, 418, 418, 396, 418, 418, 418, 418, 418, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + +# Enemigos en esta habitación +enemies: + - animation: mummy.yaml + position: {x: 13, y: 13} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 9, y: 13} + position2: {x: 18, y: 13} + color: yellow + flip: true + + - animation: spider.yaml + position: {x: 13, y: 9} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 4, y: 9} + position2: {x: 21, y: 9} + color: bright_green + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 36 + position: {x: 8, y: 11} + counter: 1 + + - tileSetFile: items.gif + tile: 36 + position: {x: 19, y: 11} + counter: 2 + + - tileSetFile: items.gif + tile: 36 + position: {x: 5, y: 3} + counter: 3 diff --git a/data/room/22.yaml b/data/room/22.yaml new file mode 100644 index 0000000..8a6bddc --- /dev/null +++ b/data/room/22.yaml @@ -0,0 +1,81 @@ +# AEE REMAKE, PLEASE +room: + name: "AEE REMAKE, PLEASE" + bgColor: bright_black + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 21.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 22, 23, 20] + - [20, 20, 20, 20, 22, 23, 20, 22, 23, 20, 22, 23, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 46, 47, 20] + - [20, -1, -1, 20, 46, 47, 20, 46, 47, 20, 46, 47, 20, 20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, 20, 20, 20, 20, 20, 20, 20] + - [20, -1, -1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, 20, 20] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20] + - [20, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 399, 399, 399, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 399, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, 398, -1, -1, 505, 418, 396, 396, 396, 418, 418, 397, 418, 418, 418, 418, 418, -1, 396, 396, 396, 418, 397, 396, 396, 418, -1, 418, 418] + - [20, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + +# Enemigos en esta habitación +enemies: + - animation: mummy.yaml + position: {x: 15, y: 13} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 12, y: 13} + position2: {x: 21, y: 13} + color: yellow + flip: true + + - animation: mummy.yaml + position: {x: 13, y: 8} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 13, y: 8} + position2: {x: 19, y: 8} + color: bright_yellow + flip: true + + - animation: mummy.yaml + position: {x: 22, y: 8} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 22, y: 8} + position2: {x: 28, y: 8} + color: bright_yellow + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 37 + position: {x: 1, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 37 + position: {x: 19, y: 5} + counter: 2 diff --git a/data/room/23.yaml b/data/room/23.yaml new file mode 100644 index 0000000..25ebd75 --- /dev/null +++ b/data/room/23.yaml @@ -0,0 +1,78 @@ +# INNER CHAMBER +room: + name: "INNER CHAMBER" + bgColor: black + border: bright_yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 21.yaml + left: 24.yaml + right: null + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [20, 20, 20, 20, 20, 22, 23, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + - [20, 20, 20, 20, 20, 46, 47, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + - [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + - [20, 20, 20, -1, -1, -1, -1, 306, -1, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, 20, 20, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, 20, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [20, 20, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [20, 20, -1, -1, 399, 399, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 399, 399, -1, -1, -1, -1, -1, 399, 20, 20] + - [20, 20, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 399, -1, -1, -1, 20, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, 399, 399, 399, -1, -1, -1, -1, -1, -1, 399, 399, 399, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20, 20, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 22, 23, 20] + - [20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 20, 20, 20, 20, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 46, 47, 20] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 20, 20, 22, 23, 20, 20, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 22, 23, 20] + - [-1, -1, -1, -1, -1, 555, -1, -1, -1, 518, 20, 20, 20, 46, 47, 20, 20, 20, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 46, 47, 20] + - [21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, -1, -1, 21, 21, 21, 21, 21] + +# Enemigos en esta habitación +enemies: + - animation: shock.yaml + position: {x: 7, y: 7} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 7, y: 3} + position2: {x: 7, y: 14} + color: magenta + + - animation: shock.yaml + position: {x: 20, y: 10} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 20, y: 3} + position2: {x: 20, y: 14} + color: magenta + + - animation: shock.yaml + position: {x: 27, y: 10} + velocity: {x: 0, y: -48.0} + boundaries: + position1: {x: 27, y: 3} + position2: {x: 27, y: 14} + color: magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 38 + position: {x: 29, y: 5} + counter: 1 + + - tileSetFile: items.gif + tile: 38 + position: {x: 2, y: 4} + counter: 2 diff --git a/data/room/24.yaml b/data/room/24.yaml new file mode 100644 index 0000000..e3a7c5b --- /dev/null +++ b/data/room/24.yaml @@ -0,0 +1,88 @@ +# PLAY IT AGAIN, SAM +room: + name: "PLAY IT AGAIN, SAM" + bgColor: black + border: bright_yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 23.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21] + - [19, 19, 19, 19, 19, 19, 19, -1, -1, -1, -1, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, -1, -1, -1, -1, 20, 20, 20, 20] + - [19, 19, 19, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 306, 20, 20, 20] + - [19, 19, 19, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [19, 19, 19, 19, 19, 19, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [19, 19, 306, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [19, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 45] + - [19, 19, 19, 19, 19, 19, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69] + - [44, 45, 44, 45, 44, 45, 133, 399, -1, -1, -1, -1, -1, 518, 19, 19, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 399, 20, 20] + - [68, 69, 68, 69, 68, 69, 133, -1, 399, -1, -1, -1, 518, 19, 22, 23, 19, 542, -1, -1, -1, -1, -1, 399, 399, -1, 399, 399, -1, -1, 20, 20] + - [19, 19, 19, 19, 19, 19, 19, -1, -1, -1, -1, 518, 19, 19, 46, 47, 19, 19, 542, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [19, 19, 19, 306, -1, -1, -1, -1, -1, -1, 518, 19, 19, 44, 45, 22, 23, 19, 19, 542, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, 20, 20] + - [19, 19, 306, -1, -1, -1, -1, -1, -1, 518, 19, 19, 19, 68, 69, 46, 47, 19, 19, 19, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 20] + - [19, 19, -1, -1, -1, -1, -1, -1, 518, 19, 19, 19, 22, 23, 22, 23, 22, 23, 19, 19, 19, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [19, 19, -1, -1, -1, -1, -1, 518, 19, 19, 19, 19, 46, 47, 46, 47, 46, 47, 19, 19, 19, 19, 542, -1, -1, 555, -1, -1, -1, -1, -1, -1] + - [21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21] + +# Enemigos en esta habitación +enemies: + - animation: sam.yaml + position: {x: 4, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 4, y: 2} + position2: {x: 4, y: 2} + color: white + + - animation: shock.yaml + position: {x: 5, y: 11} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 5, y: 11} + position2: {x: 5, y: 14} + color: bright_green + + - animation: spider.yaml + position: {x: 25, y: 1} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 25, y: 1} + position2: {x: 25, y: 10} + color: bright_green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 31 + position: {x: 2, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 31 + position: {x: 2, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 31 + position: {x: 15, y: 7} + counter: 3 + + - tileSetFile: items.gif + tile: 31 + position: {x: 29, y: 5} + counter: 4 diff --git a/data/room/25.yaml b/data/room/25.yaml new file mode 100644 index 0000000..db0a561 --- /dev/null +++ b/data/room/25.yaml @@ -0,0 +1,102 @@ +# THE CHAPPEL +room: + name: "THE CHAPPEL" + bgColor: blue + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 06.yaml + right: 26.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: cyan + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67] + - [90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91] + - [92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [116, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 92, 549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31] + - [116, 403, 404, -1, -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, 403, 403, 403, 404, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, 399, -1, -1, -1, 116, -1, -1, -1, 427, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1] + - [116, -1, -1, 402, 403, 404, -1, -1, -1, 427, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, 525, 402, 403, 403, 31, 31, 31, 31, 31] + - [116, -1, 427, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, 31, -1, -1, 31, 31] + - [140, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, 525, -1, -1, -1, -1, -1, 31, -1, -1, 31, 31] + - [31, 403, 403, 404, 398, -1, -1, -1, 396, -1, -1, -1, 402, 403, 403, 403, 403, 404, -1, 402, 404, -1, -1, -1, 402, 403, 403, 31, 31, 31, 31, 31] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, 31, 31] + - [-1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, 88, 93, 140, 555, -1, -1, -1, -1, -1, -1, -1, -1, 88, 93, 134, -1, -1, 31, 88] + - [88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89] + +# Enemigos en esta habitación +enemies: + - animation: batman_bell.yaml + position: {x: 28, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 28, y: 13} + position2: {x: 28, y: 13} + color: cyan + + - animation: bell.yaml + position: {x: 28, y: 10} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 28, y: 10} + position2: {x: 28, y: 10} + color: cyan + + - animation: bell.yaml + position: {x: 6, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 6, y: 2} + position2: {x: 6, y: 2} + color: cyan + + - animation: dong.yaml + position: {x: 6, y: 4} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 6, y: 4} + position2: {x: 6, y: 13} + color: cyan + + - animation: bell.yaml + position: {x: 20, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 20, y: 2} + position2: {x: 20, y: 2} + color: cyan + + - animation: dong.yaml + position: {x: 20, y: 13} + velocity: {x: 0, y: -30.0} + boundaries: + position1: {x: 20, y: 4} + position2: {x: 20, y: 13} + color: cyan + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 48 + position: {x: 1, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 48 + position: {x: 26, y: 13} + counter: 2 diff --git a/data/room/26.yaml b/data/room/26.yaml new file mode 100644 index 0000000..72ed9a9 --- /dev/null +++ b/data/room/26.yaml @@ -0,0 +1,133 @@ +# JINGLE BELLS +room: + name: "JINGLE BELLS" + bgColor: blue + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 25.yaml + right: 27.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67] + - [90, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 226, 225, 91] + - [92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 427, -1, -1, -1, -1, 116] + - [31, -1, -1, -1, -1, -1, -1, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, -1, -1, -1, -1, -1, -1, 116] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116] + - [-1, -1, -1, -1, -1, 427, 549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140] + - [92, -1, -1, -1, -1, -1, -1, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, -1, -1, -1, -1, -1, -1, 31] + - [116, 549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [140, -1, 549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 427, -1, -1, -1, -1, -1] + - [31, 31, 31, 31, -1, -1, -1, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, -1, -1, -1, 31, 31, 31, 31] + - [92, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, -1, -1, 92] + - [140, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 525, 427, 549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, 140] + - [88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89] + +# Enemigos en esta habitación +enemies: + - animation: batman_bell.yaml + position: {x: 1, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 1, y: 13} + position2: {x: 1, y: 13} + color: cyan + + - animation: abad_bell.yaml + position: {x: 29, y: 13} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 29, y: 13} + position2: {x: 29, y: 13} + color: cyan + + - animation: bell.yaml + position: {x: 1, y: 4} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 1, y: 4} + position2: {x: 29, y: 4} + color: yellow + + - animation: dong.yaml + position: {x: 1, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 1, y: 2} + position2: {x: 1, y: 2} + color: yellow + + - animation: bell.yaml + position: {x: 26, y: 7} + velocity: {x: -36.0, y: 0} + boundaries: + position1: {x: 1, y: 7} + position2: {x: 29, y: 7} + color: yellow + + - animation: dong.yaml + position: {x: 28, y: 2} + velocity: {x: -0, y: 0} + boundaries: + position1: {x: 28, y: 2} + position2: {x: 28, y: 2} + color: yellow + + - animation: bell.yaml + position: {x: 1, y: 10} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 1, y: 10} + position2: {x: 29, y: 10} + color: yellow + + - animation: bell.yaml + position: {x: 26, y: 13} + velocity: {x: -36.0, y: 0} + boundaries: + position1: {x: 4, y: 13} + position2: {x: 26, y: 13} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 60 + position: {x: 26, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 60 + position: {x: 5, y: 6} + counter: 2 + + - tileSetFile: items.gif + tile: 60 + position: {x: 26, y: 9} + counter: 3 + + - tileSetFile: items.gif + tile: 60 + position: {x: 4, y: 13} + counter: 4 + + - tileSetFile: items.gif + tile: 60 + position: {x: 27, y: 13} + counter: 5 diff --git a/data/room/27.yaml b/data/room/27.yaml new file mode 100644 index 0000000..467189e --- /dev/null +++ b/data/room/27.yaml @@ -0,0 +1,60 @@ +# THE BACKYARD +room: + name: "THE BACKYARD" + bgColor: blue + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 28.yaml + down: 29.yaml + left: 26.yaml + right: null + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [66, 67, 66, 67, 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [90, 91, 90, 91, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, 256, -1, -1, -1, -1, -1, 16] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, 16] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, 304, -1, 304, -1, -1, -1, -1, -1, 16] + - [116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, 304, 304, 304, -1, 304, 304, -1, -1, -1, 16] + - [140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, -1, 304, 304, 304, 304, -1, -1, -1, -1, -1, 16] + - [31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, 304, 304, 304, 304, 304, -1, 304, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, 304, 304, 304, 304, 304, 304, 304, -1, -1, -1, 16] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 304, 304, 40, 40, 304, 304, 304, -1, -1, -1, 16] + - [31, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, 304, -1, 40, 40, 304, -1, -1, 304, -1, -1, 16] + - [92, -1, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 40, 40, -1, -1, 304, -1, -1, -1, 16] + - [140, 425, 426, 425, 426, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 40, -1, -1, -1, -1, -1, -1, 16] + - [88, 89, 88, 89, 88, 89, 88, 89, 88, 93, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, -1, 522, 16, 16, 16] + +# No enemies in this room +enemies: [] + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 28 + position: {x: 1, y: 13} + counter: 1 + + - tileSetFile: items.gif + tile: 32 + position: {x: 11, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 32 + position: {x: 14, y: 14} + counter: 3 diff --git a/data/room/28.yaml b/data/room/28.yaml new file mode 100644 index 0000000..fb22ca4 --- /dev/null +++ b/data/room/28.yaml @@ -0,0 +1,57 @@ +# YOU SHALL NOT PASS +room: + name: "YOU SHALL NOT PASS" + bgColor: bright_black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 32.yaml + down: 27.yaml + left: null + right: 31.yaml + + # Colores de los objetos + itemColor1: bright_magenta + itemColor2: bright_green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [89, 88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 93, 40, 234, 234, -1, -1, 234, 234, 40, 88, 89, 88] + - [88, 93, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 213, 214, -1, -1, -1, -1, -1, -1, -1, -1, 213, 88, 89] + - [213, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 213, 88] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 234, -1, -1, -1, -1, -1, 213] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, 234, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [93, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1] + - [88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [93, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 414, 414, 414, 414, 414] + - [88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [89, 88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [88, 89, 88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 66, 67, 88, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 90, 91, 66, 67, 88, 93, 428, 428, 428, 428, 428, 428, 428, 428, -1, 428, 428, 428, 428, 428, 428, 428] + +# Enemigos en esta habitación +enemies: + - animation: lord_abad.yaml + position: {x: 0, y: 5} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 0, y: 5} + position2: {x: 0, y: 5} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 58 + position: {x: 2, y: 11} + counter: 1 diff --git a/data/room/29.yaml b/data/room/29.yaml new file mode 100644 index 0000000..39fc631 --- /dev/null +++ b/data/room/29.yaml @@ -0,0 +1,86 @@ +# QUO VOIDIS +room: + name: "QUO VOIDIS" + bgColor: blue + border: bright_black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 27.yaml + down: null + left: 30.yaml + right: null + + # Colores de los objetos + itemColor1: green + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 132] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, 132] + - [132, 132, -1, -1, 233, 233, 233, -1, -1, 233, 233, 233, -1, -1, 233, 233, 233, -1, -1, 233, 233, 233, -1, -1, 233, 233, -1, -1, 233, -1, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132] + - [132, 132, 233, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, 230, 132] + - [132, 132, 233, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132] + - [132, 132, -1, -1, 233, 233, 233, -1, -1, 229, 233, 233, -1, -1, 233, 233, 233, -1, -1, 233, 233, 233, -1, -1, 233, 233, -1, -1, -1, -1, -1, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, 233, 132] + - [132, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, 233, -1, -1, -1, -1, 132] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 132] + - [132, 132, 132, 132, 132, 132, 132, 128, 128, 132, 132, 132, 129, 129, 132, 132, 132, 129, 129, 132, 132, 132, 128, 128, 132, 132, 132, 132, 132, 132, 132, 132] + +# Enemigos en esta habitación +enemies: + - animation: qvoid.yaml + position: {x: 7, y: 1} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 7, y: 1} + position2: {x: 7, y: 13} + color: magenta + + - animation: qvoid.yaml + position: {x: 12, y: 6} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 12, y: 1} + position2: {x: 12, y: 13} + color: green + + - animation: qvoid.yaml + position: {x: 17, y: 8} + velocity: {x: 0, y: 54.0} + boundaries: + position1: {x: 17, y: 1} + position2: {x: 17, y: 13} + color: green + + - animation: qvoid.yaml + position: {x: 22, y: 10} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 22, y: 1} + position2: {x: 22, y: 13} + color: magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 20 + position: {x: 9, y: 9} + counter: 1 + + - tileSetFile: items.gif + tile: 20 + position: {x: 30, y: 6} + counter: 2 diff --git a/data/room/30.yaml b/data/room/30.yaml new file mode 100644 index 0000000..01e703e --- /dev/null +++ b/data/room/30.yaml @@ -0,0 +1,76 @@ +# QVOID IS A JAILGAME! +room: + name: "QVOID IS A JAILGAME!" + bgColor: blue + border: bright_black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 29.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [126, 127, 128, 129, 130, 131, 132, 126, 127, 128, 129, 130, 131, 132, 126, 127, 128, 129, 130, 131, 132, 126, 127, 128, 129, 130, 131, 132, 126, 127, 128, 129] + - [131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, 127] + - [130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128] + - [129, 227, 228, -1, -1, 229, 230, -1, -1, 231, 232, -1, -1, 233, 227, -1, -1, 228, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129] + - [128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130] + - [127, -1, -1, 230, 231, -1, -1, 232, 233, -1, -1, 227, 228, -1, -1, 229, 230, -1, -1, -1, 231, 232, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131] + - [126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, 227, 230, 547, -1, -1, 132] + - [126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 228, 230, 126] + - [127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127] + - [127, -1, -1, -1, -1, -1, -1, -1, -1, 231, 232, 227, -1, -1, -1, 484, 484, -1, -1, -1, 229, 230, 231, -1, -1, -1, 484, 484, -1, -1, -1, 128] + - [128, -1, -1, -1, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129] + - [129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130] + - [130, 231, 232, 547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131] + - [131, -1, -1, -1, 547, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [131, -1, -1, -1, -1, 547, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [132, 554, 554, 554, 554, 554, 126, 127, 128, 129, 130, 131, 484, 484, 484, 484, 484, 484, 484, 484, 484, 127, 128, 129, 130, 131, 132, 126, 127, 128, 129, 130] + +# Enemigos en esta habitación +enemies: + - animation: qvoid.yaml + position: {x: 1, y: 1} + velocity: {x: 42.0, y: 0} + boundaries: + position1: {x: 1, y: 1} + position2: {x: 29, y: 1} + color: white + flip: true + + - animation: qvoid.yaml + position: {x: 29, y: 1} + velocity: {x: -42.0, y: 0} + boundaries: + position1: {x: 1, y: 1} + position2: {x: 29, y: 1} + color: red + flip: true + + - animation: qvoid.yaml + position: {x: 6, y: 7} + velocity: {x: -30.0, y: 0} + boundaries: + position1: {x: 1, y: 7} + position2: {x: 27, y: 7} + color: green + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 20 + position: {x: 1, y: 2} + counter: 1 diff --git a/data/room/31.yaml b/data/room/31.yaml new file mode 100644 index 0000000..f3e1a45 --- /dev/null +++ b/data/room/31.yaml @@ -0,0 +1,86 @@ +# 256 COLORS +room: + name: "256 COLORS" + bgColor: black + border: bright_magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 28.yaml + right: null + + # Colores de los objetos + itemColor1: bright_red + itemColor2: bright_cyan + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [192, 197, 192, 193, 195, 201, 199, 194, 196, 200, 199, 193, 193, 195, 198, 193, 195, 193, 193, 201, 199, 196, 195, 193, 192, 201, 193, 202, 192, 196, 203, 195] + - [192, 200, 194, 203, 194, 196, 199, 193, 202, 197, 197, 195, 196, 201, 199, 194, 193, 198, 200, 194, 195, 193, 198, 194, 197, 200, 193, 194, 198, 193, 201, 193] + - [193, 199, 195, 195, 200, 197, -1, -1, 196, 198, -1, -1, 193, 197, 193, 192, 202, 203, 194, 193, 194, 192, 193, -1, -1, -1, -1, -1, -1, -1, 193, 199] + - [194, 202, 193, 192, 199, 192, -1, -1, 197, 192, -1, -1, 194, 198, 196, 193, 201, 194, -1, -1, -1, 196, 201, -1, -1, -1, -1, -1, -1, -1, 203, 200] + - [197, 194, 198, 196, 202, 194, -1, -1, 203, 194, -1, -1, 195, 193, 200, 194, 194, 195, -1, -1, -1, 202, 195, -1, -1, -1, -1, -1, -1, -1, 203, 193] + - [193, 196, 194, 197, 192, 195, -1, -1, 194, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, 202, -1, -1, -1, -1, -1, -1, -1, 196, 199] + - [199, 201, 192, 193, 194, 198, -1, -1, 195, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 192, 193, -1, -1, -1, -1, -1, -1, -1, 192, 194] + - [192, 195, 197, 195, 193, 197, -1, -1, 192, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, 195, -1, -1, -1, -1, -1, -1, 513, 196, 203] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, 203, 192, -1, -1, -1, -1, -1, 512, 192, 193, 195] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 196, 196, 201, 196] + - [198, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 197, 199, 198, 200, 199] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 397, 397, 397, 397, 397, 397, 397, 397, 397, -1, 516, 195, 202, 200, 193, 196, 194] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 199, 193, 192, 194, 196, 198, 197] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 201, 195, 193, 198, 194, 203, 201, 196] + - [-1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, 559, -1, -1, -1, 555, -1, -1, -1, -1, 559, -1, 513, 195, 203, 197, 200, 195, 197, 193, 194, 197] + - [192, 193, 194, 198, 197, 195, 203, 199, 197, 202, 198, 197, 194, 201, 201, 199, 200, 197, 199, 198, 192, 196, 194, 196, 198, 194, 195, 196, 193, 199, 194, 192] + +# Enemigos en esta habitación +enemies: + - animation: guitar.yaml + position: {x: 13, y: 5} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 13, y: 5} + position2: {x: 13, y: 13} + color: magenta + + - animation: sigmasua.yaml + position: {x: 24, y: 2} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 24, y: 2} + position2: {x: 24, y: 9} + color: red + + - animation: paco.yaml + position: {x: 6, y: 2} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 6, y: 2} + position2: {x: 6, y: 8} + color: yellow + + - animation: chip.yaml + position: {x: 15, y: 9} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 15, y: 9} + position2: {x: 23, y: 9} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 61 + position: {x: 10, y: 3} + counter: 1 + + - tileSetFile: items.gif + tile: 61 + position: {x: 29, y: 3} + counter: 2 diff --git a/data/room/32.yaml b/data/room/32.yaml new file mode 100644 index 0000000..e8ce952 --- /dev/null +++ b/data/room/32.yaml @@ -0,0 +1,62 @@ +# ...? +room: + name: "...?" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 34.yaml + down: 28.yaml + left: null + right: 33.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 234, 234, -1, -1, 234, 234, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 142, -1, 234, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 142, -1, 234, 234, 234, 234, -1, 40, 234, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 234, -1, 142, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 234, 40, -1, 141, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, 234, 234, -1, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 142, 234, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, 40, 234, -1, -1, -1, -1, -1, 142, -1, 234, -1] + - [-1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 234, 234, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 142, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, 142, -1, -1, -1, 234, 234, -1, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 355, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, 234, -1, -1, -1, -1, -1, 355, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 380, -1, 40, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 234, 234, 40, 234, 234, -1, -1, 234, 234, 40, 234, 187, 187] + +# Enemigos en esta habitación +enemies: + - animation: tree_thing.yaml + position: {x: 23, y: 4} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 23, y: 4} + position2: {x: 23, y: 13} + color: yellow + + - animation: shooting_star.yaml + position: {x: 10, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 10, y: 2} + position2: {x: 10, y: 2} + color: white + frame: 0 + +# No items in this room +items: [] \ No newline at end of file diff --git a/data/room/33.yaml b/data/room/33.yaml new file mode 100644 index 0000000..7f75ad6 --- /dev/null +++ b/data/room/33.yaml @@ -0,0 +1,88 @@ +# } WE ALL LOVE JAILGAMES } +room: + name: "} WE ALL LOVE JAILGAMES }" + bgColor: black + border: bright_black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 32.yaml + right: null + + # Colores de los objetos + itemColor1: bright_red + itemColor2: bright_yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 94, 95, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 164, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562] + +# Enemigos en esta habitación +enemies: + - animation: pepe_rosita_job.yaml + position: {x: 2, y: 2} + velocity: {x: 0, y: 3.0} + boundaries: + position1: {x: 2, y: 2} + position2: {x: 2, y: 3} + color: white + + - animation: aerojailer.yaml + position: {x: 14, y: 5} + velocity: {x: 0, y: -2.4} + boundaries: + position1: {x: 14, y: 4} + position2: {x: 14, y: 6} + color: white + + - animation: arounder.yaml + position: {x: 22, y: 5} + velocity: {x: 0, y: 1.8} + boundaries: + position1: {x: 22, y: 5} + position2: {x: 22, y: 6} + color: white + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 62 + position: {x: 13, y: 14} + counter: 1 + + - tileSetFile: items.gif + tile: 63 + position: {x: 14, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 64 + position: {x: 15, y: 14} + counter: 3 + + - tileSetFile: items.gif + tile: 65 + position: {x: 16, y: 14} + counter: 4 diff --git a/data/room/34.yaml b/data/room/34.yaml new file mode 100644 index 0000000..77d0f4a --- /dev/null +++ b/data/room/34.yaml @@ -0,0 +1,90 @@ +# ULA HOP! +room: + name: "ULA HOP!" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 32.yaml + left: 35.yaml + right: null + + # Colores de los objetos + itemColor1: green + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114] + - [115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 113, 114, 113, 114, 113, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 115, 139] + - [115, -1, -1, -1, -1, -1, -1, -1, 376, -1, -1, 113, 114, 113, 114, 113, 114, 113, 114, -1, -1, -1, -1, 376, 376, -1, -1, -1, -1, -1, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, -1, -1, 376, -1, -1, -1, 113, 114, 113, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [115, -1, -1, -1, 376, 376, 376, -1, -1, -1, -1, -1, -1, 114, 113, 114, 113, -1, -1, -1, -1, -1, 376, 376, 376, 376, -1, -1, -1, -1, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, -1, 113, 114, 113, 114, -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 113, 114, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, 431, 113, 114, 139, 115] + - [139, -1, -1, -1, -1, -1, -1, 376, 376, -1, -1, -1, -1, 113, 114, 113, 114, -1, -1, -1, -1, -1, -1, 430, 431, 430, 431, 430, 431, -1, 115, 139] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 114, 113, 114, 113, -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 115] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 113, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, -1, -1, 113, 114, 113, 114, 113, 114] + +# Enemigos en esta habitación +enemies: + - animation: floppy.yaml + position: {x: 20, y: 1} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 20, y: 1} + position2: {x: 20, y: 13} + color: cyan + + - animation: spark.yaml + position: {x: 11, y: 4} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 11, y: 4} + position2: {x: 18, y: 4} + color: cyan + + - animation: spark.yaml + position: {x: 1, y: 1} + velocity: {x: 60.0, y: 0} + boundaries: + position1: {x: 1, y: 1} + position2: {x: 29, y: 1} + color: yellow + mirror: true + + - animation: wave.yaml + position: {x: 1, y: 6} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 1, y: 6} + position2: {x: 10, y: 6} + color: yellow + + - animation: wave.yaml + position: {x: 17, y: 8} + velocity: {x: 54.0, y: 0} + boundaries: + position1: {x: 17, y: 8} + position2: {x: 29, y: 8} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 66 + position: {x: 29, y: 3} + counter: 1 diff --git a/data/room/35.yaml b/data/room/35.yaml new file mode 100644 index 0000000..a83f69a --- /dev/null +++ b/data/room/35.yaml @@ -0,0 +1,103 @@ +# SILICON BOOBS +room: + name: "SILICON BOOBS" + bgColor: black + border: bright_green + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 36.yaml + right: 34.yaml + + # Colores de los objetos + itemColor1: green + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [117, 118, 113, 114, 117, 118, 113, 114, 113, 114, 113, 114, 117, 118, 113, 114, 113, 114, 113, 114, 117, 118, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114] + - [114, 117, 118, 113, 114, 113, 114, 117, 118, 113, 114, 113, 114, 113, 114, 113, 114, 117, 118, 113, 114, 113, 114, 113, 114, 113, 114, 117, 118, 113, 114, 113] + - [115, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [139, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 119] + - [119, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 143] + - [143, 115, 406, 407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 115] + - [115, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [139, 115, -1, -1, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 139, 115] + - [115, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, 139] + - [139, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, 143, 115] + - [115, 143, 430, 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [-1, -1, -1, -1, -1, -1, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 430, 431, 139, 115] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, 139] + - [113, 114, 113, 540, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [114, 113, 114, 113, 540, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114, 117, 118, 113, 114] + +# Enemigos en esta habitación +enemies: + - animation: jeannine.yaml + position: {x: 6, y: 13} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 6, y: 13} + position2: {x: 14, y: 13} + color: yellow + flip: true + + - animation: jeannine.yaml + position: {x: 16, y: 13} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 16, y: 13} + position2: {x: 28, y: 13} + color: cyan + flip: true + + - animation: jeannine.yaml + position: {x: 7, y: 9} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 7, y: 9} + position2: {x: 15, y: 9} + color: red + flip: true + + - animation: jeannine.yaml + position: {x: 16, y: 9} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 16, y: 9} + position2: {x: 27, y: 9} + color: white + flip: true + + - animation: jeannine.yaml + position: {x: 5, y: 5} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 5, y: 5} + position2: {x: 12, y: 5} + color: green + flip: true + + - animation: chip.yaml + position: {x: 16, y: 5} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 16, y: 5} + position2: {x: 26, y: 5} + color: yellow + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 57 + position: {x: 2, y: 4} + counter: 1 diff --git a/data/room/36.yaml b/data/room/36.yaml new file mode 100644 index 0000000..174e9aa --- /dev/null +++ b/data/room/36.yaml @@ -0,0 +1,136 @@ +# BE CAREFUL WITH THE FUSE +room: + name: "BE CAREFUL WITH THE FUSE" + bgColor: black + border: bright_cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 37.yaml + right: 35.yaml + + # Colores de los objetos + itemColor1: green + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118] + - [118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143] + - [-1, -1, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 353, -1, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, -1, 119] + - [-1, -1, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, -1, 353, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, -1, 143] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 143] + - [117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118, 117, 118] + +# Enemigos en esta habitación +enemies: + - animation: spark.yaml + position: {x: 6, y: 13} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 2, y: 13} + position2: {x: 14, y: 13} + color: yellow + + - animation: spark.yaml + position: {x: 21, y: 13} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 17, y: 13} + position2: {x: 29, y: 13} + color: yellow + + - animation: spark.yaml + position: {x: 2, y: 10} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 2, y: 10} + position2: {x: 14, y: 10} + color: yellow + mirror: true + + - animation: spark.yaml + position: {x: 17, y: 10} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 17, y: 10} + position2: {x: 29, y: 10} + color: yellow + mirror: true + + - animation: shock.yaml + position: {x: 13, y: 2} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 13, y: 2} + position2: {x: 13, y: 7} + color: bright_yellow + + - animation: shock.yaml + position: {x: 10, y: 4} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 10, y: 2} + position2: {x: 10, y: 7} + color: bright_yellow + + - animation: shock.yaml + position: {x: 7, y: 6} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 7, y: 2} + position2: {x: 7, y: 7} + color: bright_yellow + + - animation: shock.yaml + position: {x: 24, y: 2} + velocity: {x: 0, y: 24.0} + boundaries: + position1: {x: 24, y: 2} + position2: {x: 24, y: 7} + color: bright_yellow + + - animation: shock.yaml + position: {x: 21, y: 4} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 21, y: 2} + position2: {x: 21, y: 7} + color: bright_yellow + + - animation: shock.yaml + position: {x: 18, y: 6} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 18, y: 2} + position2: {x: 18, y: 7} + color: bright_yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 57 + position: {x: 3, y: 7} + counter: 1 + + - tileSetFile: items.gif + tile: 57 + position: {x: 28, y: 7} + counter: 2 diff --git a/data/room/37.yaml b/data/room/37.yaml new file mode 100644 index 0000000..449e06d --- /dev/null +++ b/data/room/37.yaml @@ -0,0 +1,94 @@ +# CHIP'N CHIP +room: + name: "CHIP'N CHIP" + bgColor: black + border: bright_green + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 38.yaml + right: 36.yaml + + # Colores de los objetos + itemColor1: green + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 376, 376, -1, -1, -1, -1, 376, 376, 376, -1, -1, -1, -1] + - [-1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 376, 376, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, 430, 431, 430, 431, 430, 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, 113, 114, 113, 114, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 376, 376, 115, -1, -1, -1, -1, 115, 376, 376, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 376, 376, -1, 115, -1, -1, -1, -1, 115, -1, 376, 376, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, 554, 554, 554, 554, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114] + +# Enemigos en esta habitación +enemies: + - animation: z80.yaml + position: {x: 15, y: 1} + velocity: {x: 0, y: 18.0} + boundaries: + position1: {x: 15, y: 1} + position2: {x: 15, y: 10} + color: bright_green + + - animation: chip.yaml + position: {x: 1, y: 8} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 1, y: 8} + position2: {x: 6, y: 8} + color: bright_green + + - animation: chip.yaml + position: {x: 28, y: 8} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 25, y: 8} + position2: {x: 30, y: 8} + color: bright_green + + - animation: shock.yaml + position: {x: 8, y: 1} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 8, y: 1} + position2: {x: 8, y: 14} + color: bright_green + + - animation: shock.yaml + position: {x: 23, y: 7} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 23, y: 1} + position2: {x: 23, y: 14} + color: bright_green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 57 + position: {x: 3, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 57 + position: {x: 26, y: 5} + counter: 2 diff --git a/data/room/38.yaml b/data/room/38.yaml new file mode 100644 index 0000000..39771de --- /dev/null +++ b/data/room/38.yaml @@ -0,0 +1,111 @@ +# THE FINAL CROSSOVER +room: + name: "THE FINAL CROSSOVER" + bgColor: bright_black + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 39.yaml + right: 37.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [20, 20, 20, 20, 20, 20, 20, 22, 23, -1, -1, 20, 20, 20, 20, 20, 20, 22, 23, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] + - [20, 20, -1, -1, -1, 20, 20, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, 20, 20, 20, -1, -1, -1, 20, 20, 20, 20, 20, -1, -1] + - [20, -1, -1, -1, -1, -1, 20, 20, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, 20, -1, -1, -1, -1, -1, -1, 397, 397, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [20, 20, -1, -1, 262, 397, 397, 334, -1, -1, -1, -1, 396, -1, -1, -1, 396, -1, -1, -1, -1, -1, -1, -1, -1, 505, 20, 20, 20, 20, -1, -1] + - [20, -1, -1, -1, 286, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, 262, -1, -1, -1] + - [20, -1, -1, -1, 310, -1, -1, 382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 398, 398, 399, 396, -1, -1, -1, -1, 286, -1, -1, -1] + - [-1, -1, -1, 398, 396, 397, 398, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, 286, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, 555, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, 555, -1, -1, -1, -1, -1, 310, -1, -1, -1] + - [217, 217, 217, 218, 20, 20, 20, 20, 20, 20, 556, 556, 556, 556, 556, 556, 556, 556, 20, 20, 20, 20, 20, 20, 20, 219, 220, 220, 220, 220, 220, 221] + +# Enemigos en esta habitación +enemies: + - animation: stopped_arounder.yaml + position: {x: 9, y: 11} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 9, y: 11} + position2: {x: 9, y: 11} + color: white + + - animation: stopped_arounder.yaml + position: {x: 18, y: 11} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 18, y: 11} + position2: {x: 18, y: 11} + color: white + + - animation: walking_arounder.yaml + position: {x: 12, y: 1} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 11, y: 1} + position2: {x: 16, y: 1} + color: white + flip: true + + - animation: arounders_door.yaml + position: {x: 9, y: 0} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 9, y: 0} + position2: {x: 9, y: 0} + color: yellow + flip: true + + - animation: flying_arounder.yaml + position: {x: 3, y: 1} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 3, y: 1} + position2: {x: 3, y: 9} + color: white + flip: true + + - animation: mummy.yaml + position: {x: 12, y: 10} + velocity: {x: 12.0, y: 0} + boundaries: + position1: {x: 10, y: 10} + position2: {x: 17, y: 10} + color: bright_yellow + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 37 + position: {x: 16, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 37 + position: {x: 1, y: 4} + counter: 2 + + - tileSetFile: items.gif + tile: 37 + position: {x: 29, y: 6} + counter: 3 diff --git a/data/room/39.yaml b/data/room/39.yaml new file mode 100644 index 0000000..e5bb95d --- /dev/null +++ b/data/room/39.yaml @@ -0,0 +1,108 @@ +# YOU'LL BELIEVE AROUNDER CAN FLY +room: + name: "YOU'LL BELIEVE AROUNDER CAN FLY" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 40.yaml + right: 38.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: cyan + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 219, 220, 220, 221, -1, -1, -1, -1] + - [-1, -1, 219, 220, 220, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 219, 220, 220, 220, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, 219, 220, 220, 220, 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, 263, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, 219, 220, 220, 221, -1, -1, -1, 287, -1, 287, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, 287, -1, -1, -1, -1, 219, 220, 220, 221, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 219, 220, 220, 220, 221, -1, -1, -1, -1, -1, 219, 220, 220, 220, 220, 221, -1, -1, -1, 286, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [556, 556, 216, 217, 217, 217, 217, 218, 556, 556, 556, 556, 216, 217, 217, 217, 217, 217, 218, 556, 556, 556, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217] + +# Enemigos en esta habitación +enemies: + - animation: arounders_door.yaml + position: {x: 3, y: 1} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 3, y: 1} + position2: {x: 3, y: 1} + color: white + + - animation: flying_arounder.yaml + position: {x: 9, y: 1} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 9, y: 1} + position2: {x: 9, y: 10} + color: white + flip: true + + - animation: flying_arounder.yaml + position: {x: 15, y: 0} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 15, y: 0} + position2: {x: 15, y: 14} + color: white + flip: true + + - animation: flying_arounder.yaml + position: {x: 22, y: 10} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 22, y: 0} + position2: {x: 22, y: 14} + color: white + flip: true + + - animation: flying_arounder.yaml + position: {x: 16, y: 5} + velocity: {x: 0, y: 42.0} + boundaries: + position1: {x: 16, y: 0} + position2: {x: 16, y: 10} + color: white + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 47 + position: {x: 4, y: 5} + counter: 1 + + - tileSetFile: items.gif + tile: 47 + position: {x: 26, y: 1} + counter: 2 + + - tileSetFile: items.gif + tile: 47 + position: {x: 25, y: 7} + counter: 3 + + - tileSetFile: items.gif + tile: 47 + position: {x: 25, y: 14} + counter: 4 diff --git a/data/room/40.yaml b/data/room/40.yaml new file mode 100644 index 0000000..b18aab7 --- /dev/null +++ b/data/room/40.yaml @@ -0,0 +1,98 @@ +# PREVENT THE CRISIS +room: + name: "PREVENT THE CRISIS" + bgColor: black + border: bright_magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 41.yaml + right: 39.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 222, 223, 223, 223, 224, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, 334, -1, 334, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, 358, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, 222, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 358, -1, -1, -1, 382, -1, -1, -1, 382, -1, -1, -1, 382, -1, -1, -1, -1, 382, -1, 382, -1, -1, -1, -1, -1, -1] + - [-1, -1, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223] + - [-1, -1, -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, -1, -1, -1, -1, -1] + - [556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556] + +# Enemigos en esta habitación +enemies: + - animation: arounders_machine.yaml + position: {x: 7, y: 1} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 7, y: 1} + position2: {x: 7, y: 1} + color: red + + - animation: walking_arounder.yaml + position: {x: 10, y: 12} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 7, y: 12} + position2: {x: 26, y: 12} + color: white + flip: true + + - animation: walking_arounder.yaml + position: {x: 15, y: 12} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 7, y: 12} + position2: {x: 26, y: 12} + color: green + flip: true + + - animation: walking_arounder.yaml + position: {x: 20, y: 12} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 7, y: 12} + position2: {x: 26, y: 12} + color: yellow + flip: true + + - animation: walking_arounder.yaml + position: {x: 14, y: 2} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 11, y: 2} + position2: {x: 18, y: 2} + color: cyan + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 5 + position: {x: 10, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 5 + position: {x: 25, y: 5} + counter: 2 diff --git a/data/room/41.yaml b/data/room/41.yaml new file mode 100644 index 0000000..e853150 --- /dev/null +++ b/data/room/41.yaml @@ -0,0 +1,108 @@ +# AROUND WITH ME +room: + name: "AROUND WITH ME" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 42.yaml + right: 40.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [187, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [187, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [187, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [187, -1, -1, -1, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, 217, 217, 217, 217, 217, 217, 217, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1] + - [43, 43, 43, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556] + +# Enemigos en esta habitación +enemies: + - animation: arounders_door.yaml + position: {x: 6, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 6, y: 2} + position2: {x: 6, y: 2} + color: bright_cyan + + - animation: stopped_arounder.yaml + position: {x: 8, y: 12} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 8, y: 12} + position2: {x: 8, y: 12} + color: bright_cyan + + - animation: stopped_arounder.yaml + position: {x: 11, y: 3} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 11, y: 3} + position2: {x: 11, y: 3} + color: bright_cyan + + - animation: stopped_arounder.yaml + position: {x: 24, y: 12} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 24, y: 12} + position2: {x: 24, y: 12} + color: bright_cyan + + - animation: walking_arounder.yaml + position: {x: 12, y: 12} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 9, y: 12} + position2: {x: 23, y: 12} + color: bright_cyan + flip: true + + - animation: walking_arounder.yaml + position: {x: 14, y: 12} + velocity: {x: -24.0, y: 0} + boundaries: + position1: {x: 9, y: 12} + position2: {x: 23, y: 12} + color: bright_cyan + flip: true + + - animation: walking_arounder.yaml + position: {x: 14, y: 6} + velocity: {x: -24.0, y: 0} + boundaries: + position1: {x: 12, y: 6} + position2: {x: 20, y: 6} + color: bright_cyan + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 46 + position: {x: 9, y: 2} + counter: 1 diff --git a/data/room/42.yaml b/data/room/42.yaml new file mode 100644 index 0000000..2bf7280 --- /dev/null +++ b/data/room/42.yaml @@ -0,0 +1,71 @@ +# P.A.C.O. ON THE GO +room: + name: "P.A.C.O. ON THE GO" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 43.yaml + left: 53.yaml + right: 41.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [35, 35, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61] + - [35, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 414, 414, 420, -1, -1, -1, -1, -1, 61] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 420, 61] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 420, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 414, 420, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, -1, -1, -1, -1, -1, -1, -1, 305, -1, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, -1, -1, -1, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, -1, 414, 420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 414, 414, -1, -1, 420, 414, -1, -1, -1, -1, -1, -1] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 414, 420, 530, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, 422, 384, -1, -1, 25, 43, 43, 43, 43, 43] + +# Enemigos en esta habitación +enemies: + - animation: paco.yaml + position: {x: 10, y: 2} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 10, y: 2} + position2: {x: 10, y: 11} + color: magenta + + - animation: abad.yaml + position: {x: 15, y: 13} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 4, y: 13} + position2: {x: 19, y: 13} + color: bright_cyan + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 41 + position: {x: 2, y: 9} + counter: 1 + + - tileSetFile: items.gif + tile: 41 + position: {x: 29, y: 3} + counter: 2 diff --git a/data/room/43.yaml b/data/room/43.yaml new file mode 100644 index 0000000..85f2363 --- /dev/null +++ b/data/room/43.yaml @@ -0,0 +1,65 @@ +# THE TUBE +room: + name: "THE TUBE" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 42.yaml + down: 44.yaml + left: null + right: null + + # Colores de los objetos + itemColor1: yellow + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, 423, 384, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 384, 384, 422, 422, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, 424, 384, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 384, 423, 384, 384, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, 384, 384, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 384, 384, 423, 384, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, 422, 384, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 384, 422, 384, 384, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, 384, 384, 25, 43, 43, 43, 43, 43] + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 422, 384, 422, 384, -1, -1, 25, 43, 43, 43, 43, 43] + +# Enemigos en esta habitación +enemies: + - animation: spider.yaml + position: {x: 20, y: 5} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 20, y: 5} + position2: {x: 23, y: 5} + color: cyan + + - animation: spider.yaml + position: {x: 22, y: 11} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 20, y: 11} + position2: {x: 23, y: 11} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 8 + position: {x: 21, y: 10} + counter: 1 diff --git a/data/room/44.yaml b/data/room/44.yaml new file mode 100644 index 0000000..b97bf23 --- /dev/null +++ b/data/room/44.yaml @@ -0,0 +1,66 @@ +# SANDWITCH AND COUNTER +room: + name: "SANDWITCH AND COUNTER" + bgColor: black + border: cyan + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 43.yaml + down: 16.yaml + left: null + right: null + + # Colores de los objetos + itemColor1: white + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, -1, -1, -1, -1, -1, -1, 25, 43, 43, 43, 43, 43] + - [36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, 342, 342, 342, 342, 342, 342, -1, -1, 36, 36, 36, 36] + - [36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, -1, -1, 342, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, -1, -1, 344, 36, 36, -1, -1, -1, -1, -1, -1, 342, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 36, 36, -1, -1, -1, -1, -1, -1, -1, 342, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [36, 36, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, 36, 36, 36, 36] + - [37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 416, -1, -1, 416, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37] + +# Enemigos en esta habitación +enemies: + - animation: congo.yaml + position: {x: 2, y: 4} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 2, y: 4} + position2: {x: 14, y: 4} + color: green + flip: true + + - animation: crosshair.yaml + position: {x: 23, y: 4} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 23, y: 4} + position2: {x: 23, y: 13} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 8 + position: {x: 2, y: 2} + counter: 1 diff --git a/data/room/45.yaml b/data/room/45.yaml new file mode 100644 index 0000000..105adea --- /dev/null +++ b/data/room/45.yaml @@ -0,0 +1,78 @@ +# FEEL THE PRESSURE +room: + name: "FEEL THE PRESSURE" + bgColor: bright_black + border: bright_yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 14.yaml + right: 46.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [29, 29, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, 322, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, 322, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, 322, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, 322, 322, -1, 322, 322, 322, 322, 322, -1, 322, 322, 322, 322, 322, -1, 322, 322, 322, 322, -1, 394, -1, -1, -1, 394, 394, 394, 394, 394, 394] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, 29, 29, -1, -1, -1, 394, 394, 394, -1, -1, -1, 394, 394, -1, -1, -1, -1, 394, 394, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, 394, 394, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [29, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569] + +# Enemigos en esta habitación +enemies: + - animation: chip.yaml + position: {x: 4, y: 5} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 4, y: 2} + position2: {x: 4, y: 13} + color: green + + - animation: chip.yaml + position: {x: 10, y: 4} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 10, y: 2} + position2: {x: 10, y: 13} + color: bright_blue + + - animation: chip.yaml + position: {x: 16, y: 3} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 16, y: 2} + position2: {x: 16, y: 13} + color: magenta + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 54 + position: {x: 17, y: 1} + counter: 0 + + - tileSetFile: items.gif + tile: 54 + position: {x: 18, y: 12} + counter: 0 diff --git a/data/room/46.yaml b/data/room/46.yaml new file mode 100644 index 0000000..6eb5cd4 --- /dev/null +++ b/data/room/46.yaml @@ -0,0 +1,74 @@ +# FEEL THE HEAT +room: + name: "FEEL THE HEAT" + bgColor: bright_black + border: bright_yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 45.yaml + right: null + + # Colores de los objetos + itemColor1: red + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29] + - [394, 394, 398, -1, -1, -1, -1, 472, 472, 472, -1, -1, -1, -1, 472, 472, 472, -1, -1, -1, -1, 472, 472, 472, 472, -1, -1, 394, 394, 398, 29, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134] + - [480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 134] + +# Enemigos en esta habitación +enemies: + - animation: batman_fire.yaml + position: {x: 10, y: 13} + velocity: {x: 78.0, y: 0} + boundaries: + position1: {x: 0, y: 13} + position2: {x: 29, y: 13} + color: cyan + flip: true + + - animation: heavy.yaml + position: {x: 11, y: 7} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 11, y: 1} + position2: {x: 11, y: 12} + color: green + + - animation: heavy.yaml + position: {x: 18, y: 2} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 18, y: 1} + position2: {x: 18, y: 12} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 28 + position: {x: 28, y: 6} + counter: 1 diff --git a/data/room/47.yaml b/data/room/47.yaml new file mode 100644 index 0000000..11e0d03 --- /dev/null +++ b/data/room/47.yaml @@ -0,0 +1,105 @@ +# THE BATTLE NEVER ENDS +room: + name: "THE BATTLE NEVER ENDS" + bgColor: black + border: white + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 51.yaml + down: null + left: 48.yaml + right: null + + # Colores de los objetos + itemColor1: red + itemColor2: yellow + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -1, -1, -1, -1, -1, 504, 27, 27, 27, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, -1, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, 412, 528, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [27, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 412, -1, -1, -1, -1, -1, -1, -1, 504, 412, -1, -1, -1, -1, 412, 412, 85, 85] + - [27, -1, 412, 528, -1, -1, -1, -1, -1, -1, -1, -1, 412, 528, -1, -1, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [27, -1, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, -1, 412, 528, -1, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 412, 412, -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [27, -1, -1, -1, 504, 412, -1, -1, -1, 412, 528, -1, 504, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, 412, 528, -1, -1, -1, -1, 85, 85] + - [27, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 412, -1, -1, -1, 85, 85] + - [27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 85] + - [27, 27, 27, 27, 27, 388, 388, 388, 27, 27, 27, 27, 27, 388, 388, 388, 27, 27, 27, 27, 27, 388, 388, 27, 388, 27, 27, 27, 27, 27, 85, 85] + +# Enemigos en esta habitación +enemies: + - animation: jailbattle_alien.yaml + position: {x: 10, y: 3} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 3, y: 3} + position2: {x: 27, y: 3} + color: green + flip: true + + - animation: jailbattle_alien.yaml + position: {x: 25, y: 4} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 25, y: 4} + position2: {x: 25, y: 10} + color: yellow + flip: true + + - animation: jailbattle_human.yaml + position: {x: 7, y: 6} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 7, y: 6} + position2: {x: 7, y: 13} + color: red + flip: true + + - animation: jailbattle_human.yaml + position: {x: 18, y: 13} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 15, y: 13} + position2: {x: 27, y: 13} + color: cyan + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 19 + position: {x: 6, y: 14} + counter: 1 + + - tileSetFile: items.gif + tile: 19 + position: {x: 14, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 19 + position: {x: 23, y: 14} + counter: 3 + + - tileSetFile: items.gif + tile: 19 + position: {x: 28, y: 6} + counter: 4 + + - tileSetFile: items.gif + tile: 19 + position: {x: 14, y: 5} + counter: 5 diff --git a/data/room/48.yaml b/data/room/48.yaml new file mode 100644 index 0000000..99a6c9b --- /dev/null +++ b/data/room/48.yaml @@ -0,0 +1,86 @@ +# WELCOME TO THE JAILBATTLE +room: + name: "WELCOME TO THE JAILBATTLE" + bgColor: green + border: bright_green + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 49.yaml + left: null + right: 47.yaml + + # Colores de los objetos + itemColor1: white + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, 400, 400, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, 400, 400, 400, 400, 400, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, 32, -1, 32, -1, 32, -1, 32, -1, 32, -1, 32, -1, 32, 400, 32] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32] + - [32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 400, 400, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133] + - [32, -1, -1, -1, -1, 504, 400, 400, 400, 400, 400, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32] + - [32, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 133] + - [32, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32] + - [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1, -1, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32] + +# Enemigos en esta habitación +enemies: + - animation: jailbattle_human.yaml + position: {x: 17, y: 6} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 12, y: 6} + position2: {x: 27, y: 6} + color: white + flip: true + + - animation: jailbattle_human.yaml + position: {x: 2, y: 13} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 2, y: 13} + position2: {x: 16, y: 13} + color: white + flip: true + + - animation: jailbattle_alien.yaml + position: {x: 24, y: 10} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 24, y: 9} + position2: {x: 24, y: 13} + color: white + flip: true + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 19 + position: {x: 27, y: 11} + counter: 1 + + - tileSetFile: items.gif + tile: 19 + position: {x: 3, y: 3} + counter: 2 + + - tileSetFile: items.gif + tile: 19 + position: {x: 23, y: 4} + counter: 3 diff --git a/data/room/49.yaml b/data/room/49.yaml new file mode 100644 index 0000000..c8fc2be --- /dev/null +++ b/data/room/49.yaml @@ -0,0 +1,54 @@ +# WE NEED A ROBOT +room: + name: "WE NEED A ROBOT" + bgColor: black + border: red + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 48.yaml + down: null + left: 50.yaml + right: 17.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, -1, -1, -1, -1, 522, 38, 38, 38, 38, 38, 38, 38, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, 268, 268, 268, 268, 268, 268, 546, -1, -1, -1, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38] + - [38, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, -1, -1, 522, 268, 268, 268, 268, 268, 268, 268, 268, 38] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38] + +# Enemigos en esta habitación +enemies: + - animation: robot.yaml + position: {x: 10, y: 8} + velocity: {x: 42.0, y: 0} + boundaries: + position1: {x: 1, y: 8} + position2: {x: 29, y: 8} + color: yellow + flip: true + +# No items in this room +items: [] \ No newline at end of file diff --git a/data/room/50.yaml b/data/room/50.yaml new file mode 100644 index 0000000..fd98380 --- /dev/null +++ b/data/room/50.yaml @@ -0,0 +1,80 @@ +# STORED JAILGAMES +room: + name: "STORED JAILGAMES" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 49.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41] + - [41, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [41, 63, 63, 63, 63, 63, -1, -1, -1, -1, 436, 436, 436, -1, -1, -1, 436, 436, 436, -1, -1, -1, -1, 63, 63, 63, 63, 63, 63, 63, 63, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41] + - [41, -1, -1, 388, 388, 388, -1, -1, -1, -1, 388, 388, 388, 388, 364, 388, 388, 388, 388, -1, -1, -1, -1, 388, 388, 388, 388, -1, -1, -1, -1, 41] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41] + +# Enemigos en esta habitación +enemies: + - animation: floppy.yaml + position: {x: 7, y: 2} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 7, y: 2} + position2: {x: 7, y: 12} + color: magenta + + - animation: floppy.yaml + position: {x: 20, y: 6} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 20, y: 2} + position2: {x: 20, y: 12} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 1 + position: {x: 4, y: 9} + counter: 1 + + - tileSetFile: items.gif + tile: 1 + position: {x: 25, y: 9} + counter: 2 + + - tileSetFile: items.gif + tile: 1 + position: {x: 2, y: 5} + counter: 3 + + - tileSetFile: items.gif + tile: 1 + position: {x: 1, y: 14} + counter: 4 diff --git a/data/room/51.yaml b/data/room/51.yaml new file mode 100644 index 0000000..c4b4ea0 --- /dev/null +++ b/data/room/51.yaml @@ -0,0 +1,78 @@ +# MINI ASCII +room: + name: "MINI ASCII" + bgColor: black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 53.yaml + down: 47.yaml + left: 52.yaml + right: null + + # Colores de los objetos + itemColor1: bright_white + itemColor2: black + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [186, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 294, -1, -1, 183, 183, 183, 183, 183, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, 183, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, 183, -1, -1, -1, -1, -1, 292] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, 292] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 298, 185, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, 182] + - [186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, 182] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 298, -1, -1, -1, -1, -1, 182] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 298, -1, -1, -1, -1, 182] + - [-1, -1, -1, -1, -1, -1, -1, 183, 183, 183, 183, 183, -1, -1, -1, -1, -1, -1, -1, -1, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 182] + - [-1, -1, -1, -1, -1, 182, 182, 182, 182, 182, 182, 182, 182, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [-1, -1, -1, 181, 181, 181, 181, 181, 290, 181, 181, 181, 181, 181, 181, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182] + - [184, 184, 184, 184, 184, 296, 296, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 180, 180, -1, -1, 180, 180, 180, 180, 180, 180, 180, 182] + +# Enemigos en esta habitación +enemies: + - animation: amstrad_cs.yaml + position: {x: 1, y: 6} + velocity: {x: 72.0, y: 0} + boundaries: + position1: {x: 1, y: 6} + position2: {x: 30, y: 6} + color: white + + - animation: amstrad_cs.yaml + position: {x: 19, y: 1} + velocity: {x: 0, y: 72.0} + boundaries: + position1: {x: 19, y: 1} + position2: {x: 19, y: 14} + color: yellow + + - animation: amstrad_cs.yaml + position: {x: 5, y: 6} + velocity: {x: 0, y: 72.0} + boundaries: + position1: {x: 5, y: 1} + position2: {x: 5, y: 12} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 39 + position: {x: 28, y: 2} + counter: 1 + + - tileSetFile: items.gif + tile: 39 + position: {x: 9, y: 9} + counter: 2 diff --git a/data/room/52.yaml b/data/room/52.yaml new file mode 100644 index 0000000..f321e43 --- /dev/null +++ b/data/room/52.yaml @@ -0,0 +1,57 @@ +# BREAKOUT.LUA +room: + name: "BREAKOUT.LUA" + bgColor: black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: null + right: 51.yaml + + # Colores de los objetos + itemColor1: bright_white + itemColor2: black + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [183, 181, 181, 181, 181, 181, 181, 181, 290, 290, 181, 181, 186, 186, 186, 186, 186, 186, 309, 186, 186, 186, 186, 186, 186, 186, 184, 184, 184, 184, 296, 296] + - [183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 288] + - [183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, 180, 180, 181, 181, 183, 183, 184, 184, 182, 182, 185, 185, 180, 180, 181, 181, 183, 183, 184, 184, 182, 182, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, 185, 185, 180, 180, 181, 181, 183, 183, 184, 184, 182, 182, 185, 185, 180, 180, 181, 181, 183, 183, 184, 184, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, 182, 182, 185, 185, 180, 180, 181, 181, 183, 183, 184, 184, 182, 182, 185, 185, 180, 180, 181, 181, 183, 183, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180] + - [183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180] + - [185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180] + - [185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [185, -1, -1, 183, -1, -1, -1, -1, 183, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [185, -1, 183, 183, 183, 184, -1, -1, 183, -1, -1, -1, 182, 182, -1, -1, -1, 184, 184, -1, -1, 182, 292, 292, 182, -1, -1, -1, -1, -1, -1, -1] + - [185, -1, 183, 186, 186, 186, 180, -1, 185, 183, -1, 182, 182, 292, -1, 184, 184, 184, 296, 184, -1, 182, 182, 182, 182, -1, -1, -1, -1, -1, -1, -1] + - [185, 181, 181, 290, 181, 181, 181, 181, 183, 183, 183, 183, 294, 183, 183, 183, 183, 185, 185, 298, 185, 185, 185, 185, 185, 185, -1, -1, -1, -1, -1, -1] + - [182, 182, 182, 182, 182, 292, 288, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184] + +# Enemigos en esta habitación +enemies: + - animation: breakout.yaml + position: {x: 1, y: 6} + velocity: {x: 132.0, y: 0} + boundaries: + position1: {x: 1, y: 6} + position2: {x: 22, y: 6} + color: white + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 39 + position: {x: 1, y: 13} + counter: 1 diff --git a/data/room/53.yaml b/data/room/53.yaml new file mode 100644 index 0000000..34cc844 --- /dev/null +++ b/data/room/53.yaml @@ -0,0 +1,91 @@ +# P.A.C.O. WORKSHOP +room: + name: "P.A.C.O. WORKSHOP" + bgColor: black + border: yellow + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: 51.yaml + left: null + right: 42.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35] + - [35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35] + - [35, 35, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 35] + - [35, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, 410, -1, -1, -1, -1, 410, 410, 410, 410, 410, 410, 410, 410, 410, -1, -1, -1, -1, 452, 452, 452, 452, 452, 452, 452, 452, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, 35] + - [35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, 410, 410, 410, 410, 410, 410, 362, 410, 410, 410, 410, 410, 410, 410, -1, -1, -1, -1, 452, 452, 452, 452, 452, 452, 452, 452, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35] + - [35, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [134, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, -1, -1, 35, 35, 35, 35, 35, 35] + +# Enemigos en esta habitación +enemies: + - animation: paco.yaml + position: {x: 6, y: 6} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 6, y: 6} + position2: {x: 13, y: 6} + color: yellow + + - animation: paco.yaml + position: {x: 16, y: 2} + velocity: {x: 0, y: 48.0} + boundaries: + position1: {x: 16, y: 2} + position2: {x: 16, y: 13} + color: bright_red + + - animation: wave.yaml + position: {x: 1, y: 10} + velocity: {x: 24.0, y: 0} + boundaries: + position1: {x: 1, y: 10} + position2: {x: 14, y: 10} + color: bright_yellow + + - animation: lamp.yaml + position: {x: 22, y: 2} + velocity: {x: 0, y: 0} + boundaries: + position1: {x: 22, y: 2} + position2: {x: 22, y: 2} + color: bright_yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 40 + position: {x: 1, y: 6} + counter: 1 + + - tileSetFile: items.gif + tile: 40 + position: {x: 1, y: 9} + counter: 2 + + - tileSetFile: items.gif + tile: 40 + position: {x: 30, y: 5} + counter: 3 diff --git a/data/room/54.yaml b/data/room/54.yaml new file mode 100644 index 0000000..c40a2ac --- /dev/null +++ b/data/room/54.yaml @@ -0,0 +1,83 @@ +# THE BASEMENT +room: + name: "THE BASEMENT" + bgColor: black + border: blue + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 18.yaml + down: null + left: null + right: 55.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: blue + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [15, 15, 15, 15, 15, 15, 15, 15, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, -1, -1, -1, -1, 518, 348, 348, 348, 15, 15, 15, 15, 15, 15] + - [15, 15, 15, 15, 15, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, 301, 15, 15, 15] + - [15, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15] + - [15, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 31, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, -1, 348, 15, 15, -1, -1, -1, -1, -1, -1] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, 348, 15, 15, 301, -1, -1, -1, -1, -1, -1, -1] + - [31, -1, -1, -1, -1, -1, -1, 505, 31, 31, 31, 31, 31, 31, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [31, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [31, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [31, 31, 31, 31, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, 408, 408, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [31, -1, -1, -1, -1, -1, -1, 408, 408, 408, 408, 408, 408, 408, 408, -1, -1, -1, -1, -1, -1, -1, -1, 518, 15, 15, 15, 15, 15, 15, 15, 15] + - [31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 31, 15, 133, 15, 133, 15, 15, 15, 15] + - [31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 31, 31, 15, 133, 15, 133, 15, 15, 15, 15] + - [31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348] + +# Enemigos en esta habitación +enemies: + - animation: spider.yaml + position: {x: 2, y: 14} + velocity: {x: 30.0, y: 0} + boundaries: + position1: {x: 2, y: 14} + position2: {x: 18, y: 14} + color: magenta + + - animation: spider.yaml + position: {x: 10, y: 1} + velocity: {x: 0, y: 60.0} + boundaries: + position1: {x: 10, y: 1} + position2: {x: 10, y: 6} + color: yellow + + - animation: spider.yaml + position: {x: 7, y: 11} + velocity: {x: 18.0, y: 0} + boundaries: + position1: {x: 7, y: 11} + position2: {x: 14, y: 11} + color: cyan + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 35 + position: {x: 15, y: 9} + counter: 1 + + - tileSetFile: items.gif + tile: 35 + position: {x: 1, y: 14} + counter: 2 + + - tileSetFile: items.gif + tile: 35 + position: {x: 1, y: 9} + counter: 3 diff --git a/data/room/55.yaml b/data/room/55.yaml new file mode 100644 index 0000000..2a74b47 --- /dev/null +++ b/data/room/55.yaml @@ -0,0 +1,70 @@ +# THAT'S A GUITAR +room: + name: "THAT'S A GUITAR" + bgColor: black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 54.yaml + right: 56.yaml + + # Colores de los objetos + itemColor1: magenta + itemColor2: red + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [15, 15, 15, -1, -1, -1, -1, 301, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15] + - [15, 301, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 15, 15, 15, 15, 15, 15, 15] + - [15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15, 15, 15, 15, 15, 15] + - [301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15, 15, 15, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, -1, -1, 15] + - [-1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, 15, 15, 15, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15] + - [15, 15, 15, 15, 15, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [15, 15, 15, 15, 15, 15, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348] + +# Enemigos en esta habitación +enemies: + - animation: dimallas.yaml + position: {x: 15, y: 13} + velocity: {x: 36.0, y: 0} + boundaries: + position1: {x: 9, y: 13} + position2: {x: 25, y: 13} + color: cyan + + - animation: guitar.yaml + position: {x: 16, y: 4} + velocity: {x: 0, y: 18.0} + boundaries: + position1: {x: 16, y: 4} + position2: {x: 16, y: 10} + color: red + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 25 + position: {x: 9, y: 4} + counter: 1 + + - tileSetFile: items.gif + tile: 25 + position: {x: 20, y: 11} + counter: 2 diff --git a/data/room/56.yaml b/data/room/56.yaml new file mode 100644 index 0000000..79eb1c4 --- /dev/null +++ b/data/room/56.yaml @@ -0,0 +1,80 @@ +# HEAVY DEMONS ON LEGGINS +room: + name: "HEAVY DEMONS ON LEGGINS" + bgColor: black + border: black + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 55.yaml + right: 57.yaml + + # Colores de los objetos + itemColor1: bright_red + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, 302, 302, 302, 302, -1, 302, 302, 302, 302, 302, -1, 302, 302, 302, 302, 302, 302, 302, 302, 302, -1, -1, 302, 302, 302, 302, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [17, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 468, 468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, -1, 410, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 410, 410, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, 17, 17, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 17, 17, -1, 567, 17] + - [17, 568, -1, 566, 566, 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 566, 566, 566, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, -1, 519, 410, 410, -1, -1, -1, -1, 468, 468, -1, -1, -1, -1, 410, 410, 543, -1, -1, -1, -1, -1, -1, 567, 17] + - [17, 568, -1, -1, -1, -1, -1, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 543, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, 519, -1, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, -1, 543, -1, -1, -1, 514, 17] + - [17, 17, 17, 17, 17, 17, 17, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 17, 17, 17, 17, 17, 17, 17] + +# Enemigos en esta habitación +enemies: + - animation: demon.yaml + position: {x: 12, y: 3} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 12, y: 3} + position2: {x: 12, y: 12} + color: red + + - animation: demon.yaml + position: {x: 18, y: 5} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 18, y: 3} + position2: {x: 18, y: 12} + color: red + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 28 + position: {x: 15, y: 10} + counter: 1 + + - tileSetFile: items.gif + tile: 28 + position: {x: 16, y: 10} + counter: 2 + + - tileSetFile: items.gif + tile: 28 + position: {x: 15, y: 5} + counter: 3 + + - tileSetFile: items.gif + tile: 28 + position: {x: 16, y: 5} + counter: 4 diff --git a/data/room/57.yaml b/data/room/57.yaml new file mode 100644 index 0000000..afac50d --- /dev/null +++ b/data/room/57.yaml @@ -0,0 +1,98 @@ +# JAILGAMES GO TO HELL +room: + name: "JAILGAMES GO TO HELL" + bgColor: red + border: bright_red + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 56.yaml + right: 58.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: left + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18] + - [18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18] + - [18, -1, -1, -1, -1, -1, 18, 18, 18, -1, -1, -1, -1, 18, 18, 18, -1, -1, -1, -1, 18, 18, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 524, 18] + - [18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 524, -1, 18] + - [18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, 18] + - [18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18] + - [18, -1, -1, -1, -1, 524, 307, 307, 307, -1, -1, -1, -1, 307, 307, 307, -1, -1, -1, -1, 307, 307, 307, -1, -1, -1, -1, 307, -1, -1, -1, 18] + - [18, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18] + - [18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1] + - [18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18] + - [492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492] + +# Enemigos en esta habitación +enemies: + - animation: dimallas.yaml + position: {x: 13, y: 12} + velocity: {x: 54.0, y: 0} + boundaries: + position1: {x: 4, y: 12} + position2: {x: 21, y: 12} + color: green + + - animation: heavy.yaml + position: {x: 17, y: 5} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 17, y: 2} + position2: {x: 17, y: 10} + color: white + + - animation: heavy.yaml + position: {x: 10, y: 8} + velocity: {x: 0, y: 36.0} + boundaries: + position1: {x: 10, y: 2} + position2: {x: 10, y: 10} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 32 + position: {x: 7, y: 8} + counter: 1 + + - tileSetFile: items.gif + tile: 32 + position: {x: 14, y: 8} + counter: 2 + + - tileSetFile: items.gif + tile: 32 + position: {x: 21, y: 8} + counter: 3 + + - tileSetFile: items.gif + tile: 49 + position: {x: 7, y: 11} + counter: 4 + + - tileSetFile: items.gif + tile: 49 + position: {x: 14, y: 11} + counter: 5 + + - tileSetFile: items.gif + tile: 49 + position: {x: 21, y: 11} + counter: 6 diff --git a/data/room/58.yaml b/data/room/58.yaml new file mode 100644 index 0000000..910a8f7 --- /dev/null +++ b/data/room/58.yaml @@ -0,0 +1,88 @@ +# CHIRPING +room: + name: "CHIRPING" + bgColor: black + border: magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: null + down: null + left: 57.yaml + right: 59.yaml + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, 410, 410, 410, -1, -1, 410, 410, 410, -1, -1, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, -1, -1, 520, 410, 410, -1, -1, 410, 410, 410, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [36, 410, 410, 410, -1, -1, 410, 410, 410, -1, -1, 410, 410, 410, 544, -1, -1, 410, 410, 410, 410, 410, 410, 410, 410, 410, -1, -1, 410, 410, 410, 36] + - [36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [36, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36] + +# Enemigos en esta habitación +enemies: + - animation: bird.yaml + position: {x: 4, y: 2} + velocity: {x: 0, y: 30.0} + boundaries: + position1: {x: 4, y: 2} + position2: {x: 4, y: 12} + color: yellow + + - animation: bird.yaml + position: {x: 9, y: 11} + velocity: {x: 0, y: -30.0} + boundaries: + position1: {x: 9, y: 0} + position2: {x: 9, y: 10} + color: green + + - animation: bird.yaml + position: {x: 26, y: 5} + velocity: {x: 0, y: -30.0} + boundaries: + position1: {x: 26, y: 2} + position2: {x: 26, y: 12} + color: white + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 10 + position: {x: 2, y: 8} + counter: 1 + + - tileSetFile: items.gif + tile: 10 + position: {x: 2, y: 3} + counter: 2 + + - tileSetFile: items.gif + tile: 10 + position: {x: 29, y: 8} + counter: 3 + + - tileSetFile: items.gif + tile: 10 + position: {x: 29, y: 3} + counter: 4 diff --git a/data/room/59.yaml b/data/room/59.yaml new file mode 100644 index 0000000..7da4303 --- /dev/null +++ b/data/room/59.yaml @@ -0,0 +1,93 @@ +# STATIC +room: + name: "STATIC" + bgColor: black + border: bright_magenta + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 60.yaml + down: null + left: 58.yaml + right: null + + # Colores de los objetos + itemColor1: yellow + itemColor2: magenta + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, 63] + - [63, 63, 63, 529, -1, -1, -1, 63, 63, 63, 63, -1, -1, -1, -1, 63, 63, 63, 63, -1, -1, -1, -1, 63, 63, 63, 63, -1, -1, 63, 63, 63] + - [63, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, 416, 416, 416, 416, -1, -1, -1, -1, 416, 416, 416, -1, -1, -1, -1, 416, 416, 416, 416, 416, 416, 416, -1, -1, -1, 505, 416, 416, 416, 416, 63] + - [63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, 63] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, 63] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, 63] + - [63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63] + +# Enemigos en esta habitación +enemies: + - animation: wave.yaml + position: {x: 1, y: 10} + velocity: {x: 48.0, y: 0} + boundaries: + position1: {x: 1, y: 10} + position2: {x: 30, y: 10} + color: magenta + + - animation: wave.yaml + position: {x: 30, y: 4} + velocity: {x: -48.0, y: 0} + boundaries: + position1: {x: 1, y: 4} + position2: {x: 30, y: 4} + color: cyan + + - animation: wave.yaml + position: {x: 15, y: 14} + velocity: {x: -24.0, y: 0} + boundaries: + position1: {x: 3, y: 14} + position2: {x: 30, y: 14} + color: green + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 24 + position: {x: 29, y: 13} + counter: 1 + + - tileSetFile: items.gif + tile: 24 + position: {x: 17, y: 6} + counter: 2 + + - tileSetFile: items.gif + tile: 24 + position: {x: 9, y: 6} + counter: 3 + + - tileSetFile: items.gif + tile: 24 + position: {x: 2, y: 9} + counter: 4 + + - tileSetFile: items.gif + tile: 24 + position: {x: 29, y: 3} + counter: 5 diff --git a/data/room/60.yaml b/data/room/60.yaml new file mode 100644 index 0000000..f0b2c85 --- /dev/null +++ b/data/room/60.yaml @@ -0,0 +1,90 @@ +# MAGNETIC FIELDS +room: + name: "MAGNETIC FIELDS" + bgColor: black + border: bright_red + tileSetFile: standard.gif + + # Conexiones de la habitación (null = sin conexión) + connections: + up: 05.yaml + down: 59.yaml + left: null + right: null + + # Colores de los objetos + itemColor1: red + itemColor2: green + + # Dirección de la cinta transportadora: left, none, right + conveyorBelt: none + +# Tilemap: 16 filas × 32 columnas (256×192 píxeles @ 8px/tile) +# Índices de tiles (-1 = vacío) +tilemap: + - [168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 410, -1, -1, 410, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 410, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, -1, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 410, 410, 410, -1, -1, -1, -1, 410, 410, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, 307, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, 307, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 410, 410, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, -1, 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 168] + - [168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, -1, -1, 168, 168, 168, 168] + +# Enemigos en esta habitación +enemies: + - animation: shock.yaml + position: {x: 7, y: 2} + velocity: {x: 0, y: 90.0} + boundaries: + position1: {x: 7, y: 1} + position2: {x: 7, y: 14} + color: yellow + + - animation: shock.yaml + position: {x: 24, y: 6} + velocity: {x: 0, y: -90.0} + boundaries: + position1: {x: 24, y: 1} + position2: {x: 24, y: 14} + color: yellow + +# Objetos en esta habitación +items: + - tileSetFile: items.gif + tile: 1 + position: {x: 5, y: 4} + counter: 1 + + - tileSetFile: items.gif + tile: 1 + position: {x: 4, y: 9} + counter: 2 + + - tileSetFile: items.gif + tile: 1 + position: {x: 9, y: 9} + counter: 3 + + - tileSetFile: items.gif + tile: 1 + position: {x: 22, y: 9} + counter: 2 + + - tileSetFile: items.gif + tile: 1 + position: {x: 27, y: 9} + counter: 3 + + - tileSetFile: items.gif + tile: 1 + position: {x: 26, y: 4} + counter: 1 diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..d22afa2 --- /dev/null +++ b/main.cpp @@ -0,0 +1,31 @@ +#include +#include +#include +#include "yamal.hpp" + +int main(int argc, char* argv[]) { + /*if (argc < 2) { + std::cerr << "Usage: " << argv[0] << " \n"; + return 1; + }*/ + + std::ifstream file("data/room/01.yaml"); //argv[1]); + if (!file) { + std::cerr << "Error: Could not open file " << argv[1] << "\n"; + return 1; + } + + std::ostringstream buffer; + buffer << file.rdbuf(); + std::string yamlText = buffer.str(); + + yamal_ns::yamal root; + root.deserialize(yamlText); + + //for (auto &att : root.attributes()) + // std::cout << att.first << ": " << att.second.asString() << std::endl; + + std::cout << root.serialize() << std::endl; + + return 0; +} \ No newline at end of file diff --git a/yamal.cpp b/yamal.cpp new file mode 100644 index 0000000..dd4659b --- /dev/null +++ b/yamal.cpp @@ -0,0 +1,358 @@ +#include "yamal.hpp" + +using namespace yamal_ns; + +bool yamal::isScalar() const { return mode == SCALAR; } +bool yamal::isVector() const { return mode == VECTOR; } +bool yamal::isMap() const { return mode == MAP; } + +void yamal::clearToScalar() { mode = SCALAR; vec_data.clear(); map_data.clear(); } +void yamal::clearToVector() { mode = VECTOR; value.clear(); map_data.clear(); } +void yamal::clearToMap() { mode = MAP; value.clear(); vec_data.clear(); } + +yamal& yamal::operator=(const std::string& v) { clearToScalar(); value = v; return *this; } +yamal& yamal::operator=(int v) { clearToScalar(); value = std::to_string(v); return *this; } +yamal& yamal::operator=(float v) { clearToScalar(); value = std::to_string(v); return *this; } +yamal& yamal::operator=(bool b) { clearToScalar(); value = b ? "true" : "false"; return *this; } + +std::string yamal::asString() const { return value; } +int yamal::asInt() const { return std::stoi(value); } +float yamal::asFloat() const { return std::stof(value); } + +bool yamal::asBool() const { + std::string s = value; + std::transform(s.begin(), s.end(), s.begin(), ::tolower); + if (s == "true") return true; + if (s == "false") return false; + try { + size_t idx; + float f = std::stof(s, &idx); + return (idx != 0 && f != 0.0f); + } catch (...) { + return false; + } +} + +const std::string& yamal::getComment() const { return pre_comment; } +yamal& yamal::setComment(const std::string& c) { pre_comment = c; return *this; } +yamal& yamal::appendComment(const std::string& c) { + if (!pre_comment.empty()) pre_comment += "\n"; + pre_comment += c; + return *this; +} + +yamal& yamal::setQuoted(bool q) { quoted = q; return *this; } +yamal& yamal::setInline(bool in) { inline_map = in; return *this; } + +void yamal::push_back(const yamal& item) { clearToVector(); vec_data.push_back(item); } +yamal& yamal::operator[](size_t i) { clearToVector(); return vec_data[i]; } +yamal& yamal::operator[](const std::string& key) { clearToMap(); return map_data[key]; } + +std::vector> yamal::attributes() const { + return map_data.items(); +} + +bool yamal::isBoolLiteral() const { + std::string s = value; + std::transform(s.begin(), s.end(), s.begin(), ::tolower); + return s == "true" || s == "false"; +} + +bool yamal::isNumericLiteral() const { + if (value.empty()) return false; + char* end = nullptr; + std::strtod(value.c_str(), &end); + return end != value.c_str() && *end == '\0'; +} + +bool yamal::isSafeUnquotedString() const { + if (value.empty()) return false; + if (std::isdigit(value[0])) return false; + for (char c : value) { + if (!std::isalnum(c) && c != '_' && c != '-') return false; + } + return true; +} + +// --- Parsing helpers --- +static std::vector splitLines(const std::string& text) { + std::vector lines; + std::istringstream stream(text); + std::string line; + while (std::getline(stream, line)) lines.push_back(line); + return lines; +} + +static std::string trim(const std::string& s) { + size_t start = s.find_first_not_of(" \t"); + size_t end = s.find_last_not_of(" \t"); + return (start == std::string::npos) ? "" : s.substr(start, end - start + 1); +} + +static std::string removeWhitespace(const std::string& s) { + size_t start = s.find_first_not_of(" \t\n\r"); + size_t end = s.find_last_not_of(" \t\n\r"); + return (start == std::string::npos) ? "" : s.substr(start, end - start + 1); +} + +static int countIndent(const std::string& line) { + int count = 0; + for (char c : line) if (c == ' ') ++count; else break; + return count; +} + +static std::string joinCommentLines(const std::vector& lines) { + std::ostringstream oss; + for (const auto& line : lines) oss << line << "\n"; + return trim(oss.str()); +} + +static yamal parseInlineSequence(const std::string& text) { + yamal node; + node.clearToVector(); + node.setInline(true); + std::string inner = text.substr(1, text.size() - 2); + std::istringstream ss(inner); + std::string item; + while (std::getline(ss, item, ',')) { + yamal child; + child.deserialize(trim(item)); + node.push_back(child); + } + return node; +} + +static yamal parseInlineMap(const std::string& text) { + yamal node; + node.clearToMap(); + node.setInline(true); + std::string inner = text.substr(1, text.size() - 2); + std::istringstream ss(inner); + std::string pair; + while (std::getline(ss, pair, ',')) { + auto pos = pair.find(':'); + if (pos != std::string::npos) { + std::string key = trim(pair.substr(0, pos)); + std::string val = trim(pair.substr(pos + 1)); + yamal& child = node[key]; + child.deserialize(val); + } + } + return node; +} + +static yamal parseBlock(const std::vector& lines, size_t& i, int indent) { + yamal node; + bool is_sequence = false; + std::vector pending_comment_lines; + + while (i < lines.size()) { + const std::string& line = lines[i]; + + std::string trimmed = trim(line); + if (trimmed.empty()) { + pending_comment_lines.push_back(""); + ++i; + continue; + } + + if (trimmed[0] == '#') { + pending_comment_lines.push_back(trimmed.substr(1)); + ++i; + continue; + } + + int currentIndent = countIndent(line); + if (currentIndent < indent) break; + + std::string content = trimmed; + std::string inline_comment; + size_t hash_pos = content.find('#'); + if (hash_pos != std::string::npos && hash_pos > 0) { + inline_comment = trim(content.substr(hash_pos + 1)); + content = trim(content.substr(0, hash_pos)); + } + + if (content[0] == '-') { + if (!is_sequence) { + node.clearToVector(); + is_sequence = true; + } + + std::string item = trim(content.substr(1)); + yamal child; + + if (!pending_comment_lines.empty()) { + child.pre_comment = joinCommentLines(pending_comment_lines); + pending_comment_lines.clear(); + } + + if (!inline_comment.empty()) child.inline_comment = inline_comment; + + ++i; + if (item.empty()) child = parseBlock(lines, i, indent + 2); + else if (item[0] == '[') child = parseInlineSequence(item); + else if (item[0] == '{') child = parseInlineMap(item); + else child.deserialize(item); + + node.push_back(child); + } + else if (auto pos = content.find(':'); pos != std::string::npos) { + node.clearToMap(); + std::string key = trim(content.substr(0, pos)); + std::string val = trim(content.substr(pos + 1)); + yamal& child = node[key]; + + if (!pending_comment_lines.empty()) { + child.pre_comment = joinCommentLines(pending_comment_lines); + pending_comment_lines.clear(); + } + + if (!inline_comment.empty()) child.inline_comment = inline_comment; + + ++i; + if (val.empty()) child = parseBlock(lines, i, indent + 2); + else if (val[0] == '[') child = parseInlineSequence(val); + else if (val[0] == '{') child = parseInlineMap(val); + else { + child.clearToScalar(); + if (val.size() >= 2 && val.front() == '"' && val.back() == '"') { + child.value = val.substr(1, val.size() - 2); + child.quoted = true; + } else { + child.value = val; + } + } + } + else { + ++i; + } + } + + return node; +} + +void yamal::deserialize(const std::string& yamlText) { + auto lines = splitLines(yamlText); + clearToMap(); + size_t index = 0; + yamal top = parseBlock(lines, index, 0); + for (const auto& [key, val] : top.attributes()) { + (*this)[key] = val; + } +} + +std::string yamal::serialize(int indent) const { + std::ostringstream out; + std::string pad(indent, ' '); + + std::string trimmed;// = removeWhitespace(pre_comment); + /*if (!trimmed.empty()) { + std::istringstream ss(pre_comment); + std::string line; + while (std::getline(ss, line)) { + out << pad << "# " << line << "\n"; + } + }*/ + + if (isScalar()) { + if (isBoolLiteral()) { + out << pad << value; + } else if (quoted) { + out << pad << "\"" << value << "\""; + } else if (isNumericLiteral() || isSafeUnquotedString()) { + out << pad << value; + } else { + out << pad << "\"" << value << "\""; + } + + trimmed = removeWhitespace(inline_comment); + if (!trimmed.empty()) { + out << " # " << inline_comment; + } + + return out.str(); + } + + if (isVector()) { + if (inline_map) { + out << pad << "["; + for (size_t i = 0; i < vec_data.size(); ++i) { + out << vec_data[i].serialize(0); + if (i + 1 < vec_data.size()) out << ", "; + } + out << "]"; + trimmed = removeWhitespace(inline_comment); + if (!trimmed.empty()) out << " # " << inline_comment; + out << "\n"; + return out.str(); + } + + for (const auto& item : vec_data) { + trimmed = removeWhitespace(item.pre_comment); + if (!trimmed.empty()) { + std::istringstream ss(item.pre_comment); + std::string line; + while (std::getline(ss, line)) { + out << pad << "# " << line << "\n"; + } + } + + out << pad << "-"; + if (item.isScalar()) { + out << " " << item.serialize(0); + trimmed = removeWhitespace(item.inline_comment); + if (!trimmed.empty()) { + out << " # " << item.inline_comment; + } + out << "\n"; + } else { + out << "\n" << item.serialize(indent + 2); + } + } + return out.str(); + } + + if (isMap()) { + if (inline_map) { + out << pad << "{"; + auto items = map_data.items(); + for (size_t i = 0; i < items.size(); ++i) { + const auto& [key, val] = items[i]; + out << key << ": " << val.serialize(0); + if (i + 1 < items.size()) out << ", "; + } + out << "}"; + trimmed = removeWhitespace(inline_comment); + if (!trimmed.empty()) out << " # " << inline_comment; + out << "\n"; + return out.str(); + } + + for (const auto& [key, val] : map_data.items()) { + trimmed = removeWhitespace(val.pre_comment); + if (!trimmed.empty()) { + std::istringstream ss(val.pre_comment); + std::string line; + while (std::getline(ss, line)) { + out << pad << "# " << line << "\n"; + } + } + + out << pad << key << ":"; + if (val.isScalar()) { + out << " " << val.serialize(0); + trimmed = removeWhitespace(val.inline_comment); + if (!trimmed.empty()) { + out << " # " << val.inline_comment; + } + out << "\n"; + } else { + out << "\n" << val.serialize(indent + 2); + } + } + return out.str(); + } + + return ""; +} diff --git a/yamal.hpp b/yamal.hpp new file mode 100644 index 0000000..3d4f782 --- /dev/null +++ b/yamal.hpp @@ -0,0 +1,117 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +namespace yamal_ns { + +template +class ordered_map { + std::unordered_map map; + std::vector keys; + +public: + Value& operator[](const std::string& key) { + if (!map.contains(key)) keys.push_back(key); + return map[key]; + } + + bool contains(const std::string& key) const { + return map.find(key) != map.end(); + } + + void erase(const std::string& key) { + if (map.erase(key)) { + keys.erase(std::remove(keys.begin(), keys.end(), key), keys.end()); + } + } + + void clear() { + map.clear(); + keys.clear(); + } + + size_t size() const { return keys.size(); } + + std::vector> items() const { + std::vector> result; + for (const auto& k : keys) result.emplace_back(k, map.at(k)); + return result; + } + + const Value& at(const std::string& key) const { return map.at(key); } + Value& at(const std::string& key) { return map.at(key); } +}; + +class yamal { +public: + enum Mode { SCALAR, VECTOR, MAP }; + Mode mode = SCALAR; + + std::string value; + std::vector vec_data; + ordered_map map_data; + + std::string pre_comment; + std::string inline_comment; + bool quoted = false; + bool inline_map = false; + + // Mode checks + bool isScalar() const; + bool isVector() const; + bool isMap() const; + + // Mode setters + void clearToScalar(); + void clearToVector(); + void clearToMap(); + + // Accessors + operator std::string() const; + operator int() const; + operator float() const; + operator bool() const; + + yamal& operator=(const std::string& v); + yamal& operator=(int v); + yamal& operator=(float v); + yamal& operator=(bool b); + + std::string asString() const; + int asInt() const; + float asFloat() const; + bool asBool() const; + + // Comment accessors + const std::string& getComment() const; + yamal& setComment(const std::string& c); + yamal& appendComment(const std::string& c); + + // Formatting + yamal& setQuoted(bool q = true); + yamal& setInline(bool in = true); + + // Vector and map access + void push_back(const yamal& item); + yamal& operator[](size_t i); + yamal& operator[](const std::string& key); + + std::vector> attributes() const; + + // Serialization + std::string serialize(int indent = 0) const; + + // Deserialization + void deserialize(const std::string& yamlText); + +private: + bool isBoolLiteral() const; + bool isNumericLiteral() const; + bool isSafeUnquotedString() const; +}; + +} // namespace yamal_ns