# Configuració global del sistema d'il·luminació. # # Cada llum emissora (player, torxa, mòmia, ...) té un únic paràmetre # propi: el radi en píxels. La forma de la llum dins d'aquest radi # (els tres anells del gradient) viu en aquest fitxer perquè és una # decisió de "feel" comuna a totes les entitats — així pots tocar la # corba aquí sense haver de modificar 10 YAMLs. # # Forma del gradient (centre → vora): # 0..inner_ratio del radi → inner_intensity (zona totalment il·luminada) # inner_ratio..mid_ratio → mid_intensity (anell mig) # mid_ratio..1.0 → outer_intensity (anell exterior) # fora del radi → light_level de la sala # # Hi ha dues corbes paral·leles, una per mode, perquè la mateixa escala # 0..1 vol dir coses molt diferents: # `gradient` → subtractive: 1.0 = "no fosqueix" el píxel # (l'emissor "trenca" una sala fosca). # `gradient_additive` → additive: 1.0 = "afegeix el color sencer" # (satura). Valors molt més baixos donen un # halo cromàtic subtil sobre una sala normal. gradient: inner_ratio: 0.5 mid_ratio: 0.85 inner_intensity: 1.0 mid_intensity: 0.8 outer_intensity: 0.6 # Corba del mode additive. Valors petits a propòsit: només volem un # toc de tint cromàtic prop de l'emissor — fora del nucli, la sala # original ha de quedar pràcticament intacta. Si pugeu massa l'inner, # els colors de l'emissor "inunden" la sala (additiu satura ràpid). gradient_additive: inner_ratio: 0.5 mid_ratio: 0.85 inner_intensity: 0.15 mid_intensity: 0.10 outer_intensity: 0.05 # Modulació del radi quan una entitat declara `flicker: true` al seu # bloc `light:`. El radi efectiu per frame és: # r_eff = r_base + (r_amp1·r_base)·sin(2π·f1·t + φ1) + (r_amp2·r_base)·sin(2π·f2·t + φ2) # on (φ1, φ2) es deriven de la seed de l'emissor per a que cada # antorxa balancegi en una fase diferent (sense estat per emissor). # Les amplituds són **ràtios** sobre el radi base: així el feel del # flicker és independent del radi (una torxa de 24 px oscil·la el # mateix % que una de 40 px). Combinant dues sinusoides amb freqüències # incommensurables s'obté un patró "fluid" que el ull llegeix com a # foc; pujar `noise_*` aporta més inquietud, baixar-ho fa la flama # més serena. Aquests són els defaults globals; cada tipus d'entitat # (o cada spawn / sala) pot sobreescriure'ls al seu `light.flicker_params:`. flicker: wave_amplitude_ratio: 0.05 # 5% del radi (per a radi 40 → ±2 px, feel actual) wave_frequency_hz: 3.0 noise_amplitude_ratio: 0.025 # 2.5% (per a radi 40 → ±1 px, feel actual) noise_frequency_hz: 7.0