158 lines
5.8 KiB
YAML
158 lines
5.8 KiB
YAML
room: 1
|
||
|
||
# Il·luminació de la sala. Bloc opcional; si manca, la sala queda
|
||
# totalment il·luminada (1.0) i tots els tipus d'entitat emeten amb els
|
||
# valors declarats al seu YAML de tipus (comportament històric).
|
||
#
|
||
# level → atenuació base de la sala (0..1). 1.0 = res
|
||
# d'efecte, 0.0 = negre fora del radi dels emissors.
|
||
# El gradient dels emissors viu a
|
||
# data/config/lighting.yaml.
|
||
# emitters.<tipus> → override per tipus d'entitat. Tres formes:
|
||
# false → apaga el tipus
|
||
# true → defaults del tipus
|
||
# { radius: N, flicker: B } → camps presents
|
||
# sobreescriuen el
|
||
# default; els
|
||
# absents cauen al
|
||
# default del tipus.
|
||
# Plural per llegir-se natural ("totes les momies de la sala"). Per a
|
||
# casos particulars, un spawn pot dur el seu propi `light:` (mateixes
|
||
# formes) que té prioritat sobre l'override de sala. La forma antiga
|
||
# (`light_level:` plà a l'arrel) també segueix sent vàlida per
|
||
# retrocompatibilitat.
|
||
lighting:
|
||
# Sala fosca de proves. La piràmide declara additive per defecte; aquí
|
||
# tornem a subtractive perquè volem la dinàmica "negre amb forats de
|
||
# llum". `level: 0.15` és l'atenuació base de la sala fora dels emissors.
|
||
mode: subtractive
|
||
level: 0.15
|
||
emitters:
|
||
players: true
|
||
|
||
# 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
|
||
# Columna central del tile transitable de la porta. La porta es renderitza
|
||
# com a sprite 48×32 (3 tiles d'amplada) centrat sobre aquesta columna; els
|
||
# 16 px centrals (just aquesta columna) són el "forat" del mur trasser per
|
||
# on el jugador surt de la sala. Les 2 columnes flanquejants segueixen sent
|
||
# mur visible. El spawn dels jugadors també s'alinea amb aquesta columna.
|
||
door_col: 10
|
||
|
||
data:
|
||
- [11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13]
|
||
- [11,30,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,31,13]
|
||
- [11,13,27,28,15,22,28,28,28,28,28,28,28,28,28,28,15,28, 6,11,13]
|
||
- [11,13, 8, 8,16, 8,17, 8,10, 8,17, 8, 8, 8,17, 8, 8, 8, 8,11,13]
|
||
- [11,13, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8,11,13]
|
||
- [11,13,17, 8, 9, 2, 8,10, 8, 8, 8, 8,10, 8, 8,26, 8, 8,17,11,13]
|
||
- [11,13, 8, 2, 2, 2, 2, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8,11,13]
|
||
- [11,13,17, 8, 8,26, 8, 8, 9, 8, 8, 8, 8, 8,10, 8,16, 8,17,11,13]
|
||
- [11,13, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8,11,13]
|
||
- [11,13,17, 8,10, 8, 8, 8, 2, 8, 8, 8, 9, 8, 8, 8,10, 8,17,11,13]
|
||
- [11,13, 8, 2, 2, 2, 8, 2, 2, 2,16, 2, 2, 2, 8, 2, 2, 2, 8,11,13]
|
||
- [11,13,17, 8,10, 8, 8,10, 2, 8, 8,26, 8, 8, 8, 8,10, 8,17,11,13]
|
||
- [11,13, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8, 2, 2, 2, 8,11,13]
|
||
- [11,13, 8,10,16,16,17, 8, 8, 8,17, 8, 9, 8,17, 8, 2, 8, 8,11,13]
|
||
- [11,38, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,39,13]
|
||
|
||
# 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 (262/263). La momia al corredor central. L'antorxa al costat
|
||
# superior esquerre per verificar render d'una entitat decorativa.
|
||
entities:
|
||
- type: torch
|
||
position: [8, 2]
|
||
- type: torch
|
||
position: [12, 2]
|
||
- type: torch
|
||
position: [16, 2]
|
||
- 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: [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: torch
|
||
position: [4, 2]
|
||
- type: door
|
||
- type: column
|
||
position: [3, 4]
|
||
frame: 2
|
||
- type: stone
|
||
position: [5, 4]
|
||
frame: 16
|
||
- type: stone
|
||
position: [4, 4]
|
||
frame: 19
|
||
- type: column
|
||
position: [13, 10]
|
||
frame: 4
|
||
- type: stone
|
||
position: [12, 10]
|
||
frame: 13
|
||
- type: stone
|
||
position: [11, 10]
|
||
frame: 23
|
||
- type: hole
|
||
position: [5, 9]
|
||
- type: hole
|
||
position: [9, 11]
|
||
- type: stone
|
||
position: [10, 10]
|
||
frame: 18
|
||
- type: mummy
|
||
position: [10, 13]
|