From da4c93bf981e39f364c319137e8d42dadc31ee17 Mon Sep 17 00:00:00 2001 From: Marti Vich Date: Sun, 11 Jan 2026 00:02:28 +0100 Subject: [PATCH] =?UTF-8?q?Sesi=C3=B3n=2016:=20Refinado=20de=20reglas=20de?= =?UTF-8?q?=20exploraci=C3=B3n=20y=20eventos,=20restauraci=C3=B3n=20de=20a?= =?UTF-8?q?leatoriedad=20y=20correcci=C3=B3n=20de=20colapsos.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEVLOG.md | 34 ++++++ public/assets/sfx/gate_chains_close.mp3 | Bin 0 -> 55464 bytes public/assets/sfx/gate_chains_open.mp3 | Bin 0 -> 74279 bytes src/engine/data/Events.js | 25 ----- src/engine/dungeon/DungeonDeck.js | 20 ++-- src/engine/dungeon/GridSystem.js | 13 ++- src/engine/events/EventInterpreter.js | 8 +- src/engine/game/GameEngine.js | 136 +++++++++++++++--------- src/engine/game/TurnManager.js | 3 +- src/main.js | 24 ++++- src/view/SoundManager.js | 3 +- src/view/render/EntityRenderer.js | 21 ++-- 12 files changed, 183 insertions(+), 104 deletions(-) create mode 100644 public/assets/sfx/gate_chains_close.mp3 create mode 100644 public/assets/sfx/gate_chains_open.mp3 diff --git a/DEVLOG.md b/DEVLOG.md index e9039ab..9461a9a 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -1,5 +1,39 @@ # Devlog - Warhammer Quest (Versión Web 3D) +## Sesión 16: Reglas de Exploración y Refinado de Eventos +**Fecha:** 11 de Enero de 2026 + +### Objetivos +- Ajustar la progresión de la fase de exploración según el manual original (1995). +- Refinar el evento de "Derrumbamiento" para permitir una huida táctica. +- Restaurar la aleatoriedad total en los mazos de juego (Eventos y Mazmorra). + +### Cambios Realizados + +#### 1. Exploración Diferida +- **Revelación en Fase de Héroes**: Ahora los héroes pueden entrar en estancias nuevas durante su fase. La habitación se marca como "visitada", pero no se genera el encuentro inmediatamente. +- **Resolución en Fase de Monstruos**: La carta de evento se roba al inicio de la Fase de Monstruos, antes de que estos actúen. +- **Movimiento Completo**: Los aventureros pueden completar todo su movimiento al entrar en una sala nueva (no se bloquean en la primera casilla), pero su turno termina al llegar a su destino. +- **Finalización Manual**: Se ha eliminado el salto automático de turno al entrar en una sala, permitiendo al jugador gestionar el orden de sus héroes manualmente antes de pasar al siguiente. + +#### 2. Refinado del "Derrumbamiento" (Collapse) +- **Margen de Huida**: Se ha ajustado el contador de colapso a 2 turnos para dar tiempo real a los héroes a salir de la estancia. +- **Exención de Pinning**: Siguiendo el reglamento, los héroes no pueden ser trabados en combate mientras la habitación se derrumba (pueden huir ignorando a los monstruos). +- **Zonas Intransitables**: Una vez colapsada, la estancia se marca físicamente como bloqueada en la cuadrícula, impidiendo cualquier re-entrada. + +#### 3. Restauración de Aleatoriedad +- **Mazo de Eventos**: Eliminados los "cheats" de desarrollo que forzaban el Enano y el Rastrillo. Ahora el mazo es 100% aleatorio. +- **Mazo de Mazmorra**: Reintroducidas todas las secciones especiales (esquinas, cruces en T, escaleras). La composición del mazo vuelve a ser equilibrada y variada. + +#### 4. Correcciones y Mejoras Técnicas +- **Fix tile_0**: La habitación inicial se marca como explorada por defecto para evitar disparos de eventos fantasmas al inicio. +- **Corregida lógica de nombres**: Se ha arreglado un error donde el nombre de la carta robada no se mostraba correctamente en los logs. +- **Restaurada GridSystem**: Corregido un error que impedía colocar tiles tras la última actualización. + +--- + + + ## Sesión 15: Evento del Rastrillo, Llave del Enano e Inventario **Fecha:** 10 de Enero de 2026 diff --git a/public/assets/sfx/gate_chains_close.mp3 b/public/assets/sfx/gate_chains_close.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..20c651375c86b7dc4687e32c76e24d13648c7c26 GIT binary patch literal 55464 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�&&a)r7ZBtXkVqaOP0?5(ih;zaZ{3Vvbsr=S)`|x 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

