135 lines
3.7 KiB
YAML
135 lines
3.7 KiB
YAML
# Mapa de la piràmide: graella 21×15 de tiles 16×16 sobre tomb.gif.
|
||
# Overscan horitzontal: 8 px per banda (les parets laterals ocupen 2 tiles
|
||
# en el tilemap però només 1.5 visibles al canvas, així que la textura es
|
||
# dibuixa amb un origen de x=-8). Vertical no cal overscan: 15·16 = 240.
|
||
#
|
||
# Símbols del grid:
|
||
# W = paret (tile 99 del tileset, o (3,3) en 0-indexed)
|
||
# F = sòl (llista = un tile aleatori entre aquests per cada casella)
|
||
# . = cap tile (els sarcòfags seran actors, ací deixem transparent)
|
||
#
|
||
# Índexs lineals: els tiles van d'esquerra a dreta, de dalt a baix. Amb un
|
||
# tileset de 512×256 i tiles de 16×16 hi ha 32 tiles per fila.
|
||
|
||
tileset: data/tilesets/tomb.gif
|
||
tile_size: 16
|
||
origin: [-8, 0]
|
||
|
||
# Geometria lògica de la piràmide (separada del render visual del tileset).
|
||
# La graella de sarcòfags, el pitch entre ells i les amplades dels murs
|
||
# decideixen els límits del jugador i les seues caixes de col·lisió. Abans
|
||
# vivien com a `static constexpr` a map.hpp; ara cada piràmide pot definir
|
||
# la seua pròpia forma sense recompilar.
|
||
geometry:
|
||
grid_cols: 4
|
||
grid_rows: 5
|
||
sarc_w: 48
|
||
sarc_h: 16
|
||
pitch_x: 64
|
||
pitch_y: 32
|
||
hud_h: 24
|
||
back_wall_h: 24
|
||
side_wall_w: 24
|
||
|
||
legend:
|
||
W: 292
|
||
X: 169
|
||
Y: 1
|
||
Z: 202
|
||
T: 200
|
||
R: 262
|
||
G: 263
|
||
H: 230
|
||
I: 231
|
||
J: 233
|
||
A: 2
|
||
B: 34
|
||
C: 33
|
||
D: 32
|
||
|
||
data: |
|
||
YYYYYYYYYYYYYYYYYYYYY
|
||
YHJJJJJJJJJJJJJJJJJIY
|
||
YZWWWWWWWWWWWWWWWWWTY
|
||
YZDDADDBBDDADDDDBDDTY
|
||
YZDAAADAAADAAABAAADTY
|
||
YZDDDCCDDDDDADDDBDDTY
|
||
YZDAAADAAAAAAADAAADTY
|
||
YZDDCCDDDDDADDBDDDDTY
|
||
YZDAAADAAADAAADAAADTY
|
||
YZDDDDCCDDDDADDDDDDTY
|
||
YZDAAADAAADAAADAAADTY
|
||
YZDDDABDDDDADCDDBDDTY
|
||
YZDAAADAAADAAADAAADTY
|
||
YZDDBBDDADDDBCDDDDDTY
|
||
YRXXXXXXXXXXXXXXXXXGY
|
||
|
||
# Spawns d'entitats per a aquest nivell. Es llegeixen des de
|
||
# EntityManager::loadFromLevel al GameScene. Convencions:
|
||
# - sarcophagus → `sarc_position: [sarc_col, sarc_row]` en la graella de
|
||
# sarcòfags (4×5). EntityManager calcula el rect píxel via
|
||
# Map::getSarcRect i l'ancoratge de tile per al perímetre.
|
||
# - la resta (torch, door, mummy, rolling_rock, wall_trap, floor_trap)
|
||
# → `position: [tile_col, tile_row]` en coordenades del tilemap
|
||
# (origen `[-8, 0]` per defecte). Pixel = tile*16 + tilemap_origin.
|
||
#
|
||
# Dos sarcòfags en cantonades oposades → perímetres aïllats (cap tile en
|
||
# comú). La porta va al centre inferior, on el tilemap té els tiles
|
||
# d'obertura (R/G). La momia al corredor central. L'antorxa al costat
|
||
# superior esquerre per verificar render d'una entitat decorativa.
|
||
entities:
|
||
- type: torch
|
||
position: [4, 2]
|
||
- type: torch
|
||
position: [8, 2]
|
||
- type: torch
|
||
position: [12, 2]
|
||
- type: torch
|
||
position: [16, 2]
|
||
- type: sarcophagus
|
||
sarc_position: [0, 0]
|
||
- type: sarcophagus
|
||
sarc_position: [1, 0]
|
||
- type: sarcophagus
|
||
sarc_position: [2, 0]
|
||
- type: sarcophagus
|
||
sarc_position: [3, 0]
|
||
- type: sarcophagus
|
||
sarc_position: [0, 1]
|
||
- type: sarcophagus
|
||
sarc_position: [1, 1]
|
||
- type: sarcophagus
|
||
sarc_position: [2, 1]
|
||
- type: sarcophagus
|
||
sarc_position: [3, 1]
|
||
- type: sarcophagus
|
||
sarc_position: [0, 2]
|
||
- type: sarcophagus
|
||
sarc_position: [1, 2]
|
||
- type: sarcophagus
|
||
sarc_position: [2, 2]
|
||
- type: sarcophagus
|
||
sarc_position: [3, 2]
|
||
- type: sarcophagus
|
||
sarc_position: [0, 3]
|
||
- type: sarcophagus
|
||
sarc_position: [1, 3]
|
||
- type: sarcophagus
|
||
sarc_position: [2, 3]
|
||
- type: sarcophagus
|
||
sarc_position: [3, 3]
|
||
- type: sarcophagus
|
||
sarc_position: [0, 4]
|
||
- type: sarcophagus
|
||
sarc_position: [1, 4]
|
||
- type: sarcophagus
|
||
sarc_position: [2, 4]
|
||
- type: sarcophagus
|
||
sarc_position: [3, 4]
|
||
- type: door
|
||
position: [9, 1]
|
||
- type: mummy
|
||
position: [10, 7]
|
||
- type: mummy
|
||
position: [7, 9]
|