From 6517dd744ef8108e29c7ec257b6bde51ba4e73f0 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 31 Mar 2025 17:24:16 +0200 Subject: [PATCH] des bruits de pas tralala --- .../Running on Concrete with Tennis Shoes.ogg | Bin 0 -> 34358 bytes ...g on Concrete with Tennis Shoes.ogg.import | 19 +++++++++ buildings/bakery.gd | 2 +- caracters/bob/bob.tscn | 8 +++- caracters/human.gd | 6 +++ caracters/musicians/Thomas.tscn | 38 +++++++++--------- caracters/musicians/thomas.gd | 21 ++++++---- caracters/player/player.tscn | 9 ++++- export_presets.cfg | 4 +- game_state.gd | 2 +- scenes/bakery.gd | 4 ++ scenes/game.gd | 13 ++++-- scenes/outside.gd | 4 ++ scenes/outside.tscn | 1 + vehicules/car.gd | 5 ++- vehicules/car.tscn | 5 +-- 16 files changed, 102 insertions(+), 39 deletions(-) create mode 100644 assest/fx/Running on Concrete with Tennis Shoes.ogg create mode 100644 assest/fx/Running on Concrete with Tennis Shoes.ogg.import diff --git a/assest/fx/Running on Concrete with Tennis Shoes.ogg b/assest/fx/Running on Concrete with Tennis Shoes.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5b45a82fec1659a931efea9499cbff605bcd5aa5 GIT binary patch literal 34358 zcmeFZbyQZ*_b7ZGxF(|nctpCSySqh@mQY$+T2kq55D>Tr{d~W_ z@B4f2y7yh{uJ^w?%rk3Z&+IchX7=nehnJR?Y5*MYPxwasHxu20BMc#jcsRP4Si3${ z!AVyB1LFJ_xC!#|q36HDLr(};DmHiI!A-sYZy^r;?@&A-gqF3F728V}OG-Oy6U{#e zC}k*iFpj(sfjWV zxgL)2)Wq-}BGV|&-hU;OJZAU+fB?W4P-6-jGj__}0{*$2onFl5KEaFJSW;o&~ z55tEs7N@#^L;al=B>)4b2}sA`$$r2a{6IE5PW$qNMddMcoLfpwT~PxJ?)tAh%x65@ zXFUA0Q-gJz{Ir{bb!UV1FN2MVLjH-r{FW~t;-9HgLV#Qv{^V80d}@;XpZxjoK_QiJ zfY}2{C{g378RH9Ni!E%btuq>|DjMtuYgq!y zRX-CT3evLAnXJ#5R!Wt&&xHl~4~6>ykf)-mEIlqf(ylyxu0mjxc9R@PR2V)}!2TB# z9@q{5qMT$s&SV21HB?zAT%fO9g=bt9XFyUsP~?9d-u#gla3WM$7Rfd+6z*8#KV*S{ z!xH78NMQWM1OkNRtx=|rrJoM-W2LX>mf>Ygd=6L7pl>cq&G^GXyAk45ke7^K(|U5# z#?oC!WHHi<{^q=KGmxvwzJYbbo0(X>#Ks_;^|y57vN*zGRr&|Mt!LJ@8Tm0^38abs5dK+(k}+d1dpni zDuLYX9acgvXFp>hd34MRxw5y)s>Jj~Zh?PhP6+@(IDe%0U&$X){wu|W@exd48R~|( z23a1G%B~TC-I^{O2@Fn9idmqb6i3%@WV=@L%h(pxPwOxjC929X7X8&Ikg1erv0_NX zf0QI7)#WQ=38)qS$+#oh(MM0l|09kbld0f71>-mus~WekhPuWp4}0wt_xZ+P{aN?r z8NcP3XhXt~|1Mbn)*Jv-nxH>AnP?Kl*_ZiNNgVYrga4&D&Uk%sWCL-u^0l;z-&lrE zcwV0Jj6arA;Zan>*B{4spCB+-R%PN5{!4Rm8Df6&#n8yc(`v`lc_&+jrEAgDkAnntlOp_2 z1^_^3EQb7_bwov#bxIXFrOK+IF8sgN7_fDUM{$A&By17@fLq5}VezC77OqJwf4GCGkLY7z(Z^DMi~naSh=@l80gV3) z10ot%hm7<5gA2sc$t@+y1MVdM=iz^XO9cvf`5(AMc@#y}75~pM{ofJ(F9rU$6aYmW zf(8Bv#Pg__;b43aAaqqUo>KOR2WF~$B;-Y+@OVXwKnOb>dE#H%0dBA-JYM8N*u|)^ zJlNUDqi?PMZFK^a-e5yE2rTo^u=)94at%Jnk;3C*)bSu2IH8Fk>n}XU<^S`Cg8={x zf(*cb$6rPN{Y(WixB$QxZ>9~}7c%kY5CCSbosA3t@#fy-|MOw~zt{dZgb)}50EFgi z5jc?z!o`?si^j8{8)*ZI@LnXMc#sERxQC}B<#|eg%)n#z6u?0QR-Et#zwxN7@g)~o z=l46a$WKVdnS(}9I5iKLeU!cFU5q+<3eKA$BHtPg++IMkBR-Iw*Gi5BOWCSl4xpq3 zI)CsbuY2b+M1b~F`B!I_!Ba^UJViAP{ghR$%hgpODTB=##)&G`>bIZ$jTB?}`0nmV&OET9+T6rkdvH-wJCj_AEL=hM$twkYK zY&rt)NNTBpFi;kvjO93sFidg9(ejKH#AT?=R8^T6i_pZGo+hb^$rKf;a>=n4C95J* zCB@5?Q5LGIG9m)7Cw$;f3ne(D5&<{?tv%C3lOg_1T5&nfjZ9Zusv;uLyeY#oeXwy7 z<2gY)SxIgn6|AE#G6Uf<6I2DjIxNuOa05XK6II2xGF?IYBMSt90HS}X9bu=$fvf(9 z-1tD}$^*Ny=|OVK#us~M(}Q-aO?=_snslMjf2i-B{SS>@^g(Vs5bEjR1CPqe%hABn z1W2gh2Ya`?eD_Pk1N~>*jprYTzuVFY(%s#hxand0W#1WTa437POia!Jf_JQI2b3);bGX5v$jP{?Wmj61x{QsGo)v>Lr z*93@0g5gEAgQB@BX|wQSkO)a?aRC%mkn3V$oLjVs@p5wb;!*qzPm_{$BC5p0I8llU zCw1&N2}b#m^9mDnA{ZNff(!!dz^Ulyp;Hwl>O`_O5M|g=fn2i%>rA=j>cKj2Dz+?g z&0yV!9wOUlDTWN)hgRDvDC4@T{D&zW)5?0ff~fe1y2|=#>O@tpUOY80mmb8?dr4$k z$+@YMfcxbaxf&}7YzxW)jahVAuMQ|UsOC}8tW$}uBZz>gFdrcLlt_%8ScAa00F{s& z_J=Xe;29DWz1{~2dyp&DLLygC%qW8%PGW^9e;UL<^AhA4vFX1W@`B=3zk)p;8bEYU zizff}V0f^E<;wouP?VUc`lm0-9}^ioiauDXxS;GNs)GH3K^%W=XOJLhAdWu`a^R5_ zPaO4cLt;D#SM*NCxRi?j1aQTIQSp8_2Si6A+@NrtFBFg2ftZbFU z3zCi8!dY2ls(LMXb4szVvT|90D2zyD!BI>_sR_yAgQ=<*Cd`~}QJm8J>+0ftMBtJg z2mtVpxE`b6iN1M*0q}{+#KHk+=onABq(nv8s0uoBofP=!vv>hOENloTJgkS3GmnIU zsTdyCgBbD}=pUPvX>EeB!Rw9n=p&1xh~ormk%>Z3`S^Z>&@UYYk!I$qsqct_cmRML zSOJ%>Ie?lvKW%mE=of(ch?t6zlV9x7pJqYe7XZkp!otF=HuwaDL`20UU&zQQC@F)> z8|2SUC<;JOQ2rh`AIc~wf4wN8Pyh4>9=s?I+v2UEBoBq0fr*~Bfr6a8{7WSxQ?vV= z``~-Md&m3N;9vATY!b)$tPd{ukQuEO3!yaj&S#W4p*an~=x}wrXLo(;A_JLfD!dM1 zaC<1tFelBq-o0vJsg>!nwR+cv;i5al_`0F#?d(kp+Z)Ip0+sOxjjftJ)SbsD_}HuI zx2MlpH3l63zR8Z`?R%Z`+rtsLw1_*6c7KCiiQ}8!JHLE4-KHj^-er5+hqE!C_l>L> zxSY)#Z>f78Te$k438TNuDw)t2{d5JoV!E%aR>@oHAy923JldM-P}sX0z&-{^RMBYt z8Tt2kx0Oi;*E|0g0gJ=!H_oZ-Y;5c;iRk8YGq(Dxr``uA=9jG&*Z0Iy`0a!x&+j31 z9eO*1^5#wC*FT~LstoV$o&iAOi|x4(rnatQPo*AXWIK^hfgBXM)cNqa?49lN7_=5@ zq~k^(@+D}3sWnT+kf{rDb;WS@o%IHG@y|uvdNkHQ`9Go1ee~EeNBpD%GkKq*jsNV( zKsewuKm-|Ba9M}wZT2|*s?%?OGqjo@%l`d9v3vsA4j&W7&s(CP`Jt4gYN@vO#3$jON5mqBL+?7n_$0`fZh2KwlPAfv5x## z#OxFwDkADH)@^@Q(S@GKvn-oX#Q1#*NVfC8m$>)wrUw8sw(}{PawWDOO<9UnbHhiZ z0&dPR6b6Y>NLan_Fn!Ib50Ab~mP<|JH@{Dz*U&jWVdArb)w(i%u~guDyqiyiQ0-p? zUpaGfst*9_xOw>nW6w}Gw`t+fYooqgkbfU-kxs^!hlKS-r+?adg!7b6_auG4oN^?F zx+iLeZBx?h67HZ}MNj9#O&lVX4r4CTuyQ~La`Hx=6k_9AwHwpW4*O9z%ZrnC) zDU6xyXcBQ~nIpj!z5GT~K;T?{ybBJnBOr#KhVnJ*yu=N6HqAtK+Q(M@oQ5L0fV_1) zV7^h0wW|4g9j{QFP<(4sHNhut0Xn{>MKRab^B%HC+Tv()Pa%GrSJWodF`^wx4*~SJ z;yNJ=3;M-sa_I7Y;yKgsMi!|gK-(@*B6-eQp89IDdgneBswr4`!03rHwRpHZP(R}@ zsB2T&^N~x0slA;>(Q5cGwCe8X9VR@0aB>DP;MCZti^F9OJvq2TwsLg?76J@Dw-Oq< zUzK|Zc<<2n{J3an;GA%?HIU0@?laX-k*s)LG1^)^AvJ(_uo+GbcX53~71 zarMJ+bohExV}V-xz7P(;*!ha$RBzX>WliTtZaRKGo$J`5d-=R#9VAf=U zhw`R!)U5XY15frlq2A&Kqlev;JOp7yy!GW%Swcc=Xg^!e28qN&)WQn906GF$S`^oEj>K3UUZHO zV11{7?~oaOS#!<5J892lpRC@{L;dq~9esRZ@2V2JsO#h7UfTDY!R+!!_;*%@RrIYo zXF$X2{^NC0pVA;Dge({~M~EbKG>ashL9A&91i16?Nvsy6AX0uVU>DVJUaXTaQ3e2% z{_A>;s}72RLCpq2mnZqpR^A`%g!;M}jjEUV9b)lTB^Ak4biN;{;{EQe@?uyu<5pcE znQU?QxdHj}-|jv`ERiLV-T|ElGM<&tu=534w zO}AU0e1S@- zt$Wt=wfXmU%J}C;=Xn%AN0A)p`(TqiyLz5`zg@k5uyk1VTdgJ%E=1U{c{zc;57jk3 zLdYQ(89c2R36d{i5f5Da+@HM(e3t{ka`(7lf@B1rD&7-13A3!&Ifz^mt~mTc&;5SG z$Bye{Hv#*$)r&j}d-Wx+@b@Rw@>}@cN8`$*)Fr7!QU<)RLu|vZ$S%zkUjhu2uEq~L zBqMuzjwOL?F9jte0w=K%9)2>?XjK@x%h62=MM#}5XU_0fvKsSYJ6E@l-)(fcHR=~Z z26f8PH*jiQ+7Z9luJD<+Zj<0GNl{( zVKg-Kbjh}q$xOj%*)=mr+u7530|Lz!9?x2lznNX^r+XwVs7b61EC!NoW+2QWe%KCZ zazrUP%uB&>=#5dIa8fKYV_&%S#|)$A>~1Hi zPKy?`%dW4W6s_+@KNcU5*Frg5-9>1dUg`@@O(s1f&P#Y)_6o=l$IX>g?hGL|=Zj!! zU)xZ^K!U)j%#mB@1<*T-DN9Oyt~ty)1oaOILBkX3*`-B=Be@RNq|>*%98Z1MPeGD)MDxE8n_az-yb=ik1Ex<()J9v)MuhW zdt_i76WVazL^!M^P_NB zeU}A}?#JErk>?;vDxWXYC1TlF?X_un<(ni?HO^su?Y^5L%bF1jDMZhBi)Us(AWYRP zuGvcZ8x_*8#)y?v&fJn{&`QTSyXp>xMEJ9gYCm2D>DmPAO8{&GzQWHw9Z>@lDnI5A zC8@~8Ug$2f!Pd`2I@&29*5GHT>XDFTsk$erUssE5 z(-!O!2Glx;lcJ#Q-zg;!g^2>}3|jXIi8b&@%eT~{G?~icy5+jfk4(()WjixFSCmAb z)(gbp48~TDmD1y55!7muoLRKVU*nsEp$JMvzG+1M*lHUVI-&$slbztkJbSkIf=DKQ zNh)f@`{aPZm@9W8A*C#{kW=5xRza>xXT|W!Wma|FkXzB59Ughdm;c)EAL;_^G;;1<*O_0LarAP7{*C? zo`(}Rb2{@jy4z1^U`VJy?2QupO!D;PO}r5AHPrav&D*l>iRF%o4wai_f!WDX8$+KO zM0)7lqQ~`#%hy*8t=PS+DSkad_xH#8es_vYsW& z?@YtPkMCVuAM;o2zWG$aMpv=Os)32-t3=>Fo3Wj4khaUE&eh|Jx2%qKv9eDZ*D zNmjP6e&-4`e(%@1TKH0&?;oAlrN%Z1Ym~aKv~E<+$WBW|avDwRVbppvR@j_J z=Bp}s+p}~}Kb)x(@o##x=7(?57Zj&SdQc~0$eRTj+#-qgsWG3O@onaB??-K0j7;1s zA4K90{w73IaI79G)>XY5ZJ+E3t|>#-I3TM{lJ+G_yneg04cA~=TV!Sy)y~aUyEEo& z;l5yR>&I;;ZT)eb_*LHCrs8iO4B6t)y&n+#B>dsuJQ-xMk(RZQ$7gpX{=>d>o1xof zg-s(uS;E?gPsE<{Yh;jhYO7tQZ2nGJ{*aRwuhtp0%r#=5&^Dygu1=0Ng56>Gi8%lA>s0pd4t2!f$wrX*?4m-SEs%8eTsS2wZUS} zerxtrJbOt9!@H`WwHv!{`XWIrY+?r98Z@Z`?$Rk$B4j$#R0}bw?zO_Qxz&}WPN6N~<3*T?Yo*eV&^pW8jyQd8D{O~J$Iw&y ziinrXhb5Vd9bRs$f|jfz3qGZHUYCuTw=M6l4eLHhuFuGy(crl=7vVD2elbX~hf5`y zJ<-bRjM7Np8Wy-3YGIj3iov=x!`^YzCEC?jI7?RG_Vk*x5gBq9+mZ>1viNyGUGca$ z3u@pp^?h=a!;(AE!kmX7DA%9ukUIui)M-Dz~Zbv0Z*~v!KIFKOkr5 z*-sl1WF8QjvTTVTdAc_~Fc1ODHo8nc#q6Gy=RSP1%{x@&;OZ7pT6;fo^fMA-ZA%vIN(WVb23oR*EwR#b7~DTD z6Q%!hnLNDib78scBfEclA9N49e=94mASWj;^Ga3o-sj%@-sax@-g@a(rl~Q`uWS2p2jYT>3iPMU0!KW*Qf`VT&Z`bOo=(hF+>?y( zb@rGQ%h>B3*3-kx+2j!$R@6jZvSR$yKY59uP)3a zuYd66#mAhI#-4x^s*3A!z1Q)c*pZ~aJm4QQg?#-e7xx0yY+1hjQ`#rXAH)Rfw=8%n zFR`;68p5zN)LU+hR8$UL)$ONj7w%jU2d0$|9n=*Hj#!mf^A8v#4t!65R@>M%+la}0 zpes?c)j#*L-e@6F+-Sw-*gbdehcZn%ly9e0=Ift#KP6fU_IsbL$?g4{D1CsI#3d%n zgV1qm_k{LF<8I6}g3p>yR>M3_R$Tl(lo=Y9oSR1{l@Mtwt^IsLVIEOx6jRMDz9@UU z@qM+!xd1$%tlxcJhM?u}%hcF!LbQ?BXaF#TiQB!F{^59q2s-j@%*MZ|0!J1{=rGKt z507v6A*x4nTkrrsK<;T*w-@$k?Kel~jYVYzmQW|+fg^Yo714kG|qNd-WcBE zwSDz{b+zg>z0iBdi(9)&h%>Gv+Z-wT z>FC*YRNsPag}#$nq{2q5527?xJj0hc7Y$0b_XVFyCwungOqK-NxDMd9jG^cp&A#9C zlFQ+UKU)q)mMsq*;7RReMraI6Ehk-#t*WvE-)C7=@sRcM5O)R%Z(9oeqInS%@ zhzQ=qN+^@|SL@S^rlp-9l0QvQn=_^UJw?no7l?dXw{msM(e|6?96N$WUAZWz=;!-m z$_}&lG=7nynIS>l78F2AV3=7iZE2}i%u8_yY`0Ss4Q7Q3_*?L3^!l0M2rD!t6Pucg z1yK4xmI1(T>C#{52Cv?~p-Lx6cD|DY7vP`>!3TB&c;V^a;Ln$P`|Z&@|Lr>TQ!t?J zt*0n<)yaHbSM8yHPeR8+>!ts3Q;&;)){9zuicgki-|3nc-H(fopFlms>`T6JuvL8j z$rsAvJGi8UsnSPK(qEijs~{*S-SQq%k8D08%*9GT@Vc)WLlgHN??Z_!-8;U*$6O;P zq|$?Cg$EiF1!=h6A|Ek&m;?K~snT{$y3d|q=c`|Y;W$z5wA#tDq*JjKYxXo0#QEii z@jrhZ9P`c08NyD|PrE7lx#dRerWD!2y*-X!jhwErBaL4oRI}iRdf0#s4MIt_?(}N- zp}&Hv-tm%xX?lFk!A?VN1!YlQ7kDw}DlmXBq3Et^g<~y?2BQpVQ81JgCj?Mdr zdp!E{PR>p)8%J){Uk#RUY??Rd64qtQnX%=J2fsmWPJV=lMiB8k8vyNC)wqRfXE3gu%>AMxx1db=Mnpu3`EBUj}Xk7jbF#oRSQ{0qDY+)aWu*z@sNx!oBpg9kWO(J_~OeM z31G2$vjppNg_BEQBuzv+oZoWS1=gYB`2g*01W~`;aH0loP3Idd1UnI!yfbQN4mVuX zfp_$e`0(=C0tNOc8r3T~g{HN=t{=WwJuP_i6azD<7# z<-f%zwlMyNwP$l9iJobI0GQoMB4?7l;JYiMKop~*)#9a~w8JU`URPn;@hg~!O7wW# z%wpy6PAQhnxbtlq(AA~#8Jy}@mrahEsXF?#CKv14|6ny7jXAOcfY-M$pteeI+MY-m z`warx4MnFpIMi=A$P;{#mdRp4w;8W_G()QPlIa?ivX+i4?LhUL?m$mX5edr|r4;FI z>c-^$QkM}>1R(K>2Z441jn7bP)D%YBi;%O4$iPg^0vI~HsdyIP9-I8C)jNkxLwGdd zM5aCq>N1_*i$BETin*AvI%4jA%ZY??^y?Ijg9IMPyb{8YISD+ti@yDh!4MN6PIGGs zX<$X^43Iw>tMK2Y;u+fXj8&tGhWm)6s&~36DmqsA%uN}ZVSA1N)nCw-Qh>|6rG}9C zzyXz4ZU~gva;*k4?*Vv5l&1C$fY8zjxI0BPOKVcpU1dEM@n6pV2({($*O0h##k`ob zTs{5GeEaB{m0M^(YKttsBm9db63$0dYpn7wi1rDrc3Z|IVlLb{dm^GOAMt>WCmbtm zIiv-jezNvO8dSSzEz}t9kr@_rROhT*Wm1qmS3|4Du2YYz&wO z&gH_qz@$)4W-jAOO@jDn8!lrz6ZW+;rf$m%H8cG~BM*&+dZiR}mO6NoXv4VnXU}NK>+#G~JiQaSvt@H5GC3PoXG_RhjweM6 z)~!D~B{m85bca}wArB)>lJ|c2JjROB=Qde}r_7;BMQttQp)w@!cC~!M$;bs_BgdZ& zu?(nv)#YS3WGTF0e;PlyQ3^5ri`fe_B<}f@=y4|an-qQU{bJ`R zApnf&sX>6X3`Yx20$Y4|6kzcsIxQ+722@&N`9j*u++vEaBq={REhb268yz8jLtOUN zyS>rMIE_Q#yZ9)a78TXsFB8t0$ye6jxL-PLBjU*f08ZsUwdWUJ;ZMz*nf}xvY`qTG zwO?pRvHl+a_=){S`;s+PV`w=`X>d8wBYe$V_0JLbrjLLsGkeL=$(>0wNIyfgx}!q87V*0D zNuDA}=Znso8+VF^=6p4O8f{X62xFM0l??HJ{8BlX1`v4janE6HQ>+Gk075UCC;^XY zG*Q`EEIcYf+SyB~X%@tf^x0O%#^u;- zw;8H2(cM#J8K&=P;Oy(KPL99+dg5fbW1>tIk94X`Bs;6MSc&x%v0QkXvThc|Xw}H< zXHoEHRij>RIhI)J&^l_=)}8Pd7aW_F34l>>xtyIgOV3vr3jhmm*HI52rz)}LIj+u9 zAQYNADNU5e!B6*5o|pPqNy&w)f#dTXbqkSu?yW76aJT8O+l%ex`T@#ML0pu~NTN!> z$`jH2)MqH{2}~-5b%JTMPb#&~fWiy|np}N$RkWYmp?Z2RtJb{bsoq&PVDxL>-<0i^ zbgoC6E2A!1GT?8Q3J@D{6pP{~KDLJIZ&{ZF%uq2tf(Lol`$O!`cypGf19Yoj%qzR# zuDZ^ketZ3>^X?WbfJ@Kv!l;2vqDb)+Jk6(0QZF91;-0=B!e0ki8FS=*3j-p$&n{hv7-*#X-j*Ew^uhw1Y-cj>m?(=nr?Uz_5M`S@@LBQ=;q z$PT6|+>$UrUp%vj&xew=OBa0`M%Bv1SZ%4WI2ANzK7}>1H3eyWNw-k>qG;GssOd*4TDgdC3Z4Y9tn#B!lv-4u zNMic&Y0}M}>>U>OYqJ$IA32FWVHN&*j~-LQb0k^c*S4FJ+duKNn~k2z5Ppc~H8YWPS@HAr__dgy~@2%kEiSXCMnAH%Y7TIPdlkoJtuYSq_Rgpk}|y+3Rhj#RlAb>v=UL63gz zHt>BPj&xn+cdHhctH0h!?#-TKD$V=2MX$EK<`f|=IaPwfu9HAt)>=^mg)JPjU|FE| z!zUuN2`HSDyvV-$G~CNR15HznHQHT~X-01^esAmDLjA*Tcv2}N*8^+wz<&LO6ji~x z(fV&vp3rUhHBn0x?F$!bndIspdkC4jiZ>z7Vi51LpF6?0UO%BcY8unBHH^X9zh*s8 zu|h+#JvMr0yllIDDbL@P$LsH@$`l}5|1-S$gghM@%U=wDXvI^8E*#k1_8Y;vI zW^b68B5aU2`Li2yGCuU`lW{**5bPy0H0xDOpq1c7<$-$+Q$98AmcJRi$(pB4f4Tjd zp=HTwN5UNZ+JghY)0(5SeyofK&85Tm$I0ORAnU-Ndl?V+HLRBK?qOj&PJy03tA}xoeeCFYvuaHgJwp z4Cvey25JoUAH`v^lspQ5dbaD3Qf!fCTBY6G>a!LfMW%=B*D%$5%%`oB?J86+^QF#~ zTkE!pJtw(tN>|bWdLA3I{mm?!hk)6o@&?t{r$0}v{$QSGFJNIJBK3(zsI3MqNArf6 z5;tLp&#V#qO6e|-xx>B_evsbDN14MrAM&Fpq?yO~sC@6UzaCS|fAM}LaHLi#?|2gC zX^GuTpZ6s1@o1EVmtaO3y-OUtv;_jX)`6>I&H>xT_47?>vTtfaE2IZ+Ro{AY3%8N$ zWdTVqp)=MxWjk4tRxWWYA2*0ALha0GxqUrqYvN0L99!U`#94YZ#%|^8Ni{hrz`YaSM-_ zL(3->Zr6UK(GBfY&oECZjWBTmSkvYD!mv%{_Nt)Z(9Coz&CRX8$!YuHVI9Tv`K-~V z*6sI@33*LZPSgT}oEK5)sr~7F;ua}08B*seDTyUyf>kL+EoM{3=5-U|y!P57LKXer z%;VWY<01>;-~PfAi70@EQ!=Ln`biU2ThfobqrUmkm6hP0#$3&3Qo9vqGV9GZVzM@L zCd46`DLhQZGdjmu&V{J2+SU|;uoPC&Ut>Av+?<;GKBdfzPvu3Bm(0&GdBvAzCe=|J zA1xx~>Yw{PDiW-l(7qBMFaEJ5QI93+lNgwkaE_O6^{v@Mb6R;04zBqF0qp>c)~Ei^ zVqWEW^Zag#oAiM~w-vVo`mM9?xnswXBliY7q~el`KUByOKLA;1{LA6}MmY=;_Q_l@ zXHZibxJJQgBu6OhjQuV3sWrCy8}JNeKoOD0$Q7Oz@n@j~Vmz?qX{Ss03u3VH+mh@h z1rdbZ=?)1nT4oly9B<&vAAeEmBL=6L4gro4fun*CrbBG+KRwAzuh0#+Di}WxJyL&G zuAvtV%UHraN!DE^J2Q-a>B8st?SS{xq1~BSeOTqn{ao+nJXtrp5^Eq)myL{oSiwj> zE;+e;R&0tus?}0;Qz|<$$$X1*(ae%qQOhKiS}DE3XoVbp%z^HpZ?)m)P!f5a!juI` zxwPJ#RMpmrI`%jmxx#NZ>8!8Q`y$j|CKH--Tr5ImyE4d+(Ly~n2^mQujxR^s22Xi7 zl6ocawF6unECe>QD@7(Wd!|2g>8+;uz3yz z5nO0pfh`+64I+8xGoX{dg=o}%y737O7rNR^G=c&#JRs6;2*6JLn=#Qn50y+Mo>sLz zcfOR!VV*Q@b|9LMQF}jg(3_ZjHJso{V!lW=@4LBP<2%XLn5fO^P+^l+Af9Zhb(PXHre-keR&l=U3!bDMc*pFQWU0e6?oy@*AY*DxuPBE>M#4 zV14^@k^LJ+I&=r0_ZsuzWD;g7+B6r=)-BHd6J;^ww#B9aPebRD;|F+@Nnnk0{UZwu zR^*GgJ?cF}a+b+uLxIhK0*K|2`K@jGj*2rFu2ED>Tv+McS`m*dUOtL_lxgyzXtMu->2tQ zoNk9e^q*$1<9_LNP*F*G8vGm!&_V-!HP;&tHY3WXm*E1O{E0@YALL|chu|q0Vi3qZ zD+?mWLJ=!|HjO-)Uz2|{`e6lb=CXU!&ytM9WVQ-eZnXE08X0eZ)_tdpqLpHV2Lco4 z8of2LbbS2DtD%=m>AgQD_Iq~DdY1^3Ed~3p1I&kemmQ`_D&AR=wRB_$xO7kuFYgLW zp+_uxiebGlR{z{w(;meLc>9ux( zlIoRuncKt~{%Dh@;_w+v%T~uZi9I~*r-4aYS!H-g$?MH0DPJd*jgZ*6A8|y5o+;ER zkQ6T@ajv&lR$W{7g`;uSr+3SL*E963`!yKA{*9!*$+sb^ZusJQ#Unsuk!={Mivzmf zm&5KQM&M##N{?89x@`=DK*m(_F#wUgC7_=GFzM<1y*>}O_Jhj;0@xWN0i zC8CVDI%302VA>^S5D;NvlIZpIwkkArzyX<;x<()E-5N0K1Rjkd zD9D2QX)`=P;&A7!L^$kcT9i&SwS7P@`(cv436~}!zfFQxg$vsC>!-1ff6r{r6-~g| z#*g#NAIj79bmB{QzxfQi=L2p@N-8GBuM*VQjk^j1GaGzsTPKgx!VYM|oDKtft4h-% zY;mc&FvQ&6w1oubYD7I|aF|wbcg>WtcxFiViJ@YH4OdZbQUi;L?gHXctHGM9cg)m& zKlBqDZn&Xv&EXPf$>wNr|Is4z%<;EgMK^UWVnhBZd7cShnL{-izCjGP{9|?6()!0C4Oq zNm*Mr`JaR|N>NIpO9K7KrSK34NN-`JYE(8S%O`2hZw6uLpFq#>X#Vy_+Krv9eNcUY z=J%&Y;0uypY{1Iac^B^oclyw*0n5jS#~2^D?aK;6pUu&ktH-YGFM8hmG<~n-C$wtO zv9HmpS>gC$-d|7Q`WJJfMa732-T zLtI9&wH}#$v$Y;o_#(INv)F(Ly*g`x-j}tF?TR)yAXP6rKXjwFR9&d;Zblec6p z@7XmS6qO*Z`;v=7NpdBY_KD{`mq!-(0X5}>NdBy9QttZ0$Q1257gfg2siCd84pOJ* z?%Elz8~5Urd^EF0H3|b}W_F*}J--FwM!FWO1UP%>W1eT&eGN&PDu6 zw8?TOZq^4+GTL_0Iu>rAQvfwgnEX|bx~HwNQ13`0PTb>2o0zp@9h$|sjAwL}Hf8k) z>DvU}sCpH`O;6n?Q7(ju&6J)pCl?m&I{UapRMJ^|n|#$>lUk7^<>Ac*{Ti?z;zmOo zF@w6w_|7(CYequ3xK&V4Hhqg$5yQ>RBDEdSs~294d$OxnVHDOO9=gE2+Vpjhv4wlO zlLysKF@DMsKK49f)=~i?xH$wz3F)L^3EH!}LLM7lA_Mx6Sb#9!Vq{b$Y{bOx^WPzo zS7$g{#);bc=We(%ltyQT$E!|Fia9@Ae9I%wL*HNX8_@Lzey<=%4q@CHq`1hu-J?bJbR1r^gD9>e5txKcStw96h>3lXs&Pp$RwkkYg^8iL zB#Xct&ANgCxcKUR?ly9$rzyCz{>#hKc`^pKYOq#Q)cR^GZn7HV9JfuK;ym%#L#w(W zrSVnEiAP`U?ShMM?W}y8v(97io=VGhlorx0#OLVKw!#-=5y?uME)B<0=}^^Pk}7Ru{g0L_!XR$KLPzu-3n?!LI7>+YdU&lu;w6 zk_lR3+DaNmo3WuGwG9^6x9?6$i970S9KI#wzwlIlIgR%Wx)xUY?q_aoGLa?OR&q5% zZM>Xb-I69N32O}8ixRkW5S+aGN0{blQq)y z@&??CDD3B_nD&xgN>y-%o5l)%dQn-rjFxuHwT9~^wL*Cj`P41ppjj*BG8{cpN>dUC zitd2zX@T%6mfL=wZq#B?n(!RqDiM_)vP%e!H67^u+*FF{s>ZsAi7q6bDaf4B$l~XB z&!+2dd;Arldd&?7kz2!^-}DuvDx?Zc-`qnpzHCD-V&)cl8|9m{;HPZZ`74_EDHN8m zkyeYpElJn?Sndd1yo1KkQGnO*;SKj2FJ;aXPjk*sLre9a->8>5r2ZEH+s6l zC<%P$j4xWWytPYhxVq@8QhPx^KhkwZ*4L6!0zj^1Q^DLqZ=jO{byO7JAr}0f3VT`y z*0snzXAI-MskCo`@<|Q&(t_d1IhD2!LdyFiG8k*qz>DQ;OCsLYKMuZVEABqmHCa2@ z(c?DX9Q_erq2K1}A*|Iirkw|&D_MCN9V1$U*s1aS2>vS{<0jnN(5M`+b9IN;3p6dS zc^Sdu%oH81!^NTjf1Mhgd4GHwf1DZ*?<#N9!#=bDdw+w0%!sgtcbM!e&RXeM?f?acA3U%k=j+(z`Rk}Y52|rK;Lk_(@C8eg2{qu$ z7~D~+H#m5^QE)Z)*01lxe1Q?@#MkB)+*rzJ*riCRujc=#6&-o!Y1q22>+4&e>e|(^ zSlY$uZ&N*Z=aYpOhmHCw!i?<&g~cNVI}(hgwl5}T;n`&3#ZU2B8PjHV6BQ)ED}90* zgWYpoi2BdFxeaw?2`9M>B}2{MzCd$Ee`G`pAbl#=MTxcc$<&xbYXcHD4os24($|xdJp)IM!a3u zen7dwtLg7wVoQVncf=?4-W>@LwIJ6f%ZOPi_>7*)GE#u?8iu_xbz>mTT-&rnV&UtT zQEzYC^&J;J5e*I~78KyOvN5{7xjCp?eY#_PuopGod;M{C!H>JwtaG-&a@h}`{fkTA zR6b%QTCrK0WHOwn0hxl4)T3J`CG{!iYPfGB!~*_mA|dBRL!5CE@|$q4re;kjkq94i z(`ySwLWtodJ#b`Da*L-|P~QxVdqxt)&O$AB{8u7!S#fK*Y~ai%>d^JkPY`-AX$J~l zyr)B4EMv+Yh^&P8;7as$VJ1y1(kv-hs`J)~Q&#W}PmXK{)Obnh9>_JW=j6wuD3Ox?zIKmpE$oIBIu(MO7qeXY{Low0i z-130|F^^*tF*X1Y;a{L98z@kJUEb?!wU@9Ua`hvP7i7tPbAVVr+Qs;V(P zm@bf#GL{xFvN#;L_;HAI&b>+mT`^a=<#rBb3auZiqRlTE1grIF)_76@&Z} z4c|w)8UU% zT?V?%?$4lEaY=hdgv~=L)Y#%%#>pk&N3tnekc6pCxTwtqg_m6LWf5K;w{{~H%>Hzn zW#L4<^nEy;cDh5am2MOd_Z$#b$<`xlSNW3wM3r%pCzxiB#jpfLEQ_09W#$ZgUW_6Y zrw8t?IhBK>7^^}(+i5!kglOvBdS2WO!#q*H?niu>#{}D*uH)h58!!v&`SZWO)`}t1 zUI~7meOtWHT9Nbxklr# z|54Lf2F29|+j=utu;3&R+}#N-2_D?t-Q8_~1PCs{HMqNbaCdiicjwG^&b?DL^ZuJ3 zU0b@=dU|z?Ne@h3CH}7o9d@=OLJ+icq|2U15?Tlk5}Ry))0b=)9uo=hfZ?QhmLcF4 zP35Jni?g&QYDU4YFf=P8Y-aVb4J^gY{5m!rpJic^SjVKfr*OvG-ue|Kj^k1V#aP&; zMO{wUHb(lSm83*DgnRVHegl{KXi_B!=3q!?XJokOY4{~-(BFa>{ZVmf@p{ezuF(Hz zt0hjFkb=GFPBPY?_6jf4>-p1q%G0Q>%^Z;+;T&9BQ^`Hqri?jtkT7006MHR1j#i8O zEB?sKg{be<$$NrKY|Q396q*E%1{iNK5n!G$gAW9)y#6tr{jL*@MA`x-g@L2ahCl($ zq~C!H8#3_Q=4q)=hHD4D_D;u#fIM2ikC++a9^&iWgGcKoZ`R>K8m0-E2E17|xzUKF zP&2SBumRRXSTG5%^1vU9*olC5=s(!#Ah6yjkT zR{@(%jz34Gh2*nnS#!wse%S{9h?CKm_ZPFM&i&pcKfS1?cSoYj6Kv23mG7G zMT?8LWeIJFfDDwooE^1Ww=Lh*$g3FjXZAsWkWob2h$T|c(jShZ6VAy>dNECYipkR%zX00e1&=S4T)O4?X`Nziy9g5X+v03 z{0T*MLqP$V)|0A*ZMuXLsT7J4jaEk6hYG1C`L;3d1vY9WHa5ZBbriq6+RS`lD|sZj zVICylSZ=}m*EYPvHBaHxQXB@$6aP?aw6E7 zjfVwZzvk$aO!b}~shAzD($&(SZqHap%roa#v05(8mZ~|v z@-2o);KnVppXwdvfXoT$1ed~%m$-YD(dNT%i(ihO%o4^vU=^ML;6id9c=k0V4GY@$ z+UbrL&qURPHQ`=4*KpF1jSIV~9r?T|*`r7`aofzDX&b!b=KJ8i*Jg3}a48pZ4cFO< zfPg1qP4zJx{Hbv}(gY_aywIIy^A!r{@txO2jS`^oOk2GhHYLhQpY)6on{|$bp^t|F zyzjRi0z~>~?an>C`ZCK)eEoP=N<8E*T3Q$u%{5FiI_TDoZH`{dj=e4fj~T3pGGDRH zl&?&9ZP}m014pC&q=e};rrH$X1qYl~`>kAi$?hu8#SQn2o{MmiA4;ew5h@GbKaKqI z@+|YWl+$%ia$z|BHkb^ZCzPca6I4>dIzw-wj&HoOx)@B(B!Pr4*Zp;o;nug-{AgO^Zpq+%Fap) zlsV^bMBfmtm$5%%csNTnoNofi1N~fT^6B{a3Rrfj8~jG)d2qspLRnus856Z$TG}=% zJ5V#Kys4Ry!6MjMIGrC0gv1?4<*}{V09~_EvWP3APEfg9pF_Tb7~IXqGaL|o%X4rn zz~i$QTv3NogKb@m0bFdO1H{rZg2>vJ*=}!VGtE!4y@6gG`a?@jPq+C-(zoT?t;w%L z5bja6eEsci@>ulEK(522%FI~TJFqwIliXr@OmOOOAnUtc(Q8!I_Xz~fpq*u*0ieI>PJS}^k}xR@7eQfBH%dPR`%x3k^u`X0)AZy;^IrS%t4o@j-o%RDuJ%&+ZTbVfcmuL7lcs zClAln+3h$RJ83W01(0%l7fH+5*OKv#=%M=fwSfh8?AlfhZ@ZmdQOdq%-tmV0<>mY@ zAJ1)fS@>(06K(u{@E^8{p}H5}eRPrDxzw_;C(@bzHBeqT&cm(d@6HX&{YYIt-L6gJ z(T0-m^)n(Gkt{ASYCoBu_m}MKA@$$gAGYRBlb9M)E4ec>zAfEnZ0Q=a)1}{@kCasf zMMu-Et|D9HQY?8ecy134PF%c*3QgrRW=U76U@;c2*X(=Q#=?;p17`Y^c{$bW`eLq| zF4sAxmeQ@=V#}+QmWMtwAsx#iO(H0i{KHb7(Q(J&5x3xKG@mnAsF53cGt*wvem7G( zqu%Dlani3zq|nkxmWiqvGT6#b-V#pRf5}HORucE=>jxo9L3$eis3?IP7tr4}z+GZf zJ)WB6>(Eg6%zYPNW|$$JSd?#!QBV-)rUvN+K(!yoo!Tc;3G~YR0=cv()$162JBca8LBLF`btd z?W^MSwtDcEuBY$tJb?#Ke=ZcY)UF_zn-$9?jpc`VlA)tE&g}frZYwp$yU5DlB-jdB zN~h-#LTt5&?2YC6Lob`hQ1k?UNR@BikdiSC2~BCU$U{?2M^OZR@p zY<%aOLCFoF=`JxvrRB%fkv2e~Ai{pdKv`a9>@Ka7WmJgdeP_NYN-k}4b-Q!cEyFGJ zZ>_75OI_L%cac?4s$_G)<}QI(z|V&b{Go$AKdM_|k5ib8!cXW^1_iNdgg{-3aqK|7 zjRUr<5+QIj1h9@53e_BKVg;!|tm^QDeiiRp}7iS`4qAm{*eN^d#0jjsFiUf)0aro7Y7^X_*E59A)D{P|iZ zswL2_wSE{Z#$OawX3R}N#_^pm?UR>SL=|hQ@pD8E#?hgJolDc`ukQgG2_jQGh-S{f zmZ|ZL@%CpqeX~CVy;EJo%rHvw&e>eVwzI~39Ei&wwWZ*!gjKO?Q$V~6*l|Zc7IPv| zbpm7y+c8*G>WpE|b8GBWYQ3sGuVnkNxHV*U8hL&gek6C0+QZo27^KlSbe7|x!J>kd zlNC{8Dl;(@M~)BTr$Vu!;5P0HS#*){xVm1kW^;lXrKGgFk8|^+cP&y^UFtj|m#K71zl&A;LNvqyOC? z{|8U}hqCM_x;@~(|CKW|(0@05*L$~>QdgCMG*7M&?ZE>ARd~*c^++oBuoIU?=OmzS zlZG)^g{ot*yZ}IZYj*tU>sF=OWJ5dZd0VDUt|u>H+RyU8Jq&C%a}7Xs#CHu zxmA!EL_aNfsr8kY^OByHvi3^hNcoi>bTkj%5N@|MZxu0WqYsW);UwPva$7=RbHUpr zr`0+tWbL0F9kC?7Y#dru0;fFD>g*;D8cwTa<}t{J<%q7bqg)z~J&lnA@<$4SDODDG zE|E^A&Aftgr);CF$s;>9ACYhLUh}^6JyfjGn$xLoc-tkS3n@TcdAy&I(ulMnFyBZn z6hqmC0czmnL@O9pwUjy(wcmW zV#V*-N6{W6v(-H6fM!Ows3h^)1)`-fvp&)1UyX zsDi2!frtbGo9$CiPO4sQUvr^J@2e6)mX5-S3=ESvM3AYQIHI;oxQ>Di4D4OAr3)|x3g|6XU3Jjt50LJxiU6(gIlv8* z8j*`jdsL-Scxmy(qlTKjJ!JBXS{Me!Id5y?gr^&zp5_G?C!4E$=04(g_+=T0I>DxcEcdIOH=qtM804phs2x^m*yS z1I)P(=W_9fCF4nMz{okgzJ>$k80)_$Sn;?l{H?>mLCj&s!EWDL7Z0Z3#M)Yr!Ag|z zx}@D)rE&r=`kLdeCH2grHQM^JJS#j$lK>@#-(Hw=w5roa3Fx-wQ?CgBt^dud*fBIT zUzW@ahBEdy`)4ua%Na7&J#tHT);jE)GKQOHm9Zdl-E-GCqnM5m!ZgL)_Fvab4;*KmEF zo~{7q?#109q*OCq&2`eaY#)HRh43Y86~QlC(BTaDJmcSav%)^@Orio=ayvZQJz*6B zDI77gC0`I~a%{wxzbaD!AV>hx)~-p92pT*aG7Ii`V5(flUB>Z3Tm8`M7`1wK7Bo*m zOK}wcf;NSw+w;+MDVc1tx88`W*L=7phxHlTgr!+XKrhE^HMvqXyAn}k0Z(B;pAtuU zoinQDSx3IOBb@VJ&xZ0}y2X|#r2HswfzaGN1H@?bBdNpzpF!xqs_gq+nBs8cHF|E| z|C;Kwgg(}NqN=g7+fYS4hGq?_vyx#gFLZJ){{adwS)KVobx$cOM!7y(Phs*+YleEP z$U!`P1wo^wdFV7B+3LIH^t3sk?#|0Qrd?mt%N#lXb%w@+qUCQ*QsiI4e}L+pV)4)y z?JzqxVS&qm?BpNDhW6-yMOb@ts>Z}PqRI_!Xovpboi#ou$6E3J3uld8rEl-Iu5k9- z<8dkdDqZt`>r4ruhf0q)AUJtq>=T;94-+;UbPF%Ja*|qIfzxzYB5{6T8zbN?X8@*H zoc~_#{wG!YFmfW<;`&Qw1DCH@z`H>IwCDr0%b(Lc$ZIoiZ+bvq9B9RaL9Bw&Fsy?0 zAjCTxdWcw4G*0MQMA)lkB?Rp zoi!}}JE#-c5t^d~YSKBq?>n!kfaAT2rs5oweijr?ijfVRk?zgnr- zt?8v_68c?gnDw}MifV!&Q5iL-*=RBW-5Cq>H#rdjPdLECWjtHqkKiuEi2PCGo`7+J zaN}88_T>^n7W%MrJa+rIXtSe+-ubd;9<<0s-tmc7aBF3-A2mTz@c=33-Ja&~WZD5KR$yU<6kpt6)lN4Oj*B#kx=GH;Zno}BMU0;=p@GXDB~VnJC% z>Sp=g0fQZ&)+aXIVMW1(rth`?s2ti;k|onP``XGjhu8zCk(M+jkC6Vr!A}kj_cmdb z*vD6#w46`5*~#4=I#G9$P0m*%$SQs{Ju@A<|8zfOouP1Zfwh0c@yMB0pw-$kVB+cM z_=jqD#{tA;)^kcfR2pZ?vUVZkTNz>kl>x?vN63_I~n5f^;2~5K$h{*Ic^K_%Ny}RG{eWNy%KVPHLskKLyTu8ty)hx->m^8TeV~;)>g4m${>3Tg=WPIaZp& zCLFce&gTb6nE5#}ejlzE8uGFfglO^_SD@<4@eScIPrBGJVQg%-Z)lONXw@51EV(jFIap z_YIHqMHZ^rGPa86=0J-5j=YL{qX*PusJq^m=-l-n&JnPg!N?=&R9my3Oo`(JO!;U#76d; za;vV6BAecl(ubGJhXJ?1xTc9v_RTxYyz z@Nzg%D-|KWll@U-BLZ*!ZA)v?lY7f&u8EGpIBrj~Q|k3ckKHirmMB-BKGw%418+zU zV967UpY9;;g+mSf!;=Ehl34_KmCp+sZ^_45-N4^r+OdaJm=UvMp^Yk69Q>NAB|mNq z;WrfpNS6^FhmO)I?^-O2^W66q0~};;;)?TJt+UYEtfp3xXPb;&<@Vnypd8CnGkmp? zW-D=~XF1{>WL4=jRDo?Cz4^s}c@(f1C1=|m-jpK~5okA~E@)QJy{?1V> zHnf@KpKzhui?tIDMIdZCM>Ef zH{IqwljpoeNw7Nhw})qTwmUkonliw0dIyk?vzNmz^$cbQ;Rfnyy=2wU+8k;yfcMKc zm5ROBzh{G8g}u!&r#9k6U#nJGu@NMJH&gmfSi%k1Gae&O$_t1l;|C4spPqQ2;r5kQ zL_jbrO*Cp9NbLL?2uP>%2|d5RT{ESq=9%Umfs^u1tNXU~Dvulc+catO+>o|n`NvXl z;b=~EX+F=ArXN$lqDFQiV}7n0iARVw#RplJvsCFi-&{xPZTl6};W?I&YsKLGt3s=M zOOckp(8stiTz%XQvcfvO69|*C-c@|8kpd2->8^_hIResW7x^EIcjtcLw9fj~ zs?5|*U6yA&4M?0hYLa)>=9$Kt_JayL$r{Jx*Y|3)*eoQ*FI$p+Jn8hXd-NIxVfgUy zh7E@27+P9tS&Mi3o1(2c-?a+K*?gNChmnNwZT389_*=05N8mH=`~JgdnrDzqT<7Y{ z1hbqh^aTBkJamiYFDPv3>QC-->FGjL(>kP|esGa=f;#I>1~-r-O_4fdpcW9gOiHRv ztKdFLK+8`~F(cxCFh&Ep;~IAoV>v;4q66RIA((g?6=u(e03?5=bFR_*h|vvfMYL{OSI_NIO&amF}fU%;R``TU^6W)IlDR67~9$BHm9+Vv_L)^N>17 zHb3b`Iyk(8!VM<>j(3JS9c4zjOFdcUVPQ6RLd+I)TH>W6vzMYl;fT@67nYr$YRX># zx8NYGYaqD4GbJ&5v}+oAd-PiU6H&e;<0RDbIcq@oGI(DGp& z)<-8dGFLOf{Af2eXzO%j;?~R&yT8^Fr+|!Qyig4CplEGqEDUQ2cOcOF|7kEn=a60;^7$`V z6drOiLZKp3K=hUX$Tw12LPkbjLt9;4T3kv-N=8#lLs~&vMp{x;L;Ky&*Q~S#>5|>v z|Nc~+67w?@WVE7#H{5w(l`uUV?v>_E$EN1?_VmN)M94QG1&ETrq1#rZab1_YiMM@!oUfosi)tyO4vPEV{5VhWig>~$;OnG4 zIkNJY{QC!6Zjz+w0d{9wPLN@;IO<23(>p$7J>rlhT>VVtEur{Y@^X zx~^eZgTjKZS?VK`k86X}uyjUIR|h|@vYOnrmvt_vE5cKA@=ZTiD}B1$v0y3-{7YG` z@XUJM<}V=~Ij(td8mhpK0g1wTJ+l>RbC`J8%P<3=o^rKeo%G*(7{RVt*y4cv6E zz~)@dDuR15&D;#?2Zc`FLD+=a{Vf zvq6&CqE-FmV!e%4*vE5aG)4;yfVft^kECsOUaa?`8MPXp zf{3y;2}Sa-QRA!&e~pc0jMfGVhfqM)>oese!p}n1|Tv!cwIzi>rIGP>qiZDDrpqFz8*OXcHr$!G^2@cP7TYCqZ&mg%+^w zk&P`V@6dc;BA_#Ay`fIU}2jjiErqhBmT-nqwZx*wg($&6Z%%J@MVEJjSM^yj_gkf{4c{ z#At3aTQm14c3!E^;%i-!SE{)IoN{x^75!v2{cYYMBr9Zlz@gPM$VH40l_S}H^Kbff zsNTi{-k1AITdS9`UuJtR$;zi`hJj3$*F5&t+QsRxDzR@_8q|GZE}gtZ|^3 z(41qiyz)PAH`TUeTniJWOpk(g-Emw@6TEu$GYfbxw$2xx4@rK)eA&}B-pc)4oD`R) z)cEwfIrj8n_pMZ^FAAW_+;TdcyXN!AIN9*XWxR^Pa}4DVN-^Rq`?M$RM$u@VRqI9Uv3FevTqwNdFGYf!%s(KEuI< zR=EaJlxF~fN8#;R#-I-LfYF#H@XTXl!FV}K4VG^X&u^y$D?8mfeCat&wlw|CQnqqN zCf{9;Sfc25(vxw>{KqXH8URCI?7545@Dt^L#~ZNjS^gz;$p zz$2$AKW(APff6j9YXm^VjTwOVp{z;&*|LMJiZR=q`KKty(R!l&xfA>1}k&S=U&FRD} zUi9r9lW#Kf5d=tI4t*nbCiz>R?FoT9LJ5-g6o@+6=0O)k889dPu2z@i;g0bq*hTHQ&OzrlIMw*r|DC%reo@*Kvy#BxW0_0 zh(-M&K+mj#cHGC$R?wG%Rj}3Lx#b+G$I{Fet*?j`MF;{4!BJFLE^3gMf<==KCRhh}PPnHYj26q3xqxNb(-~4|0 zcI!R$>UsS#e(%WxYBlu&t$x;!K%}&z;l!OPVbQ~i6^=ulC>DW0@`zBG(uMJdJ8g>; zb99y}Q_Q7Wc?uWvk*KT;Xn&1o z*?^JdUv|@sn+2q)KRDWXJCJ@i&nQFydsJY&@-k^0xLD239n+z9=u2d1-*pr8|IEjB zZhgDknXEQ9a@pdgy#Ku3f>BmIxihhM=cQ9)8Lyl0!JD=Ss#p1{iB(uW#gT z=TbnYDNTj^@jFK!PCuU1&yt=U(k3!&BN`vOf+nMRJJnd81NT8VVpD9|mc@=(@!Y8E z>j7OyVF1I` z<bN$yWc1LhB}E${nM}tfXE$|VU`f} zjI<#t2xYjYX8GAXdumJ@JugHP@J9BvTc4*1PFiE=f6r^#nSuXHwQb)Nlykm<1Z`%K zUYt{5J9eg2p2ZkTy1Xdb$NbS&r zC~2&+;)L}{n=n|%3xxSoK>c?H?@+2ZlJFZTLLtF~HdFGcJ59v_<_sBcmNxojcJ`Vbw~nI&XA6Rm{uFs(B-p7oO+8oO-x0#dgi~?alhA|rG+cT zY|v5a;v9zH$0~xQpXW*ud;7>QCK*u3PcR=p0+H`kh4MfM#z$A8PL(ug;LJ22Tuamb zr9N7w2_$J8&;JrVS>xO(afuN%KCp1ScqZMOc8Z^})KuN^T!&6i%EfkZF^))2>JKds zvsU6mF(dgc8?O=e%N%@&ytb1&NPiKj685u*)WLme-oCQ=&56q=FG*(p+jMP;MC4#2 ztEbWKOF`22C`U`G@nCCPI0-1wC2A}bpBM!^7!lUt7R9BHUsfH8qaIa1PwNBN#0%`3 zZpWLnnoy9!teCi=+^beD?U1J8;o<~8ax(U|+sxrROF`@#3dZGYcUa9F7 z7LWdXtrbKDAyn_sZbsgr3jNta20t@_Z*1D)jG+<+IlR5U5eL~PPd)i=vnmipc4V*K z@Q1fKx%KJr?LxPwjZv(91{2%BVu8@1c}jl4g1d>$i|`qE*8!@k1|g- zudl3Phy~hiO*0psYaT-kbVXTetnF@i;`VqlOfpD4{fYj)KJW0F7y|7q_)`w$B ze@hai>H_q;jNXBTp~a{dsIXZQO~6=JrjU zQgNN(0xh=I;Nf6+fcOC zwO(SuEdTZB+DM(K?;EF{-x-i%&faT0gASX?jD;aH^N(l)I{)6x?y4oT{lVhR-szSB zHGaRb;MGrU)O%t6qr$S7l|o(Y&)v_E4Nw<`VYbZ6Yoog78QUc_y4HW(Yr0Vt^v->_ z`!$!1PR814^`4_og`22GXB#)h zw&1u+m`uWP50~e(U`b;oRX~BFt|o{JePM8Cg%?Hi^%YMI3bS`C?K+`*3H3~7Ne9S= z;_o~7W^M5&Bj^;hWBOA>J{fTR+Wm^$d2?`kjsg)3rq!uF{GXNp)BX8>iKqY768>9Z zlJ|X^8|U5T-3XGe83;N5`!#>Jh9qtV5o(;|e0YL7h2{IWTpCE!3EO1vCbQ3v8t&d= zXA~Z(U^l5s_R^IF14a`CfFvJ0iW?oT<8<$>3GGj-BXjNha#pFsYeMQ_$9|8T(3RTk zXaJZ*P;Wec_CB*?EpAm~t@&C*lo0h*IiAf<>M)kC`Hj91EH5#7}aG=l?^ zcTPW)jh9SSOIcGFgC3E7iX&_=jJW#2q%n35dBicjGJi{nf>XzVs9Mn*Sw?a>#Q0k@ z2TD|-TYv|7KSDjy+~03fETmGR&c$X?X(wk@m*3?O#t+-tONCM`#(l`QQjA&22AW>9 z;-5Qff1v#24lCse`dj2rCnI!;DIN)o>ftN*)zi$tuk+1a=Lc>*&C<$u&$&)dbg9PBFWU0pK@ z53zASUuJ3jSW`@o4=n`=b=>DX&GR{Zf8**wPhcXfHsHDcM(%T$qsx`Zx7yHpI>@_x ztXd;oNh@K}M6Y(XHl|X+e)J1%l`q|v6-7wBiJQqPqbh<}l&h}mCI{Uoy_gnEK5b zV*DZ@m%1*v3m_+nW%ndCwyszQ$xMirb*4<9Vc;ot_PT*u)z~>!eSoRAV43q4lmQz~?@spx;!F zRRK$PIWr!ai%B*vk_9b(ePD9w4rOt^OW}2hRWOl`n;;Eov$&-}S)BQzbxa`j5z|(o zI4#`&L;jyz94rfAmzS~RYX2Mg$l~fGMkwWPsfFrmqq#+C)Tla(sFGiZeHZ5k<6uX_ zD`Hh?eG1{GWVm!zm!_R5#`9BHMh9D{O1Q`UVQ`{6LSJPN+4AP{&$b06ST(nXbbi6d zDS5X`)t^Tnats@-H~Htowf=eXuGbHJH~(Fp`0+lBAuiK+&999DKIy{#<*tKYKv^Cv zK}tx|fu{-C3`d9zyt$pQF>IPaLayHE>GbHUE)Q(Remu~nq(m(OZ>xnO4N1-R3asW`;fy;Z4g72l ziCvMYNS`>zWH8!7jBL&fP+KO_Lm`fKSyi~fg{+eZ?CvGti@xbg!Q1mK4y&zZrIXS1 z4$=Is@lQLOrR`Yi@o%iAf7)4EpMt~dU9WCaV9jCsabkiGYP1=f1CGn8rg?R9jfCx4 z`o7U@ha>F4&umWqbhB&&@aU~w+81p1aZtm`AlH{e4>*3R zLV9<*_wyNifGo}0cz#Ce22J#kXGIf3_7cku!mWc4KLBfHrE!v&sN{6=|3RyKortaF z9T~!VORj0jyX{}U_|}qye*J#@IV4#U=$v?ZXCiWXao^o8A6aL#N#^5uz;950K9jP0 zcZrh0J2clFS(n+@#bxKC9D6pvRR2UY-Js2V5Jbb zLOq}vIFa>2v%YfLGxnsw77=sHJ~Sn&l^N35im$N+P68 zXz|2oXnCI;`@1Y1S&3>`6!yrMH|`~kG0`QtSG0!6_5PrIiQi>liQ6h3FH|aTyDL7) zm<=Uft#RCW)frCTtEA&O$mrfYdzrtN*8J+BaDk!b_wcP-t6CFHTb`Gh9s>OzN}~c( zPocbkGgs8i@0NvH>;YGw^9$tU{&HWR)I78-^g`v+>#g3Lfx-4vV~&1)Ky)$`NAY*) zPlBM=w8q&Fmy>h<1lsk3*5L@4O z)bwuR(OJ4eCOK&kpRJeYEN#p~0>}}D;{yP&&vHh^W`S46@Yi&YcMY5-ohCfubbWMa02*(!GtnZ!AJ6BhnDC z`LE*#E7k=4DsD$vT3yF-3wd1Jin*0T7_DAB7isK7E1ZBjnji5xA~VvaGUH1-ioy|W zhg@_VEL5qso%`93-?75B`J~;bw=;Z0DONK$ez%N&A@L64&_bAfjCQ#V2~040Qc;a5 zmWHP9nN}SaaO5bRE_x0f8Oyj=QK|TZ$x&OAe{#}j(8x++_a~V2D@6+SsB_~E%Ax|2 z{r<>xv$)l_?e{F-^_e%s@dq5IQ^K<|2P|@*OEO21N&--1V&sDHl!+K2mxXd^e zIWHuDvA+faq|nbUrDA}7Cvg0ODinIw8f2ISB_JLihRXBp0yGukJB4DH@&RY#3m`-? zcZdv$`K;OoWVu;kJE0*CSU(e`#3L7)A>#4wvh z@52ga8uzM>Vw20~D9%yT4+J`PahcWSrR{_!-npOT=w1DkquxJZ_}a}h(@Xs}q|!CM z#V;O6W{!`Sm?{2Rj^Mt;7GJ7NFHT-#MYSkX4ogDN$=TmGYKrQLB}&WfrCaxl&iiR^ zL$>C3@iq(FjBw)_Tt8w)!HUg9^}#Z&l0vu;jiLzYERTnQ8h=ZQhAA#zj&*u@cXzxr zCFU`oT|}eK^f8E|Eo^U3W!_fhR(ibSh>dxo=d3)gvsC7L+x7Hu8k7h7*d^G#&nBLo~2j^{*;AdY%0MOL2N`Ma)5Ns$6 z9!=K-tsEV~LxX1-gs_c4Ns*X#FX+I2AdsXt4uEql0UDk^Q!0@4oX{( zUnhFhO!Q?4B3d78UY&m0mhWwGi{q=h>X*YRiVu#r@f-gqqU-GCwX;+qy!>2UR0AJ- zxEW_cS0O#@H+7(}Ob2%0NlYAe!F;t@wnmeG_-Q~DFFs|QOcE(X z{wi79xYJj-kd6_BfjnxGLl{4sp3$7=Wh-6BW~cDk2R;2x8`BL(2~S6zByFaWk*1e$ zvTMvUm9{5TP;RcRIe2T{I5|JIT$ypUC3?b0O=jIWIT||F{rjA6;<;sMReeS{69)Hn zMkM}qXkyrjVB$|xIR(7?@alUxsi7xq9$s~u40bm{Th!IgVnHMa|2FWDUc$li<(`9z z1!(;iD^y4J3ycheszt+^zr&3X$piLn)Fs8V0G7}X*^qYhN>}iM?s1m&fkmk?n z9^j@DRvA|HmiWRbrfNRFb&*lF(0rdv&mYu9h07YE**LrJBp461a?Qv4!_0CR z$ZdvI-0+J7vEwQ2GwyulBAbKfP0S9f(lvocBB@k6HkOa4ooR-+({D~Jv&w-k2oZ`O z1d-o>y!PzRAS}2_u==%8*4RMDfJp3TT6yXalGrJ@+64_MBv`Bs;O#4Y7*e*-6z&E| zG#4SGJY=WU&OMdi8vm2!7$P@$sDkh1S@)7yjX4?V%%86X5G2<=7xUfoD%nw*s3CDq z&4}#sId@Z?rMok|9#!?-`hM&m)0!cR>COuSCs~He4zg4!fBlcU%mf~135~O-`RQd3 z8pI(N9m`}aXhf@^WuG_`=mM&jWM#`E-PB3;&`P!_cr|isiOy1nsy)M{as*Zu72`j< zv;&=De_-#3IVyv~LKC6p$=Z6wC4C}38IZZp7TxKin3ahpV;w5ZCgN0FG?IfvM(~}| zF5Rs;qra%tv0KfiXSY2)k=lgfyNal&ovyYeB1)o}O#Q%CDsw%op<`q%VV&+J;SiHj z*Ov1z3^N)d*lRE{LyI`I2ICefNC`;imKP72>dUV7?KlmnVyDc>o`F8FFE^aARWdc4 z3m#V>1i;hoC_$2QA>B5fqY6T8P-`2z{KqUg4G_5fbbLS-c&;a}-3_fd{vH`M9teg4 z0dFSSj12BzfZ1%tR!JYK1ZrjZcv7rl{?_bN7?SSl^dMF!W-eKV0C6|E87O1@Gg_**{Is0P@F+jH6pmXtP}`@=r;@NF zimN#JrEAg(O^m~)m-WyDn~d|u`0rIT(rg3*#Y0GvFR>gxo2rQWQyNQ9d7AKJj`se>E7gacuKGD zsqJl7@Dj49^^1~BOT9U1zz*l_0d~(ru6aFEXXF~f&T#)IsW_r literal 0 HcmV?d00001 diff --git a/assest/fx/Running on Concrete with Tennis Shoes.ogg.import b/assest/fx/Running on Concrete with Tennis Shoes.ogg.import new file mode 100644 index 0000000..bc5dda8 --- /dev/null +++ b/assest/fx/Running on Concrete with Tennis Shoes.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bwja5fpawbgjq" +path="res://.godot/imported/Running on Concrete with Tennis Shoes.ogg-449625040c9614f99c697bcaa74e8272.oggvorbisstr" + +[deps] + +source_file="res://assest/fx/Running on Concrete with Tennis Shoes.ogg" +dest_files=["res://.godot/imported/Running on Concrete with Tennis Shoes.ogg-449625040c9614f99c697bcaa74e8272.oggvorbisstr"] + +[params] + +loop=true +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/buildings/bakery.gd b/buildings/bakery.gd index cc95bbf..59acf7b 100644 --- a/buildings/bakery.gd +++ b/buildings/bakery.gd @@ -2,5 +2,5 @@ extends TileMapLayer func do_trap(): GameState.position_bakery = Vector2(506.361, 843.8615) - GameState._game.switch_scene("bakery") + GameState._game.switch_to("bakery") GameState.hasVisitedBakery = true diff --git a/caracters/bob/bob.tscn b/caracters/bob/bob.tscn index d9c0281..cbd89ff 100644 --- a/caracters/bob/bob.tscn +++ b/caracters/bob/bob.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://bleadp4yrdgj"] +[gd_scene load_steps=20 format=3 uid="uid://bleadp4yrdgj"] [ext_resource type="Script" path="res://caracters/human.gd" id="1_x3vfc"] [ext_resource type="AnimationNodeStateMachine" uid="uid://ddr1ltkievtku" path="res://animations/human/human_state_machine.tres" id="2_86nrf"] @@ -12,6 +12,7 @@ [ext_resource type="Resource" uid="uid://vg4mssby1i6p" path="res://caracters/bob/bob.dialogue" id="9_d5408"] [ext_resource type="PackedScene" uid="uid://dn10ervwv15oo" path="res://UI/clues/bubble_clue.tscn" id="10_rm4iv"] [ext_resource type="PackedScene" uid="uid://cjm4k0fv7eger" path="res://caracters/human_pathfinder.tscn" id="11_ubech"] +[ext_resource type="AudioStream" uid="uid://bwja5fpawbgjq" path="res://assest/fx/Running on Concrete with Tennis Shoes.ogg" id="13_7opcx"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_a4vmx"] radius = 5.0 @@ -99,6 +100,11 @@ position = Vector2(44, -38) [node name="pathFinder" parent="." instance=ExtResource("11_ubech")] +[node name="FeetSound" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("13_7opcx") +autoplay = true +stream_paused = true + [connection signal="start_intracting" from="." to="npcControler" method="_on_character_body_2d_start_intracting"] [connection signal="area_entered" from="detector" to="." method="_on_area_2d_area_entered"] [connection signal="body_entered" from="detector" to="." method="_on_area_2d_body_entered"] diff --git a/caracters/human.gd b/caracters/human.gd index b8a61ec..77f4858 100644 --- a/caracters/human.gd +++ b/caracters/human.gd @@ -12,6 +12,7 @@ var humanInteractionTarget: Human = null @onready var animation_player := $AnimationPlayer @onready var state_machine := animation_tree.get("parameters/HumanState/playback") as AnimationNodeStateMachinePlayback @onready var interactionZone : InteractionZone = $"interaction zone" +@onready var feetSound = $FeetSound var interactionClueFor : Human var interactionPaused= false @@ -64,6 +65,9 @@ func _physics_process(delta): # compute the direction the player wants to look at if velocity: last_facing_direction = velocity.normalized() + feetSound.stream_paused = false + else: + feetSound.stream_paused = true updateFacingDirectionInAnimationTree() @@ -109,3 +113,5 @@ func disable_interaction_clue(): func _on_load_from_game_state() -> void: emit_signal("loadFromGameState") + feetSound.play() + feetSound.stream_paused = true diff --git a/caracters/musicians/Thomas.tscn b/caracters/musicians/Thomas.tscn index e62aecb..8ef6976 100644 --- a/caracters/musicians/Thomas.tscn +++ b/caracters/musicians/Thomas.tscn @@ -2,7 +2,22 @@ [ext_resource type="Texture2D" uid="uid://0yybe0v6bkv1" path="res://assest/musicians/Subway_Busker_2_48x48.png" id="1_dq5dt"] [ext_resource type="Script" path="res://caracters/musicians/thomas.gd" id="1_it5tv"] -[ext_resource type="AudioStream" uid="uid://bdj7nbrv8f53m" path="res://assest/music/balade du grand nord.ogg" id="2_6pcth"] +[ext_resource type="AudioStream" uid="uid://bpm1d70babypo" path="res://assest/music/chartreuse blues.ogg" id="3_redb5"] + +[sub_resource type="Animation" id="Animation_2qywv"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} [sub_resource type="Animation" id="Animation_k8n4u"] resource_name = "play" @@ -21,21 +36,6 @@ tracks/0/keys = { "values": [0, 1, 2, 3, 4, 6, 7, 6, 7, 8, 9, 10, 11] } -[sub_resource type="Animation" id="Animation_2qywv"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite2D:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [0] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_v18ad"] _data = { "RESET": SubResource("Animation_2qywv"), @@ -64,11 +64,11 @@ rotation = 1.5708 shape = SubResource("CapsuleShape2D_0816g") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] -stream = ExtResource("2_6pcth") +stream = ExtResource("3_redb5") volume_db = 1.0 autoplay = true -max_distance = 1000.0 -attenuation = 2.0 +stream_paused = true +playback_type = 1 parameters/looping = false [connection signal="finished" from="AudioStreamPlayer2D" to="." method="_on_audio_stream_player_2d_finished"] diff --git a/caracters/musicians/thomas.gd b/caracters/musicians/thomas.gd index 40ce14a..b625a88 100644 --- a/caracters/musicians/thomas.gd +++ b/caracters/musicians/thomas.gd @@ -6,7 +6,7 @@ var songs = [ "res://assest/music/balade du grand nord.ogg", ] -var current_song = -1 +var current_song = 0 func _ready() -> void: $AnimationPlayer.play("play") @@ -14,15 +14,19 @@ func _ready() -> void: func _process(delta: float) -> void: if $AudioStreamPlayer2D.get_playback_position() != 0: GameState.float_thomas_music_position = $AudioStreamPlayer2D.get_playback_position() + var stream : AudioStream = $AudioStreamPlayer2D.stream + if stream: + var l = stream.get_length() + if is_zero_approx(l - GameState.float_thomas_music_position): + play_next_song() func _on_load_from_game_state() -> void: - $AudioStreamPlayer2D.play(GameState.float_thomas_music_position) - -func _on_audio_stream_player_2d_finished() -> void: - play_next_song() + if GameState.float_thomas_music_position > 1: + $AudioStreamPlayer2D.seek(GameState.float_thomas_music_position) + print("resume from pause ", songs[current_song], "at ", GameState.float_thomas_music_position) + $AudioStreamPlayer2D.stream_paused = false func play_next_song(): - $AudioStreamPlayer2D.stop() current_song += 1 if current_song == songs.size(): current_song = 0 @@ -30,4 +34,7 @@ func play_next_song(): $AudioStreamPlayer2D.stream= load(songs[current_song]); GameState.float_thomas_music_position = 0 $AudioStreamPlayer2D.play(GameState.float_thomas_music_position) - $AnimationPlayer.play("play") + + +func _on_outside_unload_from_screen() -> void: + $AudioStreamPlayer2D.stream_paused = true diff --git a/caracters/player/player.tscn b/caracters/player/player.tscn index 9681db9..ab609b4 100644 --- a/caracters/player/player.tscn +++ b/caracters/player/player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://vclpg4e4ql54"] +[gd_scene load_steps=14 format=3 uid="uid://vclpg4e4ql54"] [ext_resource type="Script" path="res://caracters/human.gd" id="1_l1sti"] [ext_resource type="Script" path="res://caracters/player/player_controler.gd" id="1_oapm5"] @@ -7,6 +7,7 @@ [ext_resource type="PackedScene" uid="uid://cg4dhp7qe68pt" path="res://animations/human/human.tscn" id="4_rsj36"] [ext_resource type="PackedScene" uid="uid://brh7cqaxc13ie" path="res://zindex/ZIndexControler.tscn" id="5_pb07x"] [ext_resource type="PackedScene" uid="uid://cjm4k0fv7eger" path="res://caracters/human_pathfinder.tscn" id="7_g6pgs"] +[ext_resource type="AudioStream" uid="uid://bwja5fpawbgjq" path="res://assest/fx/Running on Concrete with Tennis Shoes.ogg" id="8_73an3"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_a4vmx"] radius = 5.0 @@ -95,6 +96,12 @@ collide_with_bodies = false [node name="PathFinder" parent="." instance=ExtResource("7_g6pgs")] can_walk_on_roads = true +[node name="FeetSound" type="AudioStreamPlayer" parent="."] +stream = ExtResource("8_73an3") +autoplay = true +stream_paused = true +playback_type = 1 + [connection signal="loadFromGameState" from="." to="controleur" method="_on_character_body_2d_load_from_game_state"] [connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"] [connection signal="area_entered" from="Area2D" to="controleur" method="_on_declencheur"] diff --git a/export_presets.cfg b/export_presets.cfg index 044695b..e6d9de9 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -3,7 +3,7 @@ name="Web" platform="Web" runnable=true -advanced_options=false +advanced_options=true dedicated_server=false custom_features="" export_filter="all_resources" @@ -21,7 +21,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" variant/extensions_support=false -variant/thread_support=false +variant/thread_support=true vram_texture_compression/for_desktop=false vram_texture_compression/for_mobile=false html/export_icon=true diff --git a/game_state.gd b/game_state.gd index 4bdeb18..e2ac5ac 100644 --- a/game_state.gd +++ b/game_state.gd @@ -10,7 +10,7 @@ var hasVisitedBakery = false var isPlayerDeaf = false -var float_thomas_music_position = 5 +var float_thomas_music_position = 0 var current_scene = "outside" var position_outside = Vector2(-171, -253) diff --git a/scenes/bakery.gd b/scenes/bakery.gd index 5f1409f..e8ed28c 100644 --- a/scenes/bakery.gd +++ b/scenes/bakery.gd @@ -1,6 +1,7 @@ extends Node2D signal loadFromGameState +signal unloadFromScreen # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -9,3 +10,6 @@ func _ready() -> void: func load_from_game_state(): $Bakery/player.set_feet_global_position(GameState.position_bakery) emit_signal("loadFromGameState") + +func unload(): + emit_signal("unloadFromScreen") diff --git a/scenes/game.gd b/scenes/game.gd index ba4a206..723ba9e 100644 --- a/scenes/game.gd +++ b/scenes/game.gd @@ -17,7 +17,10 @@ func _ready() -> void: func start_game(): menu = get_child(0) - switch_scene(GameState.current_scene) + switch_to(GameState.current_scene) + +func switch_to(to: String): + call_deferred("switch_scene", to) func switch_scene(to: String): var prev = get_child(0) @@ -32,8 +35,12 @@ func switch_scene(to: String): if bakery == null: bakery = dest_bakery.instantiate() scene = bakery - add_child(scene) - remove_child(prev) + scene.unload() + call_deferred("add_child", scene) + call_deferred("remove_child", prev) + call_deferred("init_scence", scene) + +func init_scence(scene): scene.load_from_game_state() func open_menu(): diff --git a/scenes/outside.gd b/scenes/outside.gd index 94c1f2b..731cbb7 100644 --- a/scenes/outside.gd +++ b/scenes/outside.gd @@ -1,6 +1,7 @@ extends Node2D signal loadFromGameState +signal unloadFromScreen # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -8,3 +9,6 @@ func _ready() -> void: func load_from_game_state(): emit_signal("loadFromGameState") + +func unload(): + emit_signal("unloadFromScreen") diff --git a/scenes/outside.tscn b/scenes/outside.tscn index 8d9cb6d..443d1c6 100644 --- a/scenes/outside.tscn +++ b/scenes/outside.tscn @@ -73,3 +73,4 @@ position = Vector2(-142, -510) [connection signal="loadFromGameState" from="." to="world/player" method="_on_load_from_game_state"] [connection signal="loadFromGameState" from="." to="Thomas" method="_on_load_from_game_state"] +[connection signal="unloadFromScreen" from="." to="Thomas" method="_on_outside_unload_from_screen"] diff --git a/vehicules/car.gd b/vehicules/car.gd index f393f57..97cbd9c 100644 --- a/vehicules/car.gd +++ b/vehicules/car.gd @@ -29,7 +29,10 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: - $AudioStreamPlayer2D.pitch_scale = current_speed / speed + var pitch = current_speed / speed + if is_zero_approx(pitch): + pitch = 0.01 + $AudioStreamPlayer2D.pitch_scale = pitch $ZIndexControler/ShapeCast2D.enabled = !$CollisionHorizontal.disabled var accelerationStep = (speed * delta / timeToChangeVelocity) diff --git a/vehicules/car.tscn b/vehicules/car.tscn index 323b460..c228280 100644 --- a/vehicules/car.tscn +++ b/vehicules/car.tscn @@ -563,7 +563,6 @@ debugLabel = NodePath("Label") texture = ExtResource("4_0kman") hframes = 12 vframes = 4 -frame = 46 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] root_node = NodePath("../..") @@ -589,7 +588,6 @@ shape = SubResource("CapsuleShape2D_l8rwt") position = Vector2(1, 2) rotation = -3.14159 shape = SubResource("CapsuleShape2D_l8rwt") -disabled = true [node name="Label" type="Label" parent="."] offset_left = 72.0 @@ -606,8 +604,9 @@ target_position = Vector2(1, -32) [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("4_o8ske") -volume_db = -20.8 +volume_db = -15.359 autoplay = true attenuation = 2.0 +playback_type = 1 [connection signal="finished" from="AudioStreamPlayer2D" to="." method="_on_audio_stream_player_2d_finished"]