bL4^`vAn@_MIAYtSgN@JI<-U<8Yo_=LbV8Z~C zBqcJAxU|qBA9ajZ1poAFfrYYOSAAfT)xl^sExeg!p=jC$4n4?`gsB^KxMi7-kDrHq zp~1-wlZq23xfhh|T%yjcNew_ntlk(%mON~r4e#>#+K&~(NBQ%SW zvhR~`hQEKpQdxS!+@iYqW@nH`ut!1NiTL?n{C$QlzTRn$w=EMpN`6vRjjRwAE#7a_ zgAE&Q`jwpBuP?v2OIJ2#WcC8c9@1eAa1R%KaIr#;u53R}qFkl+e=;KQ~4XlWvchbkW_X#7V*Z`_jH=!A$_t3x0_ zWvl<87~|kwVO`!^p&gfMVvMAC?y8#d5Y<)Z!cu`L2}C;V3pzm{FH0&xV~}hA&hGgu z-ytHf+;iFrg;bn5n1V<^T&XU4Le=fdEl#Fn5b+S~3j05D8fOr;hC=rNwgm~B(nwln zHta;ysXtK9GP^_$RcjujwK4ykxjZ3Qoyrro*t+JCcT8dxUwms#zA>p)uX*~`Ts0@r zzSA$-p)BsF4o3o#M8;iN9Ygc_%|r3w!5yYje~*3i=BzKj^NCOHZr?{c+X*jUEnR(@ zK$Fm8&iP+j8o-}PFpnGzL&WNl4CGF)VN^1PtniSw^i%l{N?q|6@FNr%cSAhlqVJf- z3>{F%5NLj52-$> zBK*~0Z^02a6WV7b{h(|40gjrtVKckTJmRgoy{A)I{wg=O7zS$=ys%mRIF9(C_owPw z219Yc2hBr-5_v$w>A6}E*5ZC4mu>B$?;s0aCP|6VKj6LtlFhwgMppE5HMUF7h|Jch z<;SJvr$-t>7=;@Q9N?BQ23NfV;FEKONDYol>C{d3>-uJpsF zTl{94ufpB^WdWW+xVX6g<=CMhL?-bPS(7p=8hCsfH_@^x(|GCu|8z;O_eNN!M_H{0 zi@16Or`#xc$RSC&42OomhM>0xn5nvQ(Zx+0 zdMW7Hb{1_Aaz;*`oaDqI9z6^msE(_aWWqo#&OhMJp-FHM7*+V8O1=7$HzKn)Hqw<8 zWy~$jDcg{-`A1x5k+#-MY$z^&LdA?FiIT>wQiiD%aZJ}u@z03;nYtC1oM_)fTT;Zq zul0gTBt|^c7Us55K}mQq?lKrS)aFg}$7-2CAY1O6*7e_6H1!E7)~8GOHxphXz;pl%%MAUQjh zi3n>s_UcfGqoHg~<}I8{zgs+0{RmgIYV#L}KxsX=lvMSI9oTBI zYbF)yI22md?ppKd)M;6-Hr*>hr|B2N zMfhv`V^>@G@9j^s3SUwDQ?%OPLPEsNa8OX7@Ya(9f&heAJ6bBefodE?Zs=_EK0887 zto|t~2~RO1({eHg>St-#aR>>JT4XO1-`Wfsy?VyLLApx?K}m-}0lxGB=iRKd>q#LO z(5qyIOgna8a52n0v>G9@7{}s8!A_Y&_Oc}-WEP%-lrX0{rARV|&%Rx66vKJ@-bTdi z#VYJUepzu#!fj6hpJi~`S_jDGL5t0t`{Ry;IxyY1yD%SMvk0Qh5I{~r=~S?y3fYAaYR1Jo`%4utwic76-S)uoz% zz%@UH`=s0X@3Ayocp9a^wHQmHc4mqwR5mI8pI*fC2{DI_w{)V7u+Ab_T*on2a}@1) zhHb{ATP3<|)X#z6BJ5AHJWMe(Y0~Lg2-i#Z-r8+*9*shcYKan(wzOgC*KVkH|LZlC z^zys&eBsfg$J0rAg)Bu|GPRl|topFd*(AW z;NuIp)WoBxVIWba=)5afw9Tn^{uZ_zzZ%|(z2$V4XY<^0BTYh+RT`Xs`i0-E6j`%w z{i3b>YHOuoJ789ZfrbDfb%rs1;SKD3xnGoqYm{^^_j`73l;lrA-;JOD;DtNwOj;U{ zsG3+VP?1jh9_Z7_{ub5WY}>Y$vFwv=+qP|Uxy4lrOKa6?@9F!V zA3lG;bspT$eP0k!&&_ioUp+K6UDEwLw+jvOf;wLTKm#tOFUbLPOUjm8SOXF^^*w92aZ*`>c^^z<5%&@wU0df;s^ zowR&!Mz%`$YJ5hn-}<0RMJ+Yr8^tL$UQA9m$IzOGLuIaXLs4Aip+NS@A5#}jc)0;( zZ5*>i%dQgFxgSeYlKJ9ErP5IBvfDqGy&aGE!~E_1vs{IABMf0faTeb-IL^~ z{`Y6y79DHBaxV_aVn=&MUUfSzh6iR{zK`OqQ|uOMrqomPl~?Rdf?VMKg>L&uRd#b% zQUFjX zuw;;6MP$YFfPQ;poQ2>}F{W941gqZA1_~wnEKb}c?P0+T2p^uq$GI$Wuf*YmWY@~2 zwRAd)o#aeDEdSoFgzTATB^g!qA7#EfI*5Cpl729K=&E+sZ&XkJ^W30ZYT^fHR#;1M z#%BNb=rSk+x;bD3=|)v_K%iu8>UaTUMX7w9LBn$1e_s!lu2_ODREWt8+*SD&|Ev{$ z|2u!enB#VoHKmz^ii|CXk!LcYE@|s~w(5>5dO<9Ae5^MblPaeF{fh}aH)Sz)QeD=^ z8lxEt?Pdw?R=+|k;{`Q^l0)Sl#hbo{Bt@r^&)y|UW{+OKJ$}+{NCN<3Y20U8`Ofh| z02B=@OcmTcouV_0k#9v?`apFo(UKt*iuwO8JE(ho)Ehg_MyeV*rO4Q>l}lOctxO}- zNGAGqx|OhOXA+aUf-3bqO26qjvNx?mNPKX~o~!6_F4=Q=Zab{MAs_y+`OjnfwMXXK z;7}e~*5|Ox&oe~%H>&@DFn>IKT>+%*fBP)|vI|BCP&Hq-+K~oeQX0fo%<@w5SsyPW z6q{=$hz2dspB*IouO%aM5BJbW~WS==rQ` zPKsxl3zU^ro|iQl!1{B7QEQ5U23~AB+89o%Jnr>Je4}Qki2h0IVQ{%-C18KzXfYxy zJjYdr#7sf4)p$vr=8A3WfonE9H8Sf1D$POu|EmN{{6KxEv-25V@i}K0eu=P|cmg4{#77Uu z`mZ(NLB`Sy8L(oJ$Hm798F_l6cGD298G9FnPZOaOF}TZKCEb%MvRXG5@rx+YBKUdQ zeg5(yi4VI?{|q`~MZLip#Q#D}K1ct1%}C4$#5A#kcsdd-2f{4s-UhLVk+T3%;4`9> zjAW3)kxE6l`AQy18r|MuRx_3wmjZ6)Vd8lTw;rD)uwIfQkb*EhD>+b6*%)B}f32>K z$0AW2{5!XK?zczCt9CxO)JWQ@C+8#lo2c{m++>jP)M!QY(%=0U1Nb zYyTXI;FAWM5r*ytFK6bUsv}$UK9gtVfO-1DLS>VeS}7(YXIMZdd55z?-NX#00Lf#H zFPCXYZPlSKx(t^At=PH6_qBm-ID*nyz0j4xcwiMqiYTWlIRI9gb~sFL{+epi6$w#@ z_G?agrwpmM4ck#@D(!IXvf#IUC5rd&hn_kb*vUeLe=qX-HcpR!24`6yX8kUPy|JTZ zJG6PIpHlM4?&PYmQaDaxjp1nV9GL!=!W@x0BMssT{i1ccC~?_*RFI|j{x=#@Y29ZR z46AVr3k~_?{eSn*m(Q;@R5f_EmY7_`h~Yns#Y3bZ0RR-bn{hluT{AtyLN*8_N@{RU z2LUd#!e|XMrPYeyuV^D7$K}+74%N;ZaKE6o|5?W8lo;S{twk^1`VQC1$68nIjFdRcxR*2)pyUA^G&Q2xmc6>`581oAu0GVP^utlJ}mI;6> zWB^xW$1qBH`>XmEE3#9P=RPuth}i;nx%C!J>{mM-`k85t5G~96ZUY9EUrJO?>e*VT z05y0ZdvraB|8!$-yv#mkks%$=_l;I~55R;mgfi-!_7RGqvSs|OoRPl6#N%U+{FOrM zzqNY{wB=tfE*}>UMaZB`Ibd^sAQ`1IZjT1*>y=On?D*TmZ)XdELi?6OySzW+)NUlY z0qYpeTO;u@fHuc7>mDnp@D4=0_h~bkb;8xepAR7H%)^E(=@@XRK>R60rwAmTlfZq) zU ze7Y)x4(E8Y&nqn6bY29r=7r>ygy-|2BoxWVmR4*Lr)G8)4EuFf>H-!uZYV^HKOLFB z4o=4;jK)Kst1!NMIC~j|;V7YR+wKIQbT1FpH9A$IGoG`C#2m>91*!_cz?&$xa7mdX znuSd?S1A-JNgiNV$%v*n`h&&qPC*=0=!@23tiJBM#6L3!6Q!mTKMiQm9;y+&m*ZB6 z58g&V=^6dS0< zaA9_7U^`0_)7oD6i++$TIGn@eJ>m%gz_G$YCt_9o4NTtyk)Az8SOG-KtBl!hDDnFD zl3_}B7JLC;m9XPV_s-LOJU?N@)#rz$U()rsp^ukmVuo8g+q7?$OlSwX2~>TV=G;3T zFYdg|YIWGpY~E_Mzr~TY#Gr}EcRKgpnCKO>?AW;A=AHCs;-1|HhhuR1-hXx>L`OgG zd-N|ooVx+EW}1OlYvR=z^5c612HZS6GS|rt|~kIZltd*?(#iJEXiZLE4O7qeVyHuI>)$}G+~>h z4lHP)y0@?)Id`*Mm_2OBggjTBh2^?S)LGcM@NuppbZEu5{wuDdVvVv~P z!c@8a?&Znnxa7jVtiQ#%%BJUU33IZ6KDD~#aZQxkoX%lXyLNBwxy0@f&vT2nZ_4g@ zqjOs4*Aog(wm#hOTK5uLbr%oHyA;#S4r!)3zv{+&#eZ8P6B_wYZUpI0CG4_XztogQ zJ!)|X=}3bxnAK#j8wub5BBVMpt*=CuoL%5w?oXa?&`X41l1*jvH;sS51C~mRg1SYA zZNxJ4mPrIpY-na2Vj9%EE1--zs1Y)h7$&NJ54C{6WT&;|3;?*XUfQ`~p_P2Z$u>#t zJbx8rVxoIIy%vo5XCp&@eD^2xu~(_8X+hl|Ell}e$F5z3#+R~cWUr55tB;9U@Bm$D zgCl%QfD#fivQa@;q@DCuR(Wi>26~)y_NdkvnUfRk^-*gAJ^6tM9PG&EMy5u#iSPKD z+`9dr$B_I&xL?8vbr4PKrARCJ$vp`{GHerx;%EyYh@3ksA4|A)g6l=jO%vmUR&q1} z8i&z&iIjf}k@{E%oJqHmiKIgJLpeowdTUBK;ygS66EK?-oXl7-kog_YEZgkVEE&ls zz=#UAf54G~W8iORL{MW=WuZ1&JmA!)hEwe4$v5JPbq(F^snK2-t{5T}Q6M2%FE%_GO^?rA|9l5) zdTkC**KaE2x|fD4sM*hkgro1IKOR@!Pd43A3P0}(L3*kyKjFn&)voaP+Z#Gqk#{+#q^ zE}CoSF!f+xd%>Ht91!j8>?r9%;=8Hpue-PF*1dV~WBoA8X#r=cHxlQfnF9JW5mp$G zqhx9fPSb**$yrHX_9Vl$hlIgZI0rPB(3)UYyi*!Gmq*-aXz%AkJ)A_(9oN|;`{+^) ze=B92d}MVCz9PERDB8rNMSv;v;;Cep9axOCL_8989tAf{2vBHJubtEx&2&G+q^n8oilm;$a{;~+$G7zHEF7ONL?))$Fbe`4{;RKy#M2To4#8{IIw-K_^d8wg z{d?6M0D!Gi$v0UjKtzhXq6>Tj4r(gD?XO>5KeeCGK;M#<(POI?Kd!}F?Z9kdZ$gPK zRp8PnbxyL=o1k?MHv>ao-X)R1iweh7k~*oYW^Y(>%mWUhwADvz6d=lsF^5~AOjbBh zEOb3e!+i0=^)RT$Vr8=-7%sZ$1!rD^D8R`rO}a= zB?~*na?j01@VQdx#EBHtpE|+eoa&TwiLyd(45X@Wv^YRdiM8v9&^oFB(o6(UUBweJCuQa@8)6Ed{x& z%sw=W7()Er(WqyYX;fdoRUL*EIv_z8I2a=hbpxiyN$`LJ+3!RXxkJA9IZ|%u2@V4M2xXff`_{MT_*QVdQ0-d%9$->bA>5#jBH>qa-sjpe-2RZ13JykHRmlb0??I z6h5Cuvv;Q0vafIZR$MCDtXKpd8%4Ji81XI;z7TI53mDGAK(4D(RYHzi6o=M&Nypt?R5-=8M=U#Siyd$f=EDM8X|`-Qb_muPy*JWLDW-q%)G&p?9)BQlTGES- zqFF$}3D+Znu!g^Po5iGg`mGvQrTZe&&MqR(0uZ6)oBw;(fOm#NHX8gMNT6d{=u)U( zj+5H;ezWq4n>Fjb6T^O_Twy&9ycU`&b7PWTsl%c8FK(SRpJw$)mES*X8dpH_G7fA% z8djG+f91#b9^#!wi)E_X`4JL~v%f2!B>e%{pZ*k{eEcK>>f6brx-m(iy~hNE?l&?iR|SE<&0lO@CxUT389Y zB9x5m4hCTv9%CDFxlZh=)mca7jJzze1S+i)fPloDq*B6S#0$5W(-)~;@M`UWQDPfH znZC_8K2Ey5eG*7ylTX@wmWy>NHoWBP8*CwjU5%v=lXgt;qOviYHJ@CKIW{!ugijmqGn#s?y7DY0 z%=RmMTe6RO1kA|eNLo9|kq|ycjC5=XGC&GGHU(pjlBwz$6WCpAo8#?|g zmNB%c+*Li7W32KGxGU&|Vh(M2&7ava*$D)bGa3pYT*8FsSDY{rGMi7>#_#rCQ3&4n zsHnW~)!OC9tAKgO9HxtSpUH_Y%1YzIBgRn?j6x?F-wB+zD^9q3eCGF=tKw!%OtK4W z+qGLuE?_WiIT08LReM?Q>HQniO#4@qIM2|}@7FHLc$vZiedzn)&$d=6_Yp5ID{WSi zoM0f5G~a^IR4|TahO_d#o+-7q)$uq?Ad;|hKL()QOw=*o&+=Sf`6^gv9a#-I(nK7_ z&Xq-lrhgk=lCFsl?Yl9l(m=oxQsm@`#fV|1WUx9c}wTz;>|%v5W72fGMkE)^BT3!+uvM%AKyN`a&a$l&QF9<3=_LwvpMsse{*z>~W=J3{Yl^u4dwV(*&YYo;D72P5gJ#Trd$7fq|ea{%~89l6) z#F0%MH4*KMo01&V>Sa)YId!`4WYcK312}zkle3B1TIaq}`eGH8!>&p7fvU|D$D5XT z$6xv+!7I;))wkssnO<5qD@FdE*#tHN&VjO__5iB$68}T$_)~2j1Q#a&Lo+Uft5nI{ ziAZP8lV=nA2HbG~u)q>(7i(+6^=4{}UtG{+A~DHiuRcCozTZzjp-ez3`(ffe_mk19 z9@mO=jn{(5O&I+Jv2Uqv^GBt|8{3|Tx#DftC*bV;vv~^RXJ_wA)xNREGnXp?mQerC z{<$+cPrLu}d<%S@A+&}bvY_7yQwPgY6Kj!B;~px9mjIMO)Ez?(U514Op-hI=^~2B$q!d|#dPS~w6J)`kF3zk=57zW z9+lm$s@{W41t4cbt=sRKf4jIhzc!qtjz%CNswH48H8dP2@S#$Xppyk!Jj4C1=8Vq5 zT07A=EDev2+!O9`7<_aFxsL+m+23;5d? z9S?)JDH*Fm=H7*_H2BbzTA4@EVdH3d5Q+Pm?oq+dgyln)D7o2LPEr#*=E{UFFt~LT zc_WNLB{*;-1~0)O)OH%bwX@~xQ>C6*Kq93gDrzb0JP{cIEF}hU9L1z2=P(tyDA0F1 ztp9GxycR7?Qq&=IB#~x$SPU(V42SE8srCEjvf==NR9GFgSLMnk1QVaSG@-skz|+Do z{K4tfJ*e(JfAZ{phBl+oz>qqN2-7$lQ%@gXu5mIKFF;PM;j7cf8^)EZaRM^^dPJdp z^5qvp2Df!R;UF0JMAd7|g%MKmaSKth9s06>ws+(^WU zCt%oNnXwpw1a-D`Ywx{w+SE~ktzl$bH-~Y$vFA_F2=F}>t*^?`aG|idLR~0dyOKE_ z2&L}cfV%-;F6f$87rUH+D4<0%xa16n3JD^Hoe)9(4O_$Q+=Ob+Gg-2U;Sn^cSB;xr{-A8I0kaQUET`kfh0SAHz zn(N@4ytR)ctcHPnJZAwIac1w4+gptEHglrn?-%nk?`ZiYdvDPX6x+Mz_CHe|hY1Jc z6tvNw-~ZdIB-84;_;=lTGOT*Z`PsS^C^&NU^)*Z|1|(lBOh=*iI|2}ANzw{V4#mCrQ7W5_l%k_>(gj7|G` z{hl!aj$(?Ak}5;n&d~wVjB4v~WH`}2`mgQJtmW=r^<^BxEzj z*uwZb85%xw;H1Pdu0lZ(Z6-{n7$Oo>84j9)3x`Y|isn0h@7DAotkyrVj{C-yaBsenVA#Mnv31qaMV(<8d+ovz zc@HgsjfP(Um`;+=TXnutuIAh=B;y6gosVco%u-paUGkWUtiwSlwt>ctH-qFlmNlF@ zKvHJP`xxF$6hmW4yDYgoXJen{BITP#@t}_WuK%vhs|-}@AVsOjA5}7eoTNgK?lQH} zk1ErZADVs49pFhVhK5|r^;mxC<4}EpeuqG1!d~tfb7+S>o`rMny4dPZ>h)7*R-}fp zzGEMnv*7h^1|X7W6-ABKMW-6{s>zugq=}`$O@1<7KXeMq_Mj z9gTu4CG9Jt)%p2nWs)c-4iJb$(J?Q^qFGI&#+!ggS}3hF4_wf8qpG2&v{NJ-p+iR; z7+`tZcF_5)z?-gd#)cEhxq+Tn*vh2O^j)I$#zXU-xg#S=!g}kfQ+OOoUZunHXL(~4 zM;JK}2&3TD;YlMM=**nAy}in_xUG@zGB)lg%h)8=+}7)IQiM2Kmv{fHBiZ(#?>U4; zp3AJ85Z0`Bdm}O9!u_5U+UgZ1ogJTvw&-7m6N@Z>W+wYhV7oc@o)-v8G%Q=HobbuR z>sxg@#+Yg{(6TUW%%{0Yd(P1HQ=H8QP3!&S-ETVNiEt3P#;*L_R>|Vs__RxY&g`XR zYuj{Ie<7dc-)WcH0ZKBi{)XQ00F=TZx=AwU?=#YKnDY21AgK0FDi4iKTwL!8^X%Vm z9Kd|Ekgyb}Odpn(wjalQS+cppOk9bP<5`GTv<+VuY6p;eVO{*0N?4r*_`vcfM=DZev$q>!J!G+$Y^?rBiPt6`a!EAr8>nTY@=yQcW# z?iT{(4+>xxS9zdx=}cV|!?+`hV}3v&ylmlL16IBR%8bCFqzrYj%DWf*xH;8o^&Kyf z37^5Mo68?`;leN+q`(CD4?8aH%H1%^#dMk%xH^cxd zhFnG3LP{zP^j^-C z1-_U-T~(5q+#F$0SR*XRg%2a(H-!cvjAlqcVLozlhY^d7@kCM7qE8&-Xy+*6&G5*; z*1|fWN=|s7;Go>azD=w25B@B-?}J6Z^f5zC5vNEywtr}DpwvW)^8Uc)OEvfJyQVeX zirE**#w7tzr{kHyE>2p6$&jLuhI%2*=)rJ{abmLrq@^Z{W=$~4Hj8VH5X{h7-+;Rd z0A&OkpR;0|aWc`jgcMv{qL#Cnx5py>pthow)j(EBXGodqXPy6xczzlMNzGGoX4ScK z=wtdf(9$b($C3?7ceca!ejrejfMpr4fJ1(jvP&I?S>+;dje}2bHgI`~s$IA8no8Gm)65;33@A zB+?$-sWcqy=HU@2LKQ$p3IqUQyF*RD92D;`<=Sc3UdghRRX9;5`!i7_cwk`OfV&UC zw)ck)k~}Ik87>6E$oK=k?{S|5&h!T=8SeqzO%jFKY)8j2NQLMG?Q*XE?enU|comOz zmL>?er&w<$1T%sJNi;BxHqt+SlH-wYPgHp|Xxdd78R(EZkjtN6;2ufg-dp+>SCD?a zKR6$*hUOl85-zZ#y!N#YJ1w@Om$~}&@b>;1o*HmNAdTwqQkcnFG761<0=Z$6gw$26fpCRcBI?$n({m7)(!WKo0~Ug6)O?v? zd6~1b+Z!HC9wBNU5C%D#@x+Jn5ETmVuKsbP@cWo-axoEI6YW)jr=_hq&6E?so15M( z4*UXcRDpJ}`_{dJ|6HIuK+7*QqNhLYxNB{Xuehh zBUA!6XJTIujW#KGS(pYWq}Gz9MbqjM<+AKG9o@`kKdN0n5DsN2Yipl15B7x4e}%ZQ zbB!`|0UM(l*c6AYN*LKbXgTqo(AUxieLwB(r>;f>a-&t%TheCd(DF#Hrzsco66#skdUOLG|u%VqL>BY}H+*JR>qdx!;LtluB^GpOv`UL_y@$G5Z0} zUN_34$>oCGo@~7D)<&pjcwN^E_j;lQnSKO@ssL?>CKau6)3uL?Y`h-4YOF1{p000O zwwP>9TJx9*^7_hITn1*F-Fj`>82_c&cZ_5%C3MWWcQ6r>yLH_2u5Ba}WaE5Bwpv0n zl7a{U;3GZ$C|TuWszF2-k6RkA%5R?-EM|u?;KI%8P{e}ND0LHxq?WfJZ@`@ZFb8~X zt0`vB@T#FJ4!wnD!GxpKZ{ep>bEZwfUdnp8$fi<4hcqN?T9rmlzWye0jl0-Qq?UI4 z938Wm5^!mPuu!Tq$A6FMz;CZ`!z-LO-Xi3J@uCNd+;|~%WK?5F7fn@_lwW8J})GMm6pv}P>Ke(FN~Zz zlbQNLr^#crRN%{Em8D}LIV3sz3G0G}Ey^s$m2^D&r<$3{+OHdsL^$>va92<|8I&== zGDilYW)y%1ZzEwASm!&IrO})%;NmJQ(F|H|3``^`%)Jx%edTvG)%T2_JxsvfX5Ai_ zyVTS3*t2WO5aR#uZ=>SZ`u?SnBchDlr*J!Zf+blHbSuyCnEy^ zVQA8diUSle#XhWEz``PH%WY~Pc52ZtuM|~-2nH_vj61@({_q<22N*I+SQr6pMqL>t zQ3O~%Q(_FQ4_UtZ0oh1XW|w?F8bg%BuzY?HJqtuz6uh7QFxo%_e}vFV<_0+ro6@vj z#p%?jCY)7K;h2m%W-LG!gDn_y3jcujj2?Y+&W0r)oZCD*sr~YIkB|(d`q#pDEM2S&H9g{@+TnS(HhzY zw?9*5J%34tT3^u>e{l+lXN^oDeBs~PP|<;_9Uy-+zw5e~kfv+NX8{P%O82`O?TdYTc( z{qxb3bGR5g)D#E_fp!DwCdN#IZH1JG3<=XDC|@)fq}gy>zJ%9p<_i}*iG{SOkGdY# z0B3aPSuj@>+|a5`m6W2~M)cE6|BB|+f3hRhy;;r~Grk$ww#heR!fQ4%f+P-a92-k) zTn~gSm6E=kN-mEn?q#v;$7vYwo(q-WmupAgrsBW0f47W!5#(~~b2sCsejv^WL^wtN zZ&13cQBabDyAhas0=2a{gbXC&6DpB$?HVn9cc%3rVbSk4fRs>?nD}kQ{Q+Qu-x7sf z_CGP$`=%8Ltnlwdr3Te9v~=YcV=OHGu1q@#xm>6{RGshA&{%zN3Z3S()xL<_Mu|3k zy&CCz{i`!LfR{hosym8;z8(8b8;_7wlguD5H6#NBCibt(7`&6p3&5J&i-uJDMXgx) zzr4)gGg<)xC>0JuacANq{18l{8be?@Fi!oZ=Bs1)F@nO67ns#HWHK9byaw@&U5=16 z7Ekv4N$;x)dJBWopE~VL)j4(aEY7w|Zm16HwBt4_vR_YDMGxc*h#~6KHSv)w z#-N&)-_}iX#mIQ+i&`q;#S@I#4!B5=hO z5LzH0KODdv#-&4mG(wzGW^4n9tltMOdU+Q;&ANQ(LV>0&^YH(dIeilVx(~I5ZdDt` zD*Ki&41uDsp`?}}G%U15^upm#qNV@N62CaIvsj=jTfdHD@`tp-6JvCvp?KkmCL`2rZj~82ZRxIm+Z#|V zu(>iYQjC6ZP)OQE`Hy38IFbxLWuYL=5Q5C=fym!xjsf$;hZ|j&W9i*esy(E@caZOi z=8N%#<>)-Oc8NmpDq2_Gr_ zH!pR0aa+C5W07xbbG^4cy2JnVwfWx*)RGc1Hg&uCj*rDm=o!6@2X6r&eGhAB0bGSr zPiGFT5I})2W<1yoZHyZf>I{tU#N$X((Q~nkpt3Hr5Q1mhubT$+1!<`mcAc0 zj~(LdxFqdCj6+>V6>p(DC!AxT6|IB`V|#KKlQvg%95pfyrj9Yg zNl3Qu^;cUk|#%`^K-I@M1iz2R&2={H);uwbd;x@pd*rOSxy>8 zTO1ya2}v>VUD`N{7L9QNNl0=fyRc58UU?!D0!w;SccXZ9k;&WkhUQ+m+1tK7^2zEh zpsw-^Qwd?X^7w#2bIML<>3~?^ZR$3@iUj#I_eMpOdm329wS{p0Yk=TYQF}EP?~DA< z)dhRxWS-2tU9Z87n)~#H3j(VLN#?Sm z2Dsk4We}dJlIRS=j=y8-nT;v63`U)-hBBq^Mb|ZQdNu7FDH07XbNm>(4( z)lJwCM{fIr9!DGf=(#Dpq+{-t;O;wyWD01=70nro^`!;ScFQLulDyVFPYPQcepRYy z0{etzdPX{ZNa(D=a>k32m$l$x)o4afYI+Lk<|PA~o1QaEkg54_ojqmdf@lJ+8R$uO zmepWM6jqf{{sv|vX9Z!|cSW{jnj%fpYbPUfz<}lYM^Xbn5VsQae|HNTWdb2!)RpdR z*d={5FNgq1cWs3nC<$&TxY{_b?*DApsj>5RmFb;HSvbF-lW9MRC8mI8RM3{uiSHge z{P=1Of}PrSUOe%nU`3f&5;l|7VEe@S`Ls2%5&l}BW2^19D_K~WU6fQAkde~g0+fmi zG>zaern8GY!JR&;#Q4!`&e~wrNF5(%Bql@a`nIxv0H3BNV2P{j1%ffGDLXYz zb&OT$*XN{}nkiUOYlWP?R4vW*+AhB^{_JAs>+nj#s=o3^oxa`5%(YLs6MWs(f89D( zD1A~^zHZt5c;LWz60?D6`2qFWuUAxof1#`7kkC`9s$iQzMGp278ftVVbgMsTG@ue-^`GNa=I7 zS3q`mRtan$DAm1dp;@u*BH2uG+xVP&{s(CxzTCcoX>rTv#Hy4%74H$*>y7}KleAjq z%pCcTc!tg$@Gg&t@=51%`{b-|T@+hX0~3Zq*h?K{bwak3mo%7sQJ%8l%eRdtK6(Rd zug2e6S6ujZy@$wtB~MTO?uEyh$`pgcxC2j7P#re(RRaJ9@>!o3f0<-psDTcJnuCi* z5W&BLGERIrdyD1^hUV3rW4IDa_kolAkNyqbgcw?%WEOb0X&<6wFpx=%E%Tg^l{I-O zwsswmOurr>qks=By!$$qD0YS!`k3+tA?DA&VJZ8e*E-aMq;sEd*if1C#E7a^)d!{duZ@%rNUsAgg=o6)%R&V z+^1BjRqN{!+UVL@<`(CTms%$}>oOSb}r8tw&)+ERM z47##aLgwqg^;>Riflpqb1hxs-vSc}7mIPZMk`*?wba^t!U<);9C(pxnsC z%}ge>LNo~gIASOZ{+j0RYyPVcxPz`7h&_RD_TO0=fQhLK)p|HhigDNrgkW?RMu=nc zHL~5dvIgLX)GH3U(GI>EwUR~Qa(-gY5BPvx`|ucbba=)a8r<(RG%Q<# z*!h$KSR^=PYO)r~1jA@j@l3B=x;zhKAi!DG&>3!sq*Qv3e z@Tt^$6GaCOu+i9S)nXZxbmEWKlPd6LS@$W?Ls6=zeb){Ov1fpnoRz+D<;I9mn zqART5o6rYl_Io5TK)}&O1tbxtoElXRgw(ei|1kis!crNXWn+Vc-X5yYvmgFl+(lwt z`qClsv6X{KdXBXA^pey7MB}Q_ctKx!)a<$r_dNsjg=d3;(|f9q%H9BW*-YHgV@=XW z+}A(-+a`@Lls!dCN+ImTFZX|-%p{`1Sf;3dCp{lGlWwT+VXe~~HVH_^pLc?t| zmE8sSt|EiKF}|8vEzdfIa*gFOD^#j8rataX(q0WJ?a%oS+!hdXPIlH;-c)wRKP+h4bb2hTP7#u@G0Uj8pr`O0eA8V zG&YNXhJH2eRh`k zUcDs+()lir{#=`%={yWf-B!LYaxC2Rc@5^Ftn1ZR3&)yMGpw7_j$b}e?Q3r3J?ggf zuy2&W2cpeKVn7c?Db#ho%O9sbquZB_wBT*Vs2+#r^nP zYGbi(iVGi)GgloWgI?6y@(RAM;9)8`YI1Cg9Obg-inyAz*-z1NCiK zEWKGbdntLBjcrW4WJ8TUnW3%cE`XXUUkraylF`?3xgmX2X~a>@>t*@u6(&j6dlJe+ zC~f>_b3qZCX3Q!}OtRB`ie?Y+8Ko&x@GU9RYjdq}+*x zQI>sS1=cWvME-oJ#*Y{T04=T{+g<6`oMu#4V7nBn32iWf5Y271ky%4O_cHd3lLTf6 zv;oy&x-D;d5`#sx&;gwKkf=oTe!AgE>23J*7l4T@ZF|l?Qb|q;mF#9R?(Zy_NwD30 z%8lF&@1_#eVO(#52pLokobbFcjYn0>g^4(53f zY zSCJQflUT}HG12kI1R=-~GQ?c1;b$Ui^Ir)Q0IJEbKBvT?V`E_Ss}F$Zf04~EZ+bSE zsqj1eQgn?diXAuHsERIepl~Z4BcZQ@H?`-q;ad=yoYld}cxZY4eTsr>H&Xs{;?(@{ zN9kb3GOcE;h5XUsGd$`9pwvshxbh|X1 zi{_$bA&g}pcBqvvv(0$ISrXLr;*@Oly=d0sl>F+jq6pS>Pq;MVCE^ zef8Mn8?o04vgB~9;rL1roGBX%P=o@%A0IQHMuNwODW6431J2u2@n~yx%{%gRj0n)t z&$59N{sRY5nPOttbe)HUCm1e76&_>1@2xmL4mIgDQyp9)s~8*ip{7s^BGaV$ zVy#_K9#>iMTRU>M?@!f1tsqBT8awo6g&GcF0Y>qNwVX)@7UOY|#DtEc^G9U^LdfzH zmH_b?#!71hSzu9qtxDGlVk*R`)2v{5-;X1gdy{)=YW7U3Xl$(~mG&Bmq92w^(PF0< zDfrk3Kb)y}{;4&pPG;5o-MA#W$9;vHBmUq=5k{-rYy30PniF*?C5l?Udf^4eW>m8( z0?OE1J8p?k8)Esi&Y4qlUv?vh3C}yJ>>jpGs6jDDpCstq_3?dSp_zYKE> zS5U1Nulo)KdCf!&A9hLTSCcb$c_6o?PxdIEF=R~8y_Y{xJpfwU)8TE)>yL$S2_Xo6 zHL#5a1~F$BXWEh)EgA*ENEZ|!&rI{)glT_0W>TvLk-=)*gfrm~$;HbAfq+|T-vF(b zEWhlOtZ#lHB9g&We5fg_V#gM`n*yP?=+hp4JFvd%(GU$sjT2(o&oy$~W(OwMMO_Yy z0Q~nlA}Lgz;CzaL&BKMPaELDuY&~E!eO-V*lVklyn zWM^~qlTe1V)zoy_5i-ZLS>Q3}w&Z{V^Wb;qtnNtxHVJ0~lgCyhxn8bDvg#ru;7TX*WiJnf4LOFzR8*o<^!51wY5!LPWHf^Mn;g&A6gB3perQ{h7+p&^ z29%3nMf1qz?r^n>~@Mhm?zat5C4f*H8t0HewJ0Vf>$ zK#3sq3@*^Iu}_^e3JZ4}t~q{YmE3>sQg?8f(m9G~#ePXB)s@m=gjzO*gJp8Ws7U1X zn*nz}n3&MzfU?%h>Xpiq?!#&&6BDT#p{j>lQDL-2c@rlD8EmdIX&-o!&)zdC+R0DuG^j}G)ZVO z@q=I~v@%#TyN$={x{CbVVq{8kv(ne|&?%CYvTuu7`CbywjIUi5ZHeiN^G$3^U7em| zkhU$|vlZp})QgS{=U3*j+xpcYD;GBQZ7$<%tmmOpx-xNVQ4=7FSl4F!xF`l*s~^}z zmz1XlUkV4=Q8P)j0o9dIqf5QJW(ulC*TvJ9A?%mSu*xbQ`09p2`5?7J?rllBo+3co zOzw+nrqVfvE8r&c;PF3_&Vn!Mt_j0SO0#qbNG#pmNXOE!bayur0!p)VEe+D$-74MP zEiEl6i0HdM?>E@r?EL4PxzEgXljJJ~K)ETX4T*VG5W_4@ri)D&+Ueu-2=xya`Y`$T z990LVT#&tq1YuG=v(Gc{eor}NGk0c%FsE7<|G|QpFr^F>oKQc-xfavVoll@1*ijo6ix#1_FKcpOFuj--P zn>n#%IX{tybB5#Pz9+K<2`Cx!^Ix^5*dT6v3U$^tkS}Wi%lUUj?7Yu+cA3nILi3K^ z4Gx`+a@*yNRYR{nL5-)>;HPxRUZA*uX35XC^<$xN%EP_GyrUgyKSY!j)HPk!z``EfCT`g}0_0>8i#!9MnA6 zR3NEx=&C?NqqHYiA#aF$r=S|r811(gHZ6R!|LX$4LpzUi(swL;|JvKE&AyOV2GQ?f zCZy1Uirh4z7??*uK$g~xQ`MNA@AbP4JMQ}9_adT=t?O+@?DrV}+3@V@%StBr7FpM1kSJ9fs{MI8eMv?BTtR6Mr z&uNVU_8&MMZL%jEPyenqs?vXYU!2UJxY{I#Y#@y9$&kUPbYFC}tj*IpIYKj;BV^%M`*uEyJcvlv{VNXb?&Z>AL?8Ei~itiv%duDq=uf z3Fzv7#;2_FE)#d%PMA(rMU@-RY$O^;|L2edZvxe&yT@ZKV z@tD3{T9!{6QJKE`s}uy#7$3nJe-F%zfhpoY#tws@h z{>FZ4@ImRKx^^03b(mms&*#kN4A1L;`h%JevpSl`LtQ5a!f{eh%?_8p+!k(cJk!eB zhaI_|FrVL^qp3zI$4HYRha&(GW70iojwpYClomFJBwtO^+>#I?%dVF2x=zbzSx1LD zlOSTgGKdWuq!kVZoR>eEdVv=WtevIM{_CECfm^(G=cGP+d=39>`g##Cc9B_7lV``# zj}TPw!4XsG7!Iu_ht+t|oRTo~1D>ewSE)4bo`OXI2foZKUtT`I0nX z7cHO*zEb{loHo?`mi%LWwMJmk5oC35w(i@nQTQYL%nU?-ZrQ%o@YW+_XO&h*>}J9< zeL*jMf?f;l!&X<&+eGUOG}lzmiO0!tQQPi!?slMLW-nK867uJVvS zaL2}zHeJq8Ap1sAxX3_b3PEqsFr%?gO*VAM_{xf_U$CPuv`mntIPZW%EZM8Pl-_@NiUhnwT{$``Vyq|iF zB%e6DBVG0GwmqQUbLZvbEd>6=4M3CCz)xE}8FV8J-W&iJ&<{o)=rROgcrwq+l?dbJ zZlsT{DgQJn16w-UCeO*EO)ob~rW9G7vFsbblyq7PWr;8B-)r(>4d8{>;@UgLSY3;I z;sIrh4P`5i)fF_!{2}>TL9%9d);vmcx2;9q#~Mqj8i^lg)pm$8hB0-mWM0h04YTC0 zpToC`CmUlwF7b2T1z^#@>M2H(x|V6Y{#y9-KcHcJ8ayFGf-;EyCU|7TUPl%4{bMkK z57FiU;w$xz0fMCnlymS{5CADfr_tE(E&imz1whu6g*IhIFvflJ>2)NoITKo(de~dk zO=RS-LQVgL3l=(5soM#Hrx(RTu2B+iLJZ{-S&YMudyAxsD=dlZ#F)}n5AyeO1+_%A z_oYnl`heW^5K}Fx_bnasHcv_md*$VoP1AVl**N?Z<)V{Sjnq7lReK>ijWN>FOrDD9()E%4lakq{ z!a_o&i6RF)Uo_(R$|x<{l1YsL?zTbRNx}E)}O4Eo@A- zQZtKH_?#(&J)^IPoW-B*QDqH6wqLB#9mDLTP=ELp48S=H&<5<|0Z>9?lA$kQSSsA0 zC}kx12;~|jzTMy~{BMz_w7`V|dmA$n!|~se7{Rr~N5><3Y*S$i~V zV!F7IkXAGbSoFInJW2Ht+Q1i)g_1+^VW_8gBA>Vl#bH3-Xj3ugYK*e%J*`ASqpx`C z*AZbf@{^F$xqi1!9#UFK;R8pIA z5^1J2j>7lFCEzvr;lR8>i5GkbJS!%?*#DY9W%nU2QE^&QA%S|JQ*sw2o?J;bnydTy zJQane@yISanX@&V^h4xiU2Fw}p_94*P*PO+{7TQlYm&C10@(vWGv?xBjYiXA*_mQ6 z5Wo&d$ZV4OYHD5*6Uh*Z!v^|%c%nUnp%- zMf9MX6U=Gie}_h6b!Iw7SMS-B2)-JYOAmct!kDIkY>^cV)7(O-aFHKj4P47xg&EUI zY-=J!?6N412jJI~$^I=sUy5W4LB^E&cP0B7Owrh_iPaOJ1+3r@hsB?-g7~g%Hj}|N z4DYPDX^If@&XCc-_Lji~n%cH~zL=6`tvYHW97;sC?AHxz_+E&pzRm7x{S~HD^ek39 zp4eX6v7$}R)BrWzJTRL1RY8cB2G_X!p!#smw>pI^VS4EA`=?n%cNrI`=(Dz^QM4Vk z$7HTiPWH&%=wZZ>_s4C~?)30Ux2RWB8?Q!|!U0fto{D+fa6?AZC7TPS7Inuw3p|%# z2wcNCj~oEyM~WUCN(b3=3>W5Y-#Jg^y(_Vw5L-P<+fdidQkdi@l#6_R-$UtLUt21r zabU%yas#VJNm2ewbE-!BuyD^x6&AC7;>HDABIU9PUr!~|D z7@p3R&aksOdOa*&=Wol4%GhMkPG zE1fDimx20Qzr(l?wvUmOviYDRI*XE0`Y{h52n$(KY4TsJ3(|2*8{ixpCSA!`uv==g ziqVu!qdO?N?~JkP0THvP_H4h$BQ~2npA)qRYu!UA^*EChrALM~D=b3A=q}$?Wa;}U z7SC@YbL{FYxeCXO-!{M4Za7@yX};!$8e!>A)Bm0bj@AUJ@p5BOgzs1cO#;HT8(~T3(tpc!l5aW?`@my#T_Wj_cES5P z-YcU=pnl=Q!@A|j^_{~6OFTmiKzNki8H11re+68aQfS~uIOYnYbd+?5;1u7!j@qeJ zWIkm~n+Sh?0u!O`a~?I8smns+^#0ZCpTTKF@kVha{#ZPsjx-rfPXm_LG1Eo%&d$)M zh>$LM;nn|l=7<+nBSJjkw^d4-V%a7T>SzHR0Br7$Wr-An?4m)c2`EZ9mva(=qUl#; zgY93qAQ~zI%B`Qfu@`Svs=_NH#Vdu!>}@|6i|1WVA9D(s{{1^6adgBt{c68hv?@8T z3ZW*1JV}F>ZI?nSUWMm(46u19Pife5JWLO%zae+4rnA(JC}gKb-#B3Rk<61M4gE}+ zfIkSv%T0HX0HpTCkxFVv+Keey1ns+fI!hL$O&-Z(fslpF_aL2f@)eC^yrmiE>pRDH z-LKu)!I>HjqP-Db_WmE3PYlTaI;BMsO2a=N03r*jbT9)qS)C>ZodQw;If8kLE3!o* zOk#d_6!qES+>(7FcdKi@b096U?QJyrQRnT?d?SpdUhojoY%VzSQ}8b|Oq~;L7B;gb zdG2?*b5EfHl4l*XDPmxZI)E7hN!N5BHj9da0T4PpKh0Ok+u*?l?&O1 zYeN|pe&@D-n(WG+HnV6-mL8DD%?0q&BHvxJNJ_WiRH=Bx`yqEQY7u>s49-p1t>iNSb8#6-h_pG8J}k-VCij()x8A|5|#utx_AJ zwU$DdmBON?E^)IB6WfM6a)G(DG*RV&29$s?W`<%US8_Zbpwdj$&B^yHG6bx6PzZw!6u)1af8TtTLWOp*gbAuRI;Af_ ziAYm8`@u}dusT4OZ~Ugeg+1Ik~snFSjdn z(OO0;vZ)@QGoXk))VZQjx%Q*y9feM@dGsAaNQ-$anx{#!9745Tpu0eO$+>GAPa$FQ z&exIBO6=MC=h8>SnD}guT!mU0MDH1yeYeoC zBij<`SRs_y`2dHgNYj!9SunZm+o~j0ef^LiohE4R@^CRBahY6sW|b?VpF`DUQVaB{ zK=uQ(jDYnyRWkL4oyy&>yWWYvHzjDouQZ)SzMcjFS%KBTTn3rGk;0RXx)3P;x4CSHAfe4)wG-8S@)kKlq$&E9Jdi3l z9Hhsm_8Nq0jbWr9V-e*L{-2BqSL4vb?9LlpVkp?zgWyBM4B!vS)9iVC)h#7ONwp4b z2^qGLn;ArWZ$JUbv5MRF*A&pz_+jQ^rZ6{i55;MYyrr3)dL!{O4a^EYK1M_TmMKrv zQkf1?a$>N~p8v;YRGbqfbcA4I2d3tcfSDl}~d z6Xb77hRTwhB0n%*ArYfm#~NU6>fw>AH0gYeL&xWb`lGOq4u|u7LY>W+`|6Ym`IcJb zZA@g~?zNR=imA;S)BZxl!Xc5aWdONn z^sw@d+9hv%3b|~wCD;=V{QQ@3xQE>Exdb7XH zg8#lezD`R3__{iKgQ3I`p>f) z`YS%1#=}Vc32g`|{c>Gw-++pX@+yF@qQerLORdl#agGGb%+4Z{d@@Q3soKJevX^|r zKGbUiMRpxh6?Td5Y+)X37b?GMQmc5}da;qaD)`gYUOx@D73O1*qz4hr3vGdSFO?T=3F?$l7WaxV5 z$2z|Nb@FGSvLiW@4{(w}@Ze)Gr9rnkTdyFPx#r>}Jne=0Lz^b2{Mcw$GOYY>&JOul zd8 zWN0h%MkVXPvS)o*N~K+#Ed)#%+n-`Tl&MJBh?6r}32Q8R+K>=CW~a4w=k~z-$62tQ zP1K`pc%PaseGF2>cc{DiwIR#O>Ghm7(VN~af5^R0c64u0Wldsthzc3R)l4#c2WGqCc}3Tz%$@sd_(EyVmJ zH)G;v1&mBSU(rG@%n2zuw;k1&l(%gu`*=Kg>0=r0#`fIWeVc4K%;nAT6thGaLusLw zgG!cvUU3+gAv*|j z!LS?N8UkfXN66ZY>$E70mkW&kl9b8L7By}{kCpOc>Jie}yMgunqmF4^{*{~Xt*MRj zTl3~UwT5irx(~e)ZK=q8t&zrm9{AsKP98aOHxGR0iDwuuGH9V_VN2!@m$Bo8AjUG0 zt-+US@z}`|!jKb40Llza3~}t@7Ik=v{YAo0&L~tQ;bn}hT(jYG#_w+eodQYmp6f(m%gQ+f9*Ud1_pT*Q`E)&{z z6T>~}d#hQNZwxuvaSOK_3?9Boyt_#@ohHh&DrpK#5LDlg5b>;rNDtKvGWph5CWR9f zqmNEAFZ4H)Xv@!lZ-rh4 zDE-ZPpYz9^d-pNQrL7H#y}$*tyU8#5I=7#~(NI;+Z=7vrkUe*6IY=_0r+iobFbOgb7Fed;Dq# z^S3n2EJaAt5IR0h#d6pIQ{x=Snc7c!z!mCRU$`U|claxI({J}jV23}V2$`muJGcmC zHMvy(p6#O1uTTW{)j$gkSMj?7EgK6E0%8L|umlL@i3QioNk|+uXe8ZnmB=24^L*AHR?baMOZrvW~$*SeJ24^WJnsNo76_0p*LK(0f^)yHIP$KF#L(L{~8n>@gU> zNPO&x0QZl7%OzQ@@4o{DPQJnxw1W=~$FMfA!Cg`t$;^GmePX|)`r0i>#~OU%syO-W z{1gx{O~WW&HgB0&ZK6#iii;x|dR}aoAwqH~{S6^D<(VZwvG7_Rk5?D>CQIS=r|Tqqd-BA? zLE&%p+#<0`ZRypqIQZ|g`vU+fiNgcuX310yryr1wF&vw0KL4EUeY|ua_{a%2ZS%0D z`hmL@Ow_2y7@vfWJ|)e>AB+be^a+qfV-8p?g79VV2XU^vB(Gy{{SP36*y$6l3Jo3Z_FqMP5xM zpcKtePFl|+vn?kPsZKdm%qXqTdh@cRe@Vjg-5=*i%nYKXyrV4$KiW4ADC;*H%w%sS zRjg|rEficDY9?4Z+tGBLI>`9Rd`>7ho4E|x-XDV1tKUULm7J~;Uqc^)XKb}dodfK- zOou>cIUO3t5nG!6%bu%X;1DmIWZ*WA+;H9+hQsXnu-2O^iXp+{1v{-w@|}BQLs*Dn zJ{VhuHQ`$PBbMW**TU4VThZ8ZXG_BAe!TZ;m*6J#-(TxmqA!_^8-f7Y`2IKJ?2S?!lijggBl7$6VeFYtd>?3{__WnA2-Lv*UVe4_;pe zydb_axx83jM<2F|=tmbM$>Qt?nNR`C1Vs&ApKppI#lNAf6X{J2Qu5rawG0gxjGuyJ z@F;G(c+ChYtf+flzun(#8(u{&Ku8mu-9jAyW{G5oU#zBR<4P}vxTGE9(wIp~IgZSK zOk4Ql^Nz$vtM-I&IX3c~?$=yt@pPsTNv)^xKZ97vraAOvTU1jb)33Fkf`pW5Vs0)~ z)_(m(D_G)GUi{hJ{4aZ6f`LIFZE8rp$Kf^x@XkTl*=PHTT_!bXHEuX?tU4pKNMj_| ze#NO~dn(b6I@{)|dC^KOJM@+4-yN-D1z7?f00!J`C8=LXn%OzlyEjzY+EJ@7xxyNy z=1VJ!1x^JqkHnrQlB#?r$-u-g0}S>qp%JZeMt*~-ayi`r$w8?$nV`(rWhnFLTYenH zKm}F=^_X zH59L%+D&6aleodJXragpHVx_?DM+*t0Q(XG4j=*#WZL25BEAg%wTlPfVsBlyR&SQU z^@L_`;EiztyK{x=zuI#F0Opy&gWz%cmKE;tNY;wJALM@;S-;}!X|U%TP+sMYOXvjI z3z=iJ@wQfXYir;ePkl0+_nA*#FVXo9d^eoj@d>d5CV^{~Uo)Tm zt3l*3>>1rJDhAiBsUR5w9v}vDZ(l6oCt%Jng^)g9f!An)k}e<^^k6>w+))*GXDrUe zVTtb|V=vjkhO?lu&+p(>GobIc<8aWYyUnZrAf?Lnr|YYQWY$k_xb2CjFW9fKD-w@?|DADT4xl^#`3?2MB{xG{ zO&JueM3SSBZHD2qMoBwYCWft$7|$;zd^vi<;abA*YDu;mE31{1XVbZb2|584kdAL! z0vR6aE6Hwj)1v=47kO|wt)ww1ywX^6lhwI=-yb}2G&Mrm-}2C% zDKAZ^5F~m_{a2;Dq9^&^Jo7<(Ano- zR-i{NgtBUY(MPNs$$~iq$gU^xklcBQ zxjT5kLym}CwwlVBCnibr*mgCC%JrqxiBK4_zwVmNSsoFz8*PPr$6r?8;rHn|@lzd1 zHOuQp=vMuJ88(ve-u$rhc$GPPa4R5zRtpiKSRbDr2mO|cRgL4+u$aA85?33JP4C0| z$~!y5Uz$uG=Kufp36Ai$IB%E+E5TO>BgwW(b%d3=0QXS(G?t~cvYCUw+J3-Bu*Gf^mH}^E-+7-cm$|)Fqgt5! zbp5=uwWL@#8>~q^#YPAl#l*yjpk1<2?)dD4w-88h8U5Kl!hwkog)No@gT``ipiCnK z59Shc=2$8=ikhZclzCz>Mr4~4JL&Y0f+XubzbFCZh}u7>Dy($)Qj@u=R28e2`QhUE z^HWgWJCh!XR+kSC_^Lc9_3ZCZq~Blfe_W3oNc-a#b&((VVJcud=R@n~efC4Vc_K{! za2&&p53MN}u{w-2siUI`6~3oq{BzEn=CK$NrO_a8_qFZ#2md zsoI(wE6g=f|63$@1`x8xJDiJS@1ZcT2Zhm6UJ;(#E1te^%c8w=R3p{7F7jR-W1YuO zz2S^mj8J}{GsOe#upwfpOyAO3WqkRY#uQyE-VBRnJN}!04`I3PWUT>c%9){t)KF_} z1Cu{8h;mDo_?tQaZfS=ejYB>oP9m>chchJ>Y9bqmshB&o>3=%X%Sul%t5q-LLXPzi zAiy~oVASwaP+>uJBvg#n|IY9&j5v;dj!p80E(j8y>@Y4W;OCb%WGgjsYEV_2u(K`96kg=PYILye$!NlO;6(6A=Kp>OF;q(4pw zLobq|b>ub59ZDjpRG>^uw-V~?(xGSUXkRhe6`XDsrzN{$ToksyD9zL1A$@Fn*{auy zAB+FPh@W*E|F6))cZ<-A?cgMOT7>3*>(Mn{uk*!Kzi=9?%sL2x*H-JwUICq zhm_*%?5W$GUJ_ORHNb1Lb9ILghN-_Hx0DapN7dQ@1WzxH#W%Lfn-S~1cFER`L_;=` z)cjt2Oy3|MVNT!VlaSM;5YGhHi_5-3-?{c{ZT(_5Hd*kc5y+XE#y+McM;Sy`z#2Tv zC)v38kjFr`o$@DFmin7p5jidRGU18%N;=jD1%NRiH2Avp$?>n@SU1}w8l2EOiU87_ zUqwQVsLamTAJpU{l^x==zm&cSGx>V(i>INlN$c1%`5YsgQYFOVySs6CLrYJ3o1Dbm z3^f;eW$iVb68dj{C+Q^!9t1Z>Li!pwer7A@PzZz(P5UuHrTL7svsz*`m!P=}!>t%R207pgA_B6L6B5`Beh z3IGIoh|4IqNFibm20w%30JcDQuwoHHJeR3F)+VtmMXOoajM|vRV4(Fdc{CPo$O-qd zrraZMAC5OoRFwyzu@+eRdyd2m;nPQjJe2F6jPH-oT*!c%zO8lOw(++}Q_NU&+bT*+Z*zUrn`SY`uFX_?E*^#5D5M*sL!SJ=R1=A2wCEOmOFk-+)LaG5Zc& zWG|_BA}}UsqG-CH%omnF&Do%PQv2<__Z?)v!A3~Y5HWp4B>`teHs0?phEYz2vY$x@ zBN_${ei>E%cRLRT(pbUa=x!`>tmp6(@=(FCE}j4ih!D(u64%nRvF1S+fMv39>obuu zyD%})u$Ebd7tf!7FzOu01~Wx1+IfCUX>Bs>HTP!2wpQwY>t3dWo;PH zm0sT;SLpbv9AC(8Fsf#@1B|B){2%J+V;u6Yo0Cbk%~bBjs9q{J7i{us+W7udr0A@| z9!GS!Bk)~Vs%ES5>*B1ZWMR_aY@!x^TU$$Ds;lZ;um=4&XQj==DKJu>8Vi3J)A93a zn9M6miWD4BYod5oiYs0H@*`5 zFW#3wng1ye@Xd(EQgxNy)P7#>niqIe{QOe;$%*yII}3)+jA(2vORq@HBps&nN)l0k zBY3!{wEn#Y14dtKfsk&dzrB~fcW;m-3q}3AgXlM&?LuHbAO@_Iw7&*9O9+<NBYzid=^;X&z*n`=+B57WjXvdl%%E-ydpd2K+@)><=Y5K2dpFhr-5a%yUM#Q*V<4B~9=88e z!*dl9fvWzU$DZwjiFbOzk6!{Q@b&cxw>|VXC$ypKhS1UgEasyeCgAW&%#;Yhy?%)imE}#?uw3yk6a4FC>`^wRIaeXPjMvC zQOu+^&r(_5;ouGIH+7HlhuEh08N(O2*3XxkBe7^LSA&on%p-pqR1KglS?lJuFweUA z+s%G2c^EU|(w)?`xEpG*I?N6CmC9G=?PoOG_%w%HOBJ|rX?EkB#;y4|D-23%!(TgP zuy>|_w-tZMSa;r;F9}qHKQHr9GqoWG0~K#9WLs(fLgnLNtZVwFOzbn7E0-3UnvxeG z>EQp~Z{YwD$}p>cIEOc!=dI!Kzu)|1P#j^dk+DHhV<5-S8y|8^y0+3XkS$f^`7EP8 zOpx}Od3boNM7l6-lgVq#7vX8N9#XQr21=~1OO3sywB8oEIAFY59IImH(^a4nil=O% zA@>?WPM@$Hp5>d(-6KQYphMghP^&X$0{5{IrVyOU`;oli_!#Jmw_}*cm-c}!M>D;F z&bi5%lLwzCQ$Bcscdec+rTe(IEkfV!_g}emIcs?t>S)DsGY_7T4BBJ}{>G ze2&HNt^sfvfvl0^C!?QPGjdPMThRI&gSL8!9;-GN@b6}?{W@L~ZT+V5t&cR*PO1$@9HUs? z*C<0fIWxzG5~r+H;rI}K8K8_3bKbQKtp=IRfL4jedprZc516t(*|0yIv&I37;cuyQ zR@G65cR!q4;}zBta^R z$Z1NHI)b72bOu~Pb2JN5R-!6dk^I4{dc&*=`&Rv5xa##X+3#c3G8A-v#sq$h7qt>y zh8u~)d(~h(GI-0C=`qgTd>#}@7AB@BH`g+9ibMdeDNs=Om` zT$WWDLlrSOWZ`^(<@ST6fnIxW?-&&W8DzKitlDTlT9>1N7Qzw(iZ?CP{&L|;_J;qA z`C|8&PK?`03=d>uvcB8M`0PvW!=yWyNiX+P;>$%Lz3>P!$f%&Pc|*Vzf>1g|*DW`ISST&7 zEdz{jq?j^vJ%S| ze-aS@?@%57)HioZ$9{GXCsOg7J0GP6%9sc5b7|Q5MKNaASeyW>i=r0;`w(7R&&(R! zzKuO*xt21YYcLTO8?e%Gl~;!k9N08Ot}0D$Ayq*T?7~^h?f>)*w7?XD_sYbP5@bcO z3~&^kUPl;RdDR^_^_&>~gkJsO>0Cs##_iqk3mU60&{R+5+`e4T`n)ksmAwL4_0Ip; zEbaP(W>dlpG&S1THMXR#9RM^3DUrT`(MurelcG>9)hfzao;{XJ2jNV zIgS@$#<%)`0FYX)@63oawA#MNAz?LaS=8SS)rq``P$)XrqxLg*NnUo!OAHI{reDea z%bpVeo&?vOdMKv06Xz_MJSW4n}1Z{y2|gSEps z3=z?g$S;e3WcfU#33@8evXMOZ42jVFgf@Q6<5TFQxm50icZ$dCH9KJX{%vW~m;BT< z8d-P3U5GBj^*m%;!WexjvkIQnT2Jj?RLn>M30YvGmNfQIRt?M|%U}`!49;I49{539XAzwy1p&w>$bG7#` zaByX|miZs-vg%8Vb5JCC&q&YjrVjUT9yO4afDK5xk1P{G#a|llN=W0p`vXQp%7{yo z9XpR|3 zKf?JVme@^@O`S>G&HN)lsw71c{|6l+OFVKNf0JiI zi;C)dklCK=)^4pBgCL3ctDlk+2N#Xd3ox-kEA4&C%wkKru*w#{5UPxHJ}H@L{4a2D zj`oub90%=EB+mzjT_*5NW)=CO;7~|P%eA7HM6y&3SVG)sCH|Wy?eA&r zYZ44EZHDpId)gJc>qe3wr@H5pF0wE#y#2mLGtQ zmS$XP|JAC1Zp<|m(y6%d#=Nn|nDp6VLa3s03y<%H0EIktzq-#WCtkI^@U-k-;Lbwu zf-J1gOK}}3c;KFU@%Pl`xd%y2i?C-S26+vLJSBw5IHYZwo2hJKvKIA`PR>RA*RnHP zXsC5czGjpVq!ZBwEtt47wg?z9ZxvIET~6wo6XACT{by#>Is4tz#)(ubG+l>i-o6vD zC{?VO+8M?nQ&f;?DJKQ!tmD&Ad4+aIOaf9=+T-dYRn(8cW}uW$;IpNAC0)Mu1GZ>m zGo<8mSG@1h?$Ve7iP0Q;=Rh#BAe@wTvz`2V_Wtni6LC`0I(JEQ#XD~20s{#c;jTV9?*|7dz4J*)JgS3=k9|Id@u7H&EU@)1IHdG3Y zfEv=5%R~*4w~DK^A<&Pb2P5o~?y-^!AQq}Md?Wt8YbjSSXD*NRS-X<0@n508`-h=` zdsyMIAbqOtg(a|=xJ>K*9LZ))=*&CvqVh@Z1rwQO<0!R~+Rh#b{Z{WtYls6E7{v1^ zr!jAIN4TN}RWLHuN^c)mk=p{1C%Jx!H@!?sI}JPQTKN?9EH(zV3^|js;9p2n+rI54 znEzdEQ)!~_!*c<4RH$0%P7T3K1JgGOy^+v1PHQJQX&#}6w3!ETS}A^efDxEyRm+=^43AC7 zKPytmIwg`2k%Zf6FptcO37?D&sG8`m@w~mrJa(HhV!m;ZL9_L%}_Gy)?kj&>Vjpays>c;aHq<%+s*Pjb{QR8 zn~uv2leAG<55Js5y0qhnx4xSob!VNIM7^khc#e9D{LeXw;L;!G&3-HG@y3;KFyF1* znXM!>n8gpRwLdDY0_Yw=NWnL#{?h@ONvSC6IR6z4DXQ80x1&F@#`|!npvbMZqeoT> zPgS(x*`{)$VVr?4iP;K)`m#Zs*SiI8+QPw8^{s-HM*9xCYfbN;1Eyh&bw##SuB*?` z@-9c8si&VNt>;dEI#n55GGCI3WJVUc7)x=dRunNk&;ftCcPCsXrh zsdv@@5b4X$1REMq#)(a?f|!Lnw<@pCJCVx@!0MgRURe5oRgc-~YU3^k;g#^y%RT`5 zPKoRZNZwtV*?kni`Dcmtcf);}^yI_9NapY7N2jdZk|GSn3{f6}P>;HlaS#F%rXL0& zAS)5Ps&yBY7ipyD|F^uBVWLZRPO$>S7|*nQ(JZ875u8~Ou9j+Zny@nNc7B*Fad%sa zI$l!rb{0AlWfg+i!sI--8G|3tVoKHsoy3o>u9{cZlxmtG1Z@=j{+?U7S1_sN8z*T! z2dauz97hHu%b9LQl<}bChB3#OG+I+*f6+u1aLJ?}Qntm!M2%5Jm^WkQ@IY9?#Iq%} z+05#cN~R{ykV{f2WM%Szs7kYOH9RuiQT2ismT56#lxxJ*K@&C-?9N(*>%Xs+2f0>G zS^R7ptJ7>@+!2w`3_;Uw&z|a&cMFpDxn3RGgO?2vW(V1dPZx<2H^R>C=y&TO=D>+U_45LCUMk$h#W)FBf2tT+0z)nsR zxRIhGLaEccFdS!N1~FPqj>yR$+k$8|WtIp6F(fnx*$ek%@p3u@h~KyZcdi=Knt|mT z3FV6Io_KmoeYjsl)AONUW}g3YkI+;5vQ)gzl1(wR*p(9O}*|6K9plBM`?l zh%B~XEB!_$D&oRsruU_EaDNaPdLZB6MzXY`w~ojd4oR{Hz9{_(H2O$gg%(XUuCe!-PS}7gK8F zPCJEP*%~60=Qok)_m~){A!PlvkRN71m*kCu1q?oOM*EgS2Vc)^xDvqnul@$(@muKC z(BqukX*PPJz{W|^N(LB~)Tg;XC_{KZ5-!F&lL_quwzEjt zJEs$3b#$hfFRZC^TugPy6Zm*N^ppBA$GaoLgYEsrSKe2xhJG4trVU|AM4LS7#2$1G zu?V-%=`22bLuZ4>O*78-RBT#r#Uv%JMWrqDUAm|Hj8D@ULKgep4sS@ZqHvI@FrREB z@-q3`%)$WOm(I@ny(rH*9NM2e{_4}T_RznM^mIX+KorYlm2eI7_d5ze_7w~OB9x%T zvqD++0*{78Qi%tksM3g%q|%>jZ&TS!df(pf=+{4%Wh-F=R6>vjpauWSo)ZAj!$|vI z_6Rhvyo-ttTAwMTJ?I_6<(JrGANx|-dUKhJR3rdmWOQe9_X!&{pwe~tAt?b(t7dnk5^VCJBo)VtV<@U*lJG}fDjPcPX-2W7 z*p2NgF?=7Re$;r<;nTJWgHR)&i*E58Wqrz?Fn5yP)B%Qa>;Y?#sCCAgP_5G`ICL|Y z>Zz25xj%=Z_yNyw8%AA6h7anx%qSx~aJ~fjrCNBr0 zA=*YMC={cUH3okJ0$^!l%VyR*k)}gFqoBkZ_Ian2@unJT_Qipe@Bab^H*<)N(t%6# zr+&PS@4~bBYt-Fk9X(AKn+dw=(pAkJ#nNAibvrVxWjT*s$5StrjK`gv+@!JZ%z{G2 z=w65H>xDD?<(JTft?#@n+Bi)vPaXJwbb5Ho@9?)sspc~q>_YO!X%td@zVzp15e4- ztPw#kGv)vf2RvnmWa@{rCVvp4%pu9&e%GalFe4RMmfRFJAb~B-I}JgWbFd3?nx&%r zFiEbmPQNc%I;8s9Jjm9xdqvnhza%1b)Qq}DNiaANL<9Pkj!kBimU6Fl-KEEpd2-UR&F<_r`*`tVO+)7tOBFcJ=F3=p-f>CB`bGW+<$bHm&u@1g{Eg71(RpWK z6szMah!&0r;I3%q4wa$sPas63M>KqE80tDT&)tp%iUuQpWwf;SIJxz2Zfyw6hnaJb zK3r0YsUfrszL1b!S+DuN_w_5p^qOV+EIny)NS3O2oD!!|R!z+B|5W2(JodMmHT1Yu zB&?_J;1_MOECx?ljq}2oO~|^?*+LAS4HK!C{(3o`lVUW1(2hOi%vNitMiEVs$WoMIz4$L- zqF*VWmFcvnvp&L18S&(?XjrKS`*>Q*q+(zIHTkmlQOgz>Ks1q>xi z>+|XTV;I{~?Fj83N4lmV5|2m`ZkSNzxtMCd83$Fc71|K)3*sj)ACbU?cRVDkru51@MCaB zo^VbsR09PE1-l)hVN}5fItjD_n7dc-)1Z(4I6+6X&&1i|!@o~Y%aAXvUg-$n=TQCW zV<~f6T3=KBT%LKMB4%BZ9HwhMdr_0+!j$kc+!lP~5xA&m5Uy20`)NwKrPi302vHAL zhz1*314|vNOE_%MtQT0Cb*9{b802G=UV@;>UPltEP?OGHXtJcca=VgL=F`+U zkAd?Whp0pj@VLk=0h%?@43oJILy=f94tb>#1`po?_B#OlK^pE!5DY}|(5xZ#vh?9R zX$?;Z5+RHsdENZ0oz)@X*FjnSc`3jA&zj1}r^^pVdcQZb({<spLwN1w z2Q8b+)#n$B;qOcc0?q~H`F!tl-QYOcM)j-IPhv*tB6C{LP3bHJ1QB6%;CpYzXt1_p zLU(dBS?-T*UiVlF-Q|lxge33XSbP?3mM@Fs3RFT%0PYwG1^@r-fQO>+jB`1qXRG4> zUvt;}&i32=W7bGDV$UM>9x+Q1g2X2Fs3;n=6y?*QZEQ7T)@rRtiI_EtYSrEC zI-_x6C>l1yn8a($Q#Eu=`LSfjzET4M8OtENY(gEpCrj^l*tr814fg{!tr-H42<=|m z4&Rk-5fvX+AdK#Ug4VIzV1^}zDzU#fC^we-lrEq<&b!ALt)HZ*4-~u0se^N4Pl}5!WV3R}tv}3AfdM(kyRxY_c zr-6mO_Ui!iF4GIIf3F&$Mt9v@cJhdq4 zDW2u6e;MBo$E&oEA;{`3%^~FmzBP!vLw+^~gUH3|-KC~ibJ*E{vj?n8TuXz9(^!>v>PxuqK9YJ zjVhzRB^*s3(=@Q9)E)EULKW5ZUN+@;^M)o66#MF4x*ATty23=R^{0DLRNcLMLGvxE zK93*o?(`m2r5&|=^?#v`qNVS*RM8vaG@Mq{5bSmfh_@;is>Kp$D)=FM*er&toyvOc zj}*5r@~gQzjA{Qh+!hwJ6lh9P3?#C=*!b(TGdYKFXTF`shYyo_p-c?H58P^l?^Sn6 zdT5z+Yzw+p^d|5X+_08hEANVBl&F`#_Ul1@9s3+Q($Oa~((w*cRq(5>RufJwv*|3G z-KNSlUTEZn#)&ECNqAVY>7Qv8511qqCT9`@vVp(u=!OHC9O&t223S|B~tLoQ={I;l=$Lo zT~@MPQ^oKF+19(+9Eb#3<#tF+aTw>i%uAY?ARVx5+67*b$nV?izalvqs~4ZMJGbyn zopJdx#XVAbba%Tux-HMZc?K;}pGHpyQcYo(x-tJ6WXx?%_=@1g>rM8s$A~f8F2%6W zI?}a=rElMkf{9q)C7bapO@_ibCnq4}``=l@dv}Lx0?Jcax68AxbTgSF4fBktr5ec+ zHcTeKbk@Iy+sCrLb3sr7QzAnphEh7O@?HHPJ9qZxXBUKlUjD-x`5`H^A<)0qUtMWv z_{UpxerbbuXVuN>D&9hC2PkXW$$QJ|KC5j@gSg!d^ z?N_*yM2o$V{ft027z$e*wx#4Cvl5=5<|bELtYJc(SLMcb=ZluTOKB6bP_eS`$1i2!qjl%D(Hm=P$3#WJrw+ zstGY{h4{neMv}Jt+0)kzk^KIt(8F?v?oGmc0pN@c>mK+Xa3UW+P z`f#EbA~Z{+^p?e}{-m^QyVPR4A%!%+_fw-hV$M0P(P@6Tef(J^CcVQL*$>2taWJL# z`2AMrt^ z?cRABE$hJYL0Tp&UQb+w4-Eb!U%F%VTdR*siCsb##zHG<+ZW#%@$EZ3=G$7|x=Dg# zxlJEG&=~t4NB0<0MWSjYzGl_>r5x#UNYS?c74T(-@5$-;RVfbkWkJkjFniZ?s=1! zbsq7oIk;gpzMGhK-f-S4FlWZd*Jx{Z`tCq7^fAjK%tjhB`X$fi4IPhBlvB^Cg%m^RM zm3$}M!-kFHt_75NL@yRY5Gml>ccOrj@hYAinCoEbYyeF$;?|g-Ih0XG8aI`Ijl9a?BT!p z<*v0+PN1_H??$_&SGMfZ{PW~?sDcaQ@~I_PK~|R(^~9DGz9rj~c*^F%EL<+Db$nmF zKj_J1>|*@xn*(=%O+$s959v!kVO7P3$K^YmriFdZso?lf=boKTK`r5oxVCHC^*!}r zk;}pK1Jc%+X0i*%hE&zH-rq&DS+Ir6=QR(BWo=LlxCH)*8u@_!Vo3yv9}qM|P({6T z-q`zBLkjNUfB8u?W~n>ilN_#7%xMjtn% z5;S|+7=7|GZhHVE2p*+_OG(~cYQs5&g}16H*$*7m1fu_V*7)BD6;un}%N90klxmp& zY=1)hvhy=|birZzJpbqSk-9NWn>`)btM%&_$MsHs_+(9Pg*#NLA8MU6Yt^&Xzbm2= zjf3K3ZD2W>EdJ)=JpOoubS~m2v#qysoFfYd5V87uI+mbpzzssGgIk z;!sV+qlUrmGL%Hkwe!tkm#IpJ?Xzi=o^}5Or*CZS6}oTELpKj`b#?9>oM+RfjB|FID5!UwCm;N{yB`y@**2#8W;eAtyDAF| zsKe7Yn-xaGV8klN?xz;Kh^Vj=}Qrnue^jW>^7_v5eD2VX@;c$t-M5JOFsh+dJZEZsz1eEj{lo5ji&S)^U z*R88`p1FX!W$Noc#CRr1me7Kb;DwK8skeXG8_)={wN1twr{}@mj5zZX`NfrTqhD6Y&ulZN0b-nyk;QF>`e;)tDaZnF;(LWO@sKW;H0ZnJC%h zC!0e$w42nt;I_IsIh#Md_UfR{WSG@!ktuie&Ds*}k{3321Lf zqR#Vujigl;V1tX)VWJAY6btF42@U4$@0SH%Yh}#+NqCKd@jhTGNq-MFEn#O{gWb;% zExlAj>@-`+=73{R;d|jnn$5Xsvaf+i)MV2`#KUxL$uBgDtVE0{N6|m}Dxdr{ z+%GJv=2K%zmjMwa_mxrsewgCU?7h%vw^p5&)8*-Ogvy$29%NK2$`wRM5*yNU@ZwTt zDNR1zHe7WT`vFNTFUUW3ZV*p%qtK&+eqmnGJ_huebuwlV7WxP_Zdx>SN(Awl6Vz0t zc};VulT@5PNLaG={rEXHVG z|6u4|Y(dyCFgiqW^rMdSnBQ~rCPU*1$>4LvQpeRxcU@tu)Hd!Juuf?1gI?Tzb%qlv zG*kqzlZ{x$HpB>WmMUXi@p;}d*GOa(}D*Sh`= z=L^ZavwFWBu{O<)b5HyTZnof=9d|_?Ukuusv-KE82q!+;NJB-48Q4zyJYG*hOJhDCohN!T>v9d=}Kwbxa~wXpx%9k0}%UFlOtej(UG<6 zLrQQX1`GX|e9H{J7{t5pW8LqU7#1J?#hFV+i+vjI^;%bEMo@7>2^3cvMjiex!R z7y{qU`A0;c8q-d>b|s`jj_LwWZ|LxBP(=cs-QA@ZC4Bl|Rd5A3466{cY1zqd`N2b- z(5!Nhi~+xmdcJXfSK4e~9)smY46+{&CKFkUOEI66yZW=&3wmn{ z_&jrxD2NR37d17Vfl~$`@h`P%yps1F|CD|-Reh=A|0Uve*Q$JokN2r+`(O0@!h%$< zQP2}eq?cN!bbcN(*_NV$4N(sZb|#d?0!1_IK7*|?o6S>w4&Eo%wdDSlN<65Z{f^dyDR8@*gV5`ZryDaE`(P6w(YOs!K$ z8uxu3WK27tf-i^vNqX=>cuh8HSY+3PWz2kwPfl`PG#ZJ}$Px+wXD!O+hD^8I?`Is(SF$KAN-#+plkl!AbCkL;kC7_KLE6?!T-Nz7dMGk*b=Or% zUOj^%^*)DDEIVGGF3;Hvlhc83wpt3q9_XLA-4r@S_%+E#&c0KowN!09`71+~i6jZauO!NjugRB;s6GDjL!egT-s~d1Pl{hKa9e#!pV^9yKe@7CFR5 z0bq36_ofSBenpv++S++G!XFV`eL``cM=?V6-ufK+v&K%{y;17j;lr-h7Wrnczk8jr}rz#$|8HZMOD%;S}&&Shn@#}^r#csRBz!f1nfOX}DQYaabuj{|^;%{Bi% zywK+QsK(`@QN^Vx)UJ2JPlZJM^L#G_IKMq-z6RF{ARgm9$8(otbbCHkG>wj0HR~^*5)S_idzP~a+S{`}^0tRdRDiwN`GANbx8K>n3k$B@lW5lZH1{*tzt|~f z^zP<5gguQ_)7smt71gVnY797OcO4`2F&Vjjvp~W-Y^G84b2t$apDsjrLI9O~lfC+g zAF{V8yj3&*EGK!%YBAcA{@F+`;d;=K)>OH9x{;$f=b{15BQcT(&5@CIFHwUQyq5@2 z!j$*tx4jj&<%n1U(X;dB33!UO7fWgOb7gydYJ!71tsz#izl1a2C=%;k!dk9Z<`jME ztZ^tXJsNOSP5gr7B?;Q}6vGtp1wQ=`XAq4Oc49ubjdkCH_!ocCLm9wLmQbfmE+^2G ztWl)IeT}2-S1@2xL@<5#iX@OQi~aPzi2&?`{)7 zm^0{-3d z<=0-2Z)lwc^WuMxNS_u$c-~bCi~l+H449sUJ5CniZj#o}Zh;7QhNu}-}FB2S$HkO$DDtW*u*6wT5vgRMkeI-o#77Mm)czGipu501r}{K1zH z1-Isw;8ue&h{{&)kHB|P6EgM4_yQxYu*wXkV7oRvB;|Dmg{RJgQX&G;X)0~wgY;*J zWt5`iH$Xv(9y@+iw7yg%K1Ml862>6Q5PMuixLJkn9CD2I6U!dG z#9w-{9z6G8-u2XPUv7h)eNn{CK2}9@o;yxs6z44X2;gJEKH0A8`ON3Wx7ECooID1* z_eP@}Zpl^-8;1fc&yO-QZy>ydSbS-t%4s{VQ%8v!iP~BU3M=I%G$Hgm-`=)^TnSv{ zmCCfXfgYO_y?7PEqT&*ELrFg9hx`D)-$i9##cxjIK_(FXFsVy^TvZ!&ZwNQ2Z*3Ri z6x?GqZ+>#VwPkY)^IN-|VIEGU0OHVKb0TF$=rBWFSD^~z=HkCb*u!2D(3PUZFi-lq zy(tg4!ohWNj;RqgMVn$=T#6Px-fT!s#jNEmFv5a!BLG}=g-c>h zLk#o6!|L8Q0vXxgH`4B&pxT8!vWjjsJoS>uI#4RF4iK7u&)h(bX0^pDOa5`nj1iG0 zCeuS904D2re7P6KR8jhwN}$`0T2Uj8JoP7UNVP4$4wCS`{gaAYZZK1Xflce6{Z@K; zLF`DQF+5E2&WzhW(M;bQt|G6bs7U-zKS{eH092Az5o)U3W0(DGpaSWnZT_(|i9TXZvrCaefNw{uI>- Yy2J*E_mBhtpjZm~?0>V-|MSoP0n$fV+yDRo literal 0 HcmV?d00001 diff --git a/src/engine/data/Events.js b/src/engine/data/Events.js index 6686997..c9cd7a0 100644 --- a/src/engine/data/Events.js +++ b/src/engine/data/Events.js @@ -17,30 +17,5 @@ const shuffleDeck = (deck) => { [deck[i], deck[j]] = [deck[j], deck[i]]; } - // DEBUG: Force ENANO and RASTRILLO to TOP - const enanoIdx = deck.findIndex(c => c.id === 'evt_enano_moribundo'); - const rastrilloIdx = deck.findIndex(c => c.id === 'evt_rastrillo'); - - // Reverse order for unshift - if (rastrilloIdx !== -1) { - const card = deck.splice(rastrilloIdx, 1)[0]; - deck.unshift(card); - } - if (enanoIdx !== -1) { - const card = deck.splice(enanoIdx, 1)[0]; - deck.unshift(card); - console.log("DEBUG: Forced ENANO MORIBUNDO and RASTRILLO to top of deck."); - } - - // DEBUG: Force Chaos Warrior to TOP - /* - const cwIdx = deck.findIndex(c => c.id === 'mon_chaosWarrior'); - if (cwIdx !== -1) { - const card = deck.splice(cwIdx, 1)[0]; - deck.unshift(card); - console.log("DEBUG: Forced CHAOS WARRIOR to top of deck."); - } - */ - return deck; }; diff --git a/src/engine/dungeon/DungeonDeck.js b/src/engine/dungeon/DungeonDeck.js index 49ad4df..8a23a03 100644 --- a/src/engine/dungeon/DungeonDeck.js +++ b/src/engine/dungeon/DungeonDeck.js @@ -15,9 +15,11 @@ export class DungeonDeck { // 1. Create a "Pool" of standard dungeon tiles let pool = []; const composition = [ - { id: 'room_dungeon', count: 18 }, // Rigged: Only Rooms - { id: 'corridor_straight', count: 0 }, - { id: 'junction_t', count: 0 } + { id: 'room_dungeon', count: 12 }, + { id: 'corridor_straight', count: 8 }, + { id: 'corridor_steps', count: 4 }, + { id: 'corridor_corner', count: 4 }, + { id: 'junction_t', count: 4 } ]; composition.forEach(item => { @@ -44,23 +46,19 @@ export class DungeonDeck { return drawn; }; - // --- Step 1 & 2: Bottom Pool --- + // --- Step 1 & 2: Bottom Pool (6 random tiles + Objective) --- const bottomPool = drawRandom(pool, 6); - const objectiveDef = TILES[objectiveTileId]; if (objectiveDef) { bottomPool.push(objectiveDef); - } else { - console.error("Objective Tile ID not found:", objectiveTileId); } - this.shuffleArray(bottomPool); - // --- Step 4: Top Pool --- - const topPool = drawRandom(pool, 6); + // --- Step 3: Top Pool (All remaining tiles in the pool) --- + const topPool = [...pool]; // pool already has those 6 removed by drawRandom this.shuffleArray(topPool); - // --- Step 5: Stack --- + // --- Step 4: Final Stack --- this.cards = [...topPool, ...bottomPool]; diff --git a/src/engine/dungeon/GridSystem.js b/src/engine/dungeon/GridSystem.js index da3cb7c..f15ed37 100644 --- a/src/engine/dungeon/GridSystem.js +++ b/src/engine/dungeon/GridSystem.js @@ -13,6 +13,9 @@ export class GridSystem { // Set of "x,y" strings that are door/exit cells (can cross room boundaries) this.doorCells = new Set(); + // Set of "x,y" strings that are blocked (e.g. collapsed) + this.blockedCells = new Set(); + this.tiles = []; } @@ -141,7 +144,12 @@ export class GridSystem { * Helper to see if a specific global coordinate is occupied */ isOccupied(x, y) { - return this.occupiedCells.has(`${x},${y}`); + const key = `${x},${y}`; + return this.occupiedCells.has(key) && !this.blockedCells.has(key); + } + + isBlocked(x, y) { + return this.blockedCells.has(`${x},${y}`); } /** @@ -162,8 +170,9 @@ export class GridSystem { const data1 = this.cellData.get(key1); const data2 = this.cellData.get(key2); - // Both cells must exist + // Both cells must exist and not be blocked if (!data1 || !data2) return false; + if (this.blockedCells.has(key1) || this.blockedCells.has(key2)) return false; const sameTile = data1.tileId === data2.tileId; const isDoor1 = this.doorCells.has(key1); diff --git a/src/engine/events/EventInterpreter.js b/src/engine/events/EventInterpreter.js index 39cf54e..9199775 100644 --- a/src/engine/events/EventInterpreter.js +++ b/src/engine/events/EventInterpreter.js @@ -275,9 +275,11 @@ export class EventInterpreter { h.inventory.push(action.id_item); if (this.game.onEntityUpdate) this.game.onEntityUpdate(h); }); - await this.log("Hallazgo", `${msg}: ${targets.map(t => t.name).join(", ")} obtiene ${action.id_item}.`); if (this.game.onShowMessage) { + // One prominent message. The log will also receive it if main.js is configured to mirror it or if we call log separately. + // Let's call log with a type that ensures it's NOT a popup, and use onShowMessage for the popup. + await this.log("Efecto", `${targets.map(t => t.name).join(", ")} obtiene ${action.id_item}.`); this.game.onShowMessage("OBJETO", `${msg}`); } } @@ -312,9 +314,11 @@ export class EventInterpreter { contextTileId = this.game.currentEventContext.tileId; } + const skip = this.game.currentEventContext && this.game.currentEventContext.source === 'exploration'; + const spots = this.game.findSpawnPoints(count, contextTileId); spots.forEach(spot => { - this.game.spawnMonster(def, spot.x, spot.y, { skipTurn: false }); + this.game.spawnMonster(def, spot.x, spot.y, { skipTurn: skip }); }); // KEEP MODAL for Spawn - it's a major event that requires immediate player attention diff --git a/src/engine/game/GameEngine.js b/src/engine/game/GameEngine.js index 01cd463..fc85a83 100644 --- a/src/engine/game/GameEngine.js +++ b/src/engine/game/GameEngine.js @@ -27,6 +27,8 @@ export class GameEngine { this.visitedRoomIds = new Set(); // Track tiles triggered this.eventDeck = createEventDeck(); this.lastEntranceUsed = null; + this.pendingExploration = null; + this.exploredRoomIds = new Set(); // Callbacks this.onEntityUpdate = null; @@ -46,7 +48,10 @@ export class GameEngine { this.dungeon.startDungeon(missionConfig); - // Create Party (4 Heroes) + // Starting room is already explored + this.exploredRoomIds.add('tile_0'); + this.visitedRoomIds.add('tile_0'); + // Create Party (4 Heroes) this.createParty(); @@ -84,7 +89,7 @@ export class GameEngine { if (data.eventTriggered) { console.log("[GameEngine] Power Event Triggered! Waiting to handle..."); // Determine if we need to draw a card or if it's a specific message - setTimeout(() => this.handlePowerEvent(), 1500); + setTimeout(() => this.handlePowerEvent({ source: 'power' }), 1500); } }); @@ -640,6 +645,12 @@ export class GameEngine { // If already escaped this turn, not pinned if (entity.hasEscapedPin) return false; + // RULE: No pinning in a collapsing room (Panic/Rubble distraction) + if (this.state && this.state.collapsingRoom) { + const tileId = this.dungeon.grid.occupiedCells.get(`${entity.x},${entity.y}`); + if (tileId === this.state.collapsingRoom.tileId) return false; + } + return this.monsters.some(m => { if (m.isDead) return false; const dx = Math.abs(entity.x - m.x); @@ -791,63 +802,43 @@ export class GameEngine { // 2. Check for New Tile Entry const tileId = this.dungeon.grid.occupiedCells.get(`${step.x},${step.y}`); - if (tileId && !this.visitedRoomIds.has(tileId)) { - - // Mark as visited immediatley - this.visitedRoomIds.add(tileId); - - // Check Tile Type (Room vs Corridor) + if (tileId) { const tileInfo = this.dungeon.placedTiles.find(t => t.id === tileId); const isRoom = tileInfo && (tileInfo.defId.startsWith('room') || tileInfo.defId.includes('objective')); + const isUnexploredRoom = isRoom && !this.exploredRoomIds.has(tileId); - if (isRoom) { - console.log(`[GameEngine] Hero entered NEW ROOM: ${tileId}`); - - triggeredEvents = true; // Stop movement forces end of hero action - entity.currentMoves = 0; - - // Send PARTIAL path to renderer (from 0 to current step i+1) - if (this.onEntityMove) { - this.onEntityMove(entity, fullPath.slice(0, i + 1)); + if (isUnexploredRoom) { + if (!this.pendingExploration) { + console.log(`[GameEngine] First hero ${entity.name} entered UNEXPLORED ROOM: ${tileId}`); + if (this.onShowMessage) this.onShowMessage("¡Estancia Revelada!", "Preparando encuentro...", 2000); + this.pendingExploration = { tileId: tileId, source: 'exploration' }; } - - if (this.onShowMessage) this.onShowMessage("¡Estancia Revelada!", "Explorando...", 2000); - - // IMMEDIATE EVENT RESOLUTION - this.handlePowerEvent({ tileId: tileId }, () => { - console.log("[GameEngine] Room Event Resolved."); - - // Check for Monsters - const hasMonsters = this.monsters.some(m => !m.isDead); - if (hasMonsters) { - console.log("[GameEngine] Monsters Spawned! Ending Hero Phase."); - this.turnManager.setPhase('monster'); - } else { - console.log("[GameEngine] No Monsters. Staying in Hero Phase."); - } - }); - - break; // Stop loop - } else { - console.log(`[GameEngine] Hero entered Corridor: ${tileId} (No Stop)`); + triggeredEvents = true; // Use this flag to end turn AFTER movement + } else if (!this.visitedRoomIds.has(tileId)) { + this.visitedRoomIds.add(tileId); } } } - // If NO interruption, send full path - if (!triggeredEvents) { - if (this.onEntityMove) { - this.onEntityMove(entity, fullPath); - } + // Always send full path to renderer since we no longer interrupt movement + if (this.onEntityMove) { + this.onEntityMove(entity, fullPath); } // Deduct Moves if (entity.currentMoves !== undefined) { - // Only deduct steps actually taken. No penalty. - entity.currentMoves -= stepsTaken; - if (entity.currentMoves < 0) entity.currentMoves = 0; + // If we entered a new room, moves drop to 0 immediately upon completion. + if (triggeredEvents) { + entity.currentMoves = 0; + } else { + entity.currentMoves -= stepsTaken; + if (entity.currentMoves < 0) entity.currentMoves = 0; + } } + // Notify UI of move change + if (this.onEntityUpdate) this.onEntityUpdate(entity); + // AUTO-DESELECT LOGIC // In Hero Phase, we want to KEEP the active hero selected to avoid re-selecting. const isHeroPhase = this.turnManager.currentPhase === 'hero'; @@ -909,6 +900,9 @@ export class GameEngine { const [x, y] = key.split(',').map(Number); + // Check if cell is blocked (collapsed) + if (this.dungeon.grid.blockedCells.has(key)) continue; + // Check Collision: Do not spawn on Heroes or existing Monsters const isHero = this.heroes.some(h => h.x === x && h.y === y); const isMonster = this.monsters.some(m => m.x === x && m.y === y && !m.isDead); @@ -1024,6 +1018,18 @@ export class GameEngine { // ========================================= async playMonsterTurn() { + // 1. Resolve pending exploration from Hero Phase + if (this.pendingExploration) { + const context = { ...this.pendingExploration }; + this.pendingExploration = null; + + console.log("[GameEngine] Resolving pending exploration at start of Monster Phase."); + await new Promise(resolve => { + this.handlePowerEvent(context, resolve); + }); + } + + // 2. Execute AI for existing/new monsters if (this.ai) { await this.ai.executeTurn(); } @@ -1373,16 +1379,20 @@ export class GameEngine { // (Maybe put back in deck? Rules say 'ignore and draw another immediately', usually means discard this one) if (this.eventDeck.length === 0) this.eventDeck = createEventDeck(); card = this.eventDeck.shift(); - console.log(`[GameEngine] Redrawn Card: ${card.name}`); + console.log(`[GameEngine] Redrawn Card: ${card.titulo}`); } } - console.log(`[GameEngine] Drawn Card: ${card.name}`, card); + console.log(`[GameEngine] Drawn Card: ${card.titulo}`, card); // Delegate execution to the modular interpreter if (this.events) { this.events.processEvent(card, () => { this.currentEventContext = null; + // Mark room as explored if it was an exploration source + if (context && context.tileId) { + this.exploredRoomIds.add(context.tileId); + } if (onComplete) onComplete(); else this.turnManager.resumeFromEvent(); }); @@ -1402,7 +1412,13 @@ export class GameEngine { console.log(`[GameEngine] Collapsing Room Timer: ${this.state.collapsingRoom.turnsLeft}`); if (this.state.collapsingRoom.turnsLeft > 0) { - if (this.onShowMessage) this.onShowMessage("¡PELIGRO!", `El techo cruje... ¡Queda ${this.state.collapsingRoom.turnsLeft} turno para salir!`, 4000); + const msg = this.state.collapsingRoom.turnsLeft === 1 ? + "¡ÚLTIMO AVISO! El techo está a punto de ceder..." : + `El techo cruje peligrosamente... Tenéis ${this.state.collapsingRoom.turnsLeft} turnos para salir.`; + + if (this.onShowMessage) { + this.onShowMessage("¡PELIGRO!", msg, 5000); + } } else { // TIME'S UP - KILL EVERYONE IN ROOM this.killEntitiesInCollapsingRoom(this.state.collapsingRoom.tileId); @@ -1451,7 +1467,18 @@ export class GameEngine { if (this.onEntityDeath) this.onEntityDeath(e.id); }); - // Clear state so it doesn't kill again (optional, room is gone) + // Mark room as INTRANSITABLE (Blocked cells) + for (const [key, tid] of this.dungeon.grid.occupiedCells.entries()) { + if (tid === tileId) { + this.dungeon.grid.blockedCells.add(key); + } + } + + if (this.onShowMessage) { + this.onShowMessage("¡DERRUMBE TOTAL!", "La estancia ha colapsado. Ahora es un montón de escombros intransitable."); + } + + // Clear state so it doesn't kill again this.state.collapsingRoom = null; } collapseExits() { @@ -1473,7 +1500,7 @@ export class GameEngine { if (!this.state) this.state = {}; this.state.collapsingRoom = { tileId: currentTileId, - turnsLeft: 1 // Next monster phase ends turn -> Next power phase -> Next monster phase = Death + turnsLeft: 2 // Gives them Turn N + Turn N+1 to escape. }; // 2. Scan Available Exits to see which align with this Room @@ -1502,9 +1529,13 @@ export class GameEngine { if (isAdjacent) { exitsToRemove.push(index); + const exitKey = `${exit.x},${exit.y}`; this.placeEventMarker("escombros", exit.x, exit.y); - blockedLocations.add(`${exit.x},${exit.y}`); + blockedLocations.add(exitKey); + + // Immediately block movement through these cells + this.dungeon.grid.blockedCells.add(exitKey); // Also block the door visually in Renderer if (window.RENDERER) { @@ -1563,6 +1594,9 @@ export class GameEngine { blockPortcullisAtEntrance() { if (this.lastEntranceUsed && window.RENDERER) { window.RENDERER.blockDoorWithPortcullis(this.lastEntranceUsed); + if (window.SOUND_MANAGER) { + window.SOUND_MANAGER.playSound('gate_chains'); + } if (this.onShowMessage) { this.onShowMessage("¡RASTRILLO!", "Un pesado rastrillo de hierro cae a vuestras espaldas, bloqueando la entrada."); } diff --git a/src/engine/game/TurnManager.js b/src/engine/game/TurnManager.js index 160dde1..f00b891 100644 --- a/src/engine/game/TurnManager.js +++ b/src/engine/game/TurnManager.js @@ -61,8 +61,7 @@ export class TurnManager { } rollPowerDice() { - // const roll = Math.floor(Math.random() * 6) + 1; - const roll = 1; // DEBUG: Force Event for testing + const roll = Math.floor(Math.random() * 6) + 1; this.currentPowerRoll = roll; console.log(`Power Roll: ${roll}`); diff --git a/src/main.js b/src/main.js index 73464e2..6d14580 100644 --- a/src/main.js +++ b/src/main.js @@ -189,11 +189,17 @@ game.onRangedTarget = (targetMonster, losResult) => { game.onShowMessage = (title, message, duration) => { // Filter specific game flow messages to Log instead of popup - if (title.startsWith('Turno de') || title.includes('Fase') || title.includes('Efecto') || title.includes('Evento')) { + const lowerTitle = title.toLowerCase(); + if (title.startsWith('Turno de') || + lowerTitle.includes('fase') || + lowerTitle.includes('efecto') || + lowerTitle.includes('evento') || + lowerTitle.includes('selección')) { + let icon = '👉'; let type = 'system'; - if (title.includes('Evento')) { + if (lowerTitle.includes('evento')) { icon = '⚡'; type = 'event-log'; } @@ -290,6 +296,8 @@ const handleClick = (x, y, doorMesh) => { // 2. Check Adjacency if (game.isLeaderAdjacentToDoor(doorMesh.userData.cells)) { + const wasPortcullis = doorMesh.userData.isPortcullis; + // 3. Check Key Requirement for Portcullis if (doorMesh.userData.requiresKey) { const hasKey = game.heroes.some(h => h.inventory && h.inventory.includes('llave_rastrillo')); @@ -298,12 +306,22 @@ const handleClick = (x, y, doorMesh) => { return; } else { ui.showModal('¡Rastrillo Abierto!', 'Utilizáis la llave del enano para levantar el pesado rastrillo.'); + // Clear flags so renderer allows opening + doorMesh.userData.requiresKey = false; + doorMesh.userData.isPortcullis = false; } } // Open door visually renderer.openDoor(doorMesh); - if (window.SOUND_MANAGER) window.SOUND_MANAGER.playSound('door_open'); + + if (window.SOUND_MANAGER) { + if (wasPortcullis) { + window.SOUND_MANAGER.playSound('gate_chains'); + } else { + window.SOUND_MANAGER.playSound('door_open'); + } + } // Get proper exit data with direction const exitData = doorMesh.userData.exitData; diff --git a/src/view/SoundManager.js b/src/view/SoundManager.js index 616407a..5c21f59 100644 --- a/src/view/SoundManager.js +++ b/src/view/SoundManager.js @@ -15,7 +15,8 @@ export class SoundManager { 'door_open': '/assets/sfx/opendoor.mp3', 'footsteps': '/assets/sfx/footsteps.mp3', 'sword': '/assets/sfx/sword1.mp3', - 'arrow': '/assets/sfx/arrow.mp3' + 'arrow': '/assets/sfx/arrow.mp3', + 'gate_chains': '/assets/sfx/gate_chains_open.mp3' } }; diff --git a/src/view/render/EntityRenderer.js b/src/view/render/EntityRenderer.js index bfcc2c2..fa18edf 100644 --- a/src/view/render/EntityRenderer.js +++ b/src/view/render/EntityRenderer.js @@ -22,11 +22,17 @@ export class EntityRenderer { addEntity(entity) { if (this.entities.has(entity.id)) return; + // Mark as "loading" or "reserved" to prevent race conditions + this.entities.set(entity.id, 'PENDING'); + const w = 1.04; const h = 1.56; const geometry = new THREE.PlaneGeometry(w, h); this.getTexture(entity.texturePath, (texture) => { + // Check if we were removed while loading + if (!this.entities.has(entity.id)) return; + const material = new THREE.MeshBasicMaterial({ map: texture, transparent: true, @@ -129,14 +135,14 @@ export class EntityRenderer { moveEntityAlongPath(entity, path) { const mesh = this.entities.get(entity.id); - if (mesh) { + if (mesh instanceof THREE.Object3D) { mesh.userData.pathQueue = [...path]; } } updateEntityPosition(entity) { const mesh = this.entities.get(entity.id); - if (mesh) { + if (mesh instanceof THREE.Object3D) { if (mesh.userData.isMoving || mesh.userData.pathQueue.length > 0) return; mesh.position.set(entity.x, 1.56 / 2, -entity.y); @@ -151,7 +157,7 @@ export class EntityRenderer { toggleEntitySelection(entityId, isSelected) { const mesh = this.entities.get(entityId); - if (mesh) { + if (mesh instanceof THREE.Object3D) { const ring = mesh.getObjectByName("SelectionRing"); if (ring) ring.visible = isSelected; } @@ -159,7 +165,7 @@ export class EntityRenderer { setEntityActive(entityId, isActive) { const mesh = this.entities.get(entityId); - if (!mesh) return; + if (!(mesh instanceof THREE.Object3D)) return; const oldRing = mesh.getObjectByName("ActiveRing"); if (oldRing) mesh.remove(oldRing); @@ -183,7 +189,7 @@ export class EntityRenderer { setEntityTarget(entityId, isTarget) { const mesh = this.entities.get(entityId); - if (!mesh) return; + if (!(mesh instanceof THREE.Object3D)) return; const oldRing = mesh.getObjectByName("TargetRing"); if (oldRing) mesh.remove(oldRing); @@ -217,7 +223,7 @@ export class EntityRenderer { triggerDamageEffect(entityId) { const mesh = this.entities.get(entityId); - if (!mesh) return; + if (!(mesh instanceof THREE.Object3D)) return; mesh.traverse((child) => { if (child.material && child.material.map) { @@ -245,7 +251,7 @@ export class EntityRenderer { triggerDeathAnimation(entityId) { const mesh = this.entities.get(entityId); - if (!mesh) return; + if (!(mesh instanceof THREE.Object3D)) return; const startTime = performance.now(); const duration = 1500; @@ -272,6 +278,7 @@ export class EntityRenderer { let isAnyMoving = false; this.entities.forEach((mesh, id) => { + if (!(mesh instanceof THREE.Object3D)) return; const data = mesh.userData; if (!data.isMoving && data.pathQueue.length > 0) {