From 8b130113ee1e4d98bf29f0c6793fac817b0eae5d Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Sun, 23 Jul 2023 09:49:07 +0700 Subject: [PATCH] add move sound --- client/src/lib/GameAudio.ts | 32 +++++++++++++++++ client/src/lib/assets/fx/accomplished.wav | Bin 0 -> 30044 bytes .../assets => src/lib/assets/fx}/jump.wav | Bin client/src/lib/game.svelte | 34 +++++++++++++++++- 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 client/src/lib/GameAudio.ts create mode 100644 client/src/lib/assets/fx/accomplished.wav rename client/{static/assets => src/lib/assets/fx}/jump.wav (100%) diff --git a/client/src/lib/GameAudio.ts b/client/src/lib/GameAudio.ts new file mode 100644 index 0000000..4d9637b --- /dev/null +++ b/client/src/lib/GameAudio.ts @@ -0,0 +1,32 @@ +export default class GameAudio { + track: HTMLAudioElement | undefined | null; + canPlay: boolean = false; + + constructor(url?: string) { + if (url?.length) this.track = new Audio(url); + } + + setCanPlay(state: boolean) { + this.canPlay = state; + } + + onCanPlay(ev: Event) { + this.setCanPlay(true); + } + + offCanPlay() { + this.setCanPlay(false); + } + + onMount() { + if (!this.track) return; + this.track.addEventListener('canplay', this.onCanPlay.bind(this)); + + return () => { + if (!this.track) return; + + this.track.removeEventListener('canplay', this.onCanPlay.bind(this)); + this.offCanPlay(); + }; + } +} \ No newline at end of file diff --git a/client/src/lib/assets/fx/accomplished.wav b/client/src/lib/assets/fx/accomplished.wav new file mode 100644 index 0000000000000000000000000000000000000000..09050d511db2e0f53deb0bd4ded5cec9895e8d3f GIT binary patch literal 30044 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
Y2KJ zKZ^U~*ZS9ZEi4BTzyug1F-iRNin9QoB zweI>_qoL#hik0F>2Z>O8%Tnc?d0uEP4^We4bmT__sbwM z4`%kr$`$?;K9>DQM2kd0O~oQc#2w8OtsHF|9TTk>Yr^*w#)*rhZSpC2FQ024^$a6y zW?G-^XU=702Ra>VhgSeay__!Ry5nxoz3{a3UGV1x-!e3i;y>?g<9W}*#ABM!N66VQ z=_tG^)(>5X9Dt|nrS;tu3|+T1L_<^?d2ktWGAmF4OI?Vc_hg{>}jGh`Ze znvkdpt_kcV594ng+z_XSDuhM^_XOVh1OA%6!QQ2w7oe2>Q%f(n>)c*$HrIj6%e`fn zv(?!*@cfysNv;S?wZG`q^dlN&3WGXo^Ft@KWPWA()9tA0WNt#k9-v#1;Z7ABu}+!; z&79@~V}?=D$kKP{J@h>KM{S=rPHU_c&#nxhTjd4J~t)0@IYL-?4ZsX0Mj7k_2jeABx^LO*LS=Cx^SynguvYppC z>h(z`vk|m|!SaJeU%~pX@TIL zsRgu;+D^TV(ZHx})G-SYv^)-LQ=}<~eJHJ;L@c+JU=_3~SgiHb++j{M z+nE*Non%bSh!};4{Va7J>jBiAVAQ)2ITkqz%#?8Hy|bCh-W4K>@TCIs-k0hS3}7 z9JB@+MwTOGkvmQ&=c7HtE)O@~Vym+C-kfWeFdxD9EZMjKDvj0;YV9;z-K+Lg2dHD! zKhz!Sbv3N!)LLna;hF28RnhWjw8q2T`cS>9;@TK3L+h)5()$^i#u(Ev7g{;&eRfsn zj+2UfLq?-Ex)HmCzb8;CKV6II?wagg#UAA1xY}$l_gL2iW(3`lsz74IulNxx3HuG6 z*aW1bv)sOJMa&>P0d@7ZT6eXdGEg1}H{1}hDNNl2P%4rTh7U<7AT$EUw>$bFQXn!c z`)ascctn`VK9Jodk_40WWNZ~bLzpN|mgdXblxu24D`@mIcUeW8@#sUmB(<0k-CaC4 zedU8&#mj4yzt$82TCPb%db~3+L)8ABX-QGhOWRq;j6LsXg)-KfN9 zzDh#gL?Y>H(v9R!DOTc^_|d>4&BjJ|IJXDX z&q`5cy!?+;O*$ej6ceR`Qgd0Ck1C_o>RJ#S%3q*JHt1{g_26C(gHm~{-!k5sqQyFS zk@9GLxDk31{mFq;AG#wbt&(mx`<;%S*Jb8!`W$tLTu)4gccT`X0}P78u z{gLtAq`_f5KybVoIf=gDBDiMWwf?Wc8F9-)+k!^}=izC(?Y-@}%AE#RIfL!amS-LJ z6`(*xK#TNrg_&W@C%Or}hf>Mv;5;pQnK!dCU4RSU5IqHqo1k!UlX2$CC%lR*S6=8|+Rj4km6f?!U zQch){dQ6k`3g%F2vwhpyfSf{ZArFA@Tm~&N2lPiNIPELZidY)FYftdH#6E%~+mdU^ zCnP}?qZ)wv7zpYEp%wZ&^VD_Gy`7y6q@KVNURpT0?3s!mge z%iW~r;;+J6{t0lJ|5(jGz+N;yQFzEBd{uac(jo;T^RkujsBqEn*>Hz!H1bzuVzePp zH5ceSRYc^VQd(`V&CxFzh}F<;jBLU*B9%VxD!?uBs{X#A_HlDUCxf2?-arL^s_!@N z63@#YT;>D!ggeiz2P#vQ)7e98dscAIax?Df@MJY(w$j__x3q`(8F)-8(}igVUg|I~ z)Ba>-0>^KnbCBAOW@VWh%qFG|9<_tPfRh@j7uPeiL)v()p_Ugk)pzwJFqn1P9{sZM z$qd@foIjDzXl=X(uAt|U#m->xBn`}ZMhktfc07RU@>Km1dA@MGwoxWD7~CoD@G4a}l^N}1#*3FG2&2Cw@@ zc=EDOnI+UNVhCOZ^P*w6r>_HDxo$kwqgtZYNS&iRlncxABv~9TJ`lT0hO|{~1ElP! zx>NgIzp5YlU+1(*-=m+>Zvl;HY4*3K*ejep$a&x?FY!;rH}V~I3;g&*S8ccLKFqe^ zE_o{YHu(8K<$zw=I|}u+r!9PUOw3(~$kn3!Aoou|}DPfxkc1@4&0Ls9(^pz@PpUXu%3SS>L5q*Zx&!tCiFkIH~hW zqB;(kNnPMxdG$Ya#+YX4#&4iOMp;p7IDEecJKvlu$Od#I_A5>kH;JjhN?uSWsan)S zvKOfkONgSxHM|#|AE)tjpe6gTd01bpCYFMUXd1c$os70Yi-YobjhqCMyAYX+OovQm z1kw-bg0uqNQ5upN0+F3e$VEOo=??E8hzAmz5aI)NV!(fY=3E47G8;0I+D}mFB`!{=v{fE5{(v>uLotm9#zlD6{wtdAuYoD~Qf)+}3_QCJg2|0}22(Z3mC7uj4^uI6KAB8zB2tKjxP-OG z4xtXvodwPf+q6npspd4Jis3gh^qauU76F?YsAp+KwEpS=MUflITO>sKOSHt6(ord& zyh$#mTvvvvg@L&Jt?x3{n5(TF_66rMnt>OjhBAM<3wf6NJi&Is>4Cle+rE!p-lK9n z+nMdaHe^e~%s=h!>n7c+T{&D!8JTWIucYq7cRv8czbTPQbO7gB9BBW2{5;kc{p<{~ z)6HJSQ{ep7m1}Y%`GM3ha~ z2(^JaPG4j0yPmk8u#dPj&rNS{?t&|soy-|83eS1c~%t~1aVHDh$4U_!8Y3=~cE*)(d9UC1NyUe@AcG70~ zn^Hm>0xaN-$=YR{rbu_RKh_7|P3)yMGPB%Wxgy?=zQqA2I5F_WSKGUkd*DV~1?Vbd zNunX1igiU(ktR+>I~i=^J$$1}YL&$w}N4E!<`sCpJ zxUHeTf_DS2{a<}q-Ym~2?jvZ*_uK>S7&nh=&3UdZYx4wTM?1BvTDDdIsO&-A(K{MvjeO=p(=>-!AFTFp z`hEfB{t@kme<8Y3_vrGjW#Ij`vX|HgpdD`k>6*(wH+}OZVZ&hxGE1teZ^vC_!Rb;x; z#LjEsrT|}s4ScAMGDW^F<&!#rjVx9)*7^YIHZ( zSdVN5sez8dw&Hh*DCwc|Go@T*+(p?qPUH@Hm-+h#OUHeW|1+^f^68W@Dff~R6I;js z9$FvR=iBG8S)4Up8O%L;H#MHD1^3}4^f#oq^V(WqRx!S7Yt?#ciYh5jVa6T+ZMai0 zA!X7j0;C`O<}8h#v-f>%xt`<>arxT958t14II`tn_=we(8t2d-$oP*}LdkLHW; zUm&-e5gQ$w%C8YFi;`4TS)@j_-bQErmD*n+p*-)7t&Z-DUIGOe7i$(<5_=IV z%Kr|}en81yBT9K~tbWA!0!pPaB(?p}VeraM5~rwr%rf^tuBxw1O3P8W1Hr7v!R(~EHf$@pCAotrzZg|I-xDmMr*ya&RP$R z(hEWoHo-b~UV*CkgBn3SqKeX^>EnzZ}K+H2jnP`iRX5E>QtZO1O{G;o?b?IG_N1nJN;XQ8tR6vs;^ z0@}d~>Ldp=M-o7jAkZ1<3G`$)(9<;Fr4NwXz*cU;za2)_Bh!GNREC`ArLzU{o!p=n z_t?wqNp@emrCq}=X|whzt2-pM$IY&$%RCKv&Lbmi_|59z?T^F!Y+)U+;_Nv9)aN>t zkQV4zY%iWpRHT;D5_1f=z-M|4ZBmmdfxJv!C$Exc$vxykvL9K2REfiI#wC0vj^m@T zKY-yL!H#1Gu(j9}>?QgHx#DcGM_W}*S^o_0qodA)6la}M2xxL0`K2@#sMrm0ida+J z1AKM1{HJnUP1hzD!ee;0l|{}HnM8Nz3wjd)p{ zC>2m{sJ(!6PO}_)BrvAiK$ma8$)1MPhNjD0v^D0!58*Y5OGF8B9=JL$Rh3Hp;prBD zd-~>L*I4N z=chN#$eT%JSy^Ouu80WoU0)He^W*Hk0qVPn8vxArCfw_9+)doO zf%g_*X3&pmA5#TbZx_h3YA_7+0FsEMm;;&bEi29JZzASeqrCA*AEW2g)3n*(yb^&6 zy$0Wvsns)%m?i9UP8T$Q$Kz8_&6#5twq6(;^gY@=4T02riT+)0Vw^ULgE}Z+?XU{N zv-^|N070=6cn=bz*D;0N!`aP{Wj}(P>Jq!2?ZXxVfA!L{%KNMDsV~)k%U>igCU7k9 zKHvm`!KT4KLg(YY#dC?plNu!VNJ&Y`8~;%QcH?MqI}lqi>ukc1bI2Tm%iZ zO5LQKmcL4crHSHqaho(uZlY9CD`|DXzwG;wOmBi5>N2>KzUDQnpfe45jh4k{5@~Q} z*I|aa7P>dGo4I1%rv9$ME^!SL@+W;y&Y7cOa*xEm@f|{y0;KN>H-c^M&gFUsy7^b~ zJw5?*qidYJ_Aax8aZKwAB!^PpLC5DH+|;|2lk%U^RB^H}pWg@f^vP)Rm>xUJFBC?J zgQT(YGUcLbYK@GYrq`b7AlO}EGd;nb>Z#_>A1WSa1@8sc`g{2DdS7q{AwL?#R)q9u zi@Q2Fi@L6Z493)>$56}2bwplBjXL~L?uFp=F2iwbAadPKu(}&twKs}inF~q87%40c z60?M{0wrwa>+@>tuh=a3IL60>I?^sVm%3Z4Yc$a}sE9IN!o*E{6VU5Bqt~L*=ufd> zu?w*{ehl2lb%eu0ZlGwY*g>|GjamgrUK`qwMgxJl4@&(UvKksTm61HCfS$m50_&bd z=tMX2C@GRfsHRkJYA7XA#hH$-Y3{A;MaWlHdpEETE-dGp z$5Nt7_P20G7LxT-X1|P6>E+Y2(obis%$$`qJG?UcWJLIJ`{L1@(dyB@(fHULUK55$ zZ{=p{X)TvA$$V(#fRt(xdJMabUmztqr~7BFoVS1<3HA@}^S|<{9B41*Gxd;ofj`DB zpc{}8kalS1QKPr+*Ul=vWL7!>?U%>=9r$>{f8_}wrx3@d#D0#ZMwVv34p$B@4Y$iK z36wVh6iZV96eHZVi&a`*WaPIV+ZWK|#1Z<0`-11T|2gO`F_;M{&0XJ7?_y}Q{Fl%? zh7@`hR}V7iWzfu8;Z|LZUGtb@^dVZLi!hCV<#uA4Fem9o@G6_(m(k+LQrj?Bn?IX( zj6McpY|-n1YTc#v(MoEV_8F)_6K$jJ7^5xCUWQc1-s3f}BS=N(o;A)aYgpPD?F%^c z0s478hcVL-j6vpCv#<5d8U(&~lv5J@j4dasQZML1u84a+BrJD1Fb~^+eH7S!1^P2NpD2uu6I4Pq6jNc;%gPz~n)Fc&i5-N) zd=CCNI`kEzSH>I{9<{XxyWJc2_aCND-ZjV=Of--oH0C2=bi5k2RsA{jL>IwLAMoy zzgf^EEc_FJW=Yh^fW+rBFqH33*byBcoaF(~{&;~Tq3zHS=zMe=q&YXye^3Hzh|S0D zVs5+vJ_A1k4Vc_S6JiXpj*y7oNR6CI(e!d)er4$> zQ0t4?8=4a%4cz#qmoerT=|(5>B|MF(RvoLNRSM`xX=}RG$}Z{<$Y+F8Q*mMG&lM0YBeivJTwm?v4uhrQ6 ztRDg8@{8t%2Fi8yr1~8u^b%>DI86ABKOXy;zsZjiYC*TDkX!@Ofs2sR>@Dbo#fVBo8&Fe? zh=N2Go)7PeE_4oBe;W_9e-umZE#Hz#16g(hTc(7Sd|Cc&Yy%LK9{g3Inv^DwQOiS) z+DIFtoRa+Fbe@T=jUJ8u3p1t%u<;Zg<{Up#$PxyKAH@o?PkpcLG5T0RXC=(v|EBO? zkiRuVjv{-|xmYup!7GS3aw_=`8Bf)LX5&yQo*n_L%EdP3=6SAp&$4})IPwnqhuy|F ztx`&F>50&u4@cKUx@A`lm&~e?*)3yzdjIt58O1ZpWHk;?$UgU@si=ZRDiiG-{T`jm z7ZGns{S-u7q31QXTJg}deT2s2^N9dG!}Twl7jD!Z!RO#~Zh1Dcom~Wdh1iS#j@3q0 zXR}?^x@)x6pF^+Vsnk~d%0Gp){0@8uW)8Q&=-7bhNSL+P!@=pP`5YoZjuJ)yRy}&xYaL>6@+zhTV_mb_+K6RII zk8*8*mf#s02g3267HY}7qZ?9Nh%Br)+RIsL9W!g1X+}q2a?|u&`c>!wR?u*GX8uvn zXulXw%;|Q0q#$+;7tkum8rx&7HLB{TwC`GReJbSHt&B9I1w6+CAx~Xo=W^O3^{^6z zi+V|Ka5V?ba~TN6efBsz9cJre;Iu2ft$ea?hF|rk0#$wm$|n^3GsuS;#4k^Ho|u^2 zCgnro{J2Vi49^bt0D3L)9;<+EbQ0|yW_`of?y1L>qw)<&6sL;~q=IsSk{g<9gP_N_ z{RgMm1KgG}7Mn@-Hs>ceK}Cu6BtiFJ4!JVj30xh|VILW+7dJFvO48Vr7AcjI$b|Eu zE`cxJR4xbmz%>%OqVq@xAA&tZN;~tccSa?BsahGj%&(PmKYGlClvmO=af&dU9|wxT zik^tg;)e)B#F;?zWTmBcQLh2_@JOc;)`^_QTw)Dx)nK2vVCa0Hmml@5^5o+-uw&R? z*eG;3^SD>J6s9IKie5-9B7Y-F5Y6EXwIE6pCcYg12PKhWc5Snjo(gxz0yzr(m&=gD z?u72kQNA(HL+@o=jN$tVFT`Fl0q1wAaZ}4wipZ1TsTu&UZg2EKlmhy=C5G?=`B!`^ zAx&r~UKP(sE0h6RIfFNMz&m>!`YaEiF}w!I@=$2Sx4?4ZkANshL|^bs6jg=lL=C3S zP>IYS*9o`6R`iVWuHkCCBII_gr&Gi%p^a7UOI5_b_(riPWJWW?BeQ0}kn?gu^Ja72vI(IU|n(W%iK{5heEWXP-368c%AhIPu$gG@lLVmdyU`pDE~ z7kV!GUIf|)d-~gYOLKy2D_xZo@O#)Qv^k>NYpmktDg77ioKi(TEmjs@fU~&GKY|2} z0sV45wm*6}aw}U6*9dP8Pt6_|nHxP4i}DS{Q&JV>kvdtgY!dbjB%T;fKXO;~?h34o z8xd+4%n|tRJK*i>`L8keFLxQ*a?L=e%z~y|SNAU0GbT)Lqj|bGxXR9u>HNYRr+j2L zd<&2vm;C_zX@)V*pn&yN)L&_TXmvH8maaZiQ?;jhf753_aCV_9@qyT01an4Oim@Ep zO)s@1&?Yybjkw<^VV*SWSpQi4Z57%%*U`iHVzL)q)b-B2m^}>~@DXG+OCbqg%FXih z@D}jh^Y!rm>#r497PuEsVAr60a7`#0S0iCo;m7kI`KEnjA58CerIZ|lEr8?vN$?3Kc+Q>tT49TLPWmPnR7Yxe^|I!6AmX)A zinvA1c2(mty-Nc<;J$nB*}`>WQ`{|~wfK%%4ypfRx(ofBs!MGpqtGGijemz`I0CuD zYwQFz1DlGrMhZBBb=6#D90vB9q(9UaXic=B_8#uT73w5)s5(g9sP@w;>a6kAxM?1= z+Jk1hYQ!18L92Nxw4&2AQ!5KC+WmT#UJCTeai}?!Gbfovth-iUTe2rPvQrwVfK-I0 zM^RuNE~E~$S~mj4e~zRhGGajw*g_N}8~KFbXdbizS`Tdr>Y@bt0Cr@m!q&}8=bUpA zHe;?h4?&Im-+oCcNB|nZ{>(J!qC9~fN)@yrN}?x`jtK8eby(-D-Ou*H-bkutn48R6 z<`-z-lsDe#uk=iqfW?i@#!4VkBOzU^X_PYZ7;TJOut{;XZGbS@de=E}coqWSDq>ug4^`EBY5`rdrNudo6ULZW@pEXWCP>4s3T&DzAK1 zzCerkvK*EQNdv`mLPO!A&{zzMdw|LIR{B7D?x4;a&8-V|1ysWCP$yhRxbwaW{!Wmj z&hsqdX0aSw3^;6gZ~_tcK6f+sQ&(-^@wez?dMbUNCYeG^De&?0smBC~7enhg9juLJ zL36M1GxTO!=$YDbt&!%3r1Yt}Oe<=`ooi#X|*+n{;c z;CwX;UJI3uUy|@Ov2ya#;<6w&3;5T1<2?u2 z1wcIm>`8YW_i0z0s{`{py?~lbwjs)cvP&iE6FG@D_zvs}^1!}tUeWif<&{5S3#N&5 zK#UV-35f6qpP#=MTNs-ii|`{wPX1e2u1zz}Y1fqRQW0?)AA{!QX;4qaW537V$C|;u zPfg)(p`LgX(wsNSUG0!D%WC3mLaqPA2 z!yG!sw07@fEv~8e9#_Y8iL8a)xBD4;)i-iMX{r#5O^oJ@JP#kt+MIa+nhO=6x4>rR z%&H%rm;DwR3)#?DNRHNwj*MQ8O%TdT8S-YesU9`{u;QG>h>AAD3&ECAC-(!cm~U`k zQ*g1rw>LL;$<=_qPwavjo{XM$8rpZwI>vD=mpWU{659jeO8eoOGx<1S65lLVAzC5Q zEPHCWN4S1=gGle_`dBvKNqjH;u9Vdb{ki$VZjHSp2fIkmPJe^A?V&-z5`k~NHQs8T z|I(^wkX4Q23UOzFgRFwiIpvCH*3c2U1gN(zu;1|!$n6MXGxj&~8vOB0V53WnL}Q0u zMSrf%(5h(^=(i`3OU^Q?Sd0@zMC>DmqSc*c7Gll;U+_^Y3TiJy?`eECMw*nh*{W*) zWB=yNMi=7q$nkWlt1$GbuYh*D%kF1Kum!l%o_t;zHWpg?pTe!PGVml|0<+p248=`~ zf0+*#3;0EQb$4&pJ8m<**fYTU!9>M^|~cv|juwUY9P&_Z3Mk z3+mnb}@i;}!qb$0&>y%q&3wTcYN(L9jJx(x_*c^+Jn$BBBdWo!SbO4EXf3DV)v*ppPuPlTp;uA^us3p7`Ux^uQRpvx;Yaaa z{$gx;>`|Gd<}W_He+AAXo^!I_9g zuxP$$@Qu{Z?t7l0fz@$6LWP6h{F|W_6aioJnS03X2F~l}wy+88 z2=@`#<$FUPq;0w)@ZHW#Q)UkRnDh`;uujNG`vY`%BhZDh^@Vx?{TigTr8E<=+9zra z{k^fy8t!yO`{U!WjmTTOigm!Kte=5hgsS=~9Wy2yn7Pa>3?0$VaKnFhBvi*m@&h!@ z2D96t%l8CYeOuTbY`!kpyPw_;ojniQ-MMbnGN0-*wZ>|3(CfcSBgHsLm1O9xSJo!zr=bC}26ER!pbXC& zT`k+*h*ZJuz1ay~=DLH|s zl{ep5Yn&q(MfGz%;A;4fhE9iC20!~p_yo@&ZYw*Etp;0_bKP!elipw~xUW+v2dGb7 zxGCBI3&4rP_%rDK2tca;)vhYpaua#CL`j3hr$S@cr0WbjkB7m%275_a}oKfgI@pavoU* zjoo9&U+7lY)+s<-AZn01Ng4V!9bl{RC{>VI;QH>a&Mo#l^wwuD($$EoNL!27-YdD} zA>t#xY3zMuVRoBvg{*R!O*5vaFH4`8@q6aFtoz~Qhzg!X0MGIh^yzO#f9ETSQE9i* zQNxXGW<^MvOQMUgS9mijof*nL_Z0Sb4qgmw^9}LjV2?7Tsa8Z@{1rL_$>Hp@3Ye>P zQX2}Mznb{z2VqU)|K$z7xFE+KMXyHgXUD>&!k5EGvoA)zMT_zC1V>yVS5igohOy6T zhdjf3(W-l;w_>nuT+YzPz*gv^;og^UQ+$A??0RUt>)=#GcO&;q*H&f+eTC*A@kj-l zTAwLKk0STtPf*^W>|3z?_Y}0@7uekK=tm)+%&&>iG^4dudUeyXo;!EZ*SHV+1(^;f zsFRTiy#-rq3OPa!*r&>C9yJ?4V_~wL;B-X#VFQUCR3j$8djfm#KX(sae50Kwp(AmjgkgzSk^(6`lb*-53Ow?3c1Nh{#1QNdLO8>% zs4-u!uDR8iEWmEfXt9n|QZA!3RwqFgbQE@J)&eU%uHV-a%)hKuM?sch1z{(sI3z8q zs}4I6HtKHsD}@%sUrYRyd?#gfQp1FIq0WJe;2__-r?@C)3iXAki7!Q8I4O3jxk`Vg z)=+8nm2w8siyg`%d7M;Eqy-_SMbAga#v1XJg*sw?$O~*`s3z!(fsW-s`s0_V{O&~_ z%RfABa0m;o0AI4%6UVJ(hp;8s7w%#1ELSUNDc`3*Q}3W>mLE9bf3ChHq!mr@Vd!*c zmNm&3s0~r>%0=Z_(r2*|^g>I5r>_S)(OV&X7{Y%M#sgQ+QXlA}^-<~~`KlNcCV`{h zAAK4P#=6JO!_LYY;6*EhL~*THUMi{N)=1;MdBE-mH0&OHoP_<9sz?~gLLXvl@dm_e zqCI&A+5uIe6FP*#=~2vcS6SF3c;@kVXSyLF#R+7M*+QG5T$F<1B;JUwh&0F!g^f%n zBX>r}^egE{GR|ba%8JYG4K6+$k%5N&9PJ)09DBpB5?jb5YzlQXbaR2tA`{W)SQ+9S z^_xp%Q@z{#kAh7D#eCV^8uw4kRx&`m#+IQKk-K(l>%LJ-KL{D&Wa*3Wj(-Rq{yyxC z5JDz6!ozLCQHIx}mKY=aT`fw&XKyy3|cxgS*DD#~4)*-Wk zdDf_9r0LysP1~%sfgCUkynAOYqHi#J+BK11us`uV;PeaG3rv@>UAwP&^zM+eRWME( zznYKC0Tym=vMV}wk!RR5;tq9$neCnf`>YSZSDazzu@~5XxCfp?-ci03|6bVEm>9Sm zh(c>8DflOJcDg70mFQ0Hn6fc3E^diG;MwRZPd&$3tR=D^G|g6{rmm`YA?v#=eS!_} z(XfdzSedV0*6zW%To0#W2izI|=)=u`eavZzrehPK`9F#N#?*4pW6yFAysZLfLQF!n zq_!z-AXU5`-#&EDU(EZRUFk0AIz|_!77(AXpV9Ho8Q>BX^xxF7s--+uPQaPirOc8` zOHtuAe=c?dy8T;X6Zzr7RB@jKGaX(*VhKUs=KZGo~wjw6tjsw1lyuh;54*^Q_+|x09#*QFanKp;w`r!sg0FAG9mYr z{uYahtA&8DmM;w(UMpgKW9Rs);$vx+(psx(U^=Z9m3xb4_`<-7k44`{^TEFT<5+e6 z8070mgmU6ZajUdenWqgk>RBFV4YUm&z-@65)Kd|pFq#Lmu*>*BLM4WhcgY}d;-26t z+R&F_mQ7|KaJjvWJeOTnsdHEZ=Z%rB=1_V_r-j1&foS6hmi;vA@65D}SbACL$9&6> zGIPQv(;;BQ+0cfLgFW^^(OI!-f-D}Ad#geHFQc{f&h896KM#I`7(rw1iQG$XuE3Yz z3;$8?a4ychnGTW<@l{wuG{cz$+eZ_O46U7d0i4Vt;r0KLt#7wRba?C{(CEEV9njO~^p)l``#IW$3^Q}MLjIef`=OP=)Igm7hIgpv1Kbra zxzpTq*Z{rDHewIC6;~lwWoAD8g)Riz>A#)NoXjxlFc4P)&Eu4@R+uT~7Ne+fLT>;a zh($oOIPEJ?;UkdZ8s-gqKe8VyjMqjdI(MxK<{5pz_DahI6YG`U(s&FT`!VwmtDt?! z?%-5M>*00C3gC0UyZ?l<@Cb>!NI`~p(gSB z5>WVw6n#@(CA13N_qFEUF%!vA_&!u}+SoVEHiiPb%!`z1@?zL#ye;mO*2=q;yDAAB zYd1LU_3-(kUd*^{4u+Yu7p;juAlg!QVbkpocN(j4U4SqC5;rU1SkkqW*U1|aYsIGp ztNT}awz7@fZD%C`)9pFvbD})6j%9okf|cSP2Kxp?-z2Zh?T2~LhGpUBX;g6^ z0B6^L8A6Yv`jJ&ZIkg1^Rfk9-p5s%ob;xder@2O-t`<>d%O9j)r7a>OP7q{%I%IaY zV)KCPa>7!vr2JJmqir|-)HW&CBvS0bKZ$OHoz8IdXV{GV9%~QJP-9@fEyPEn7f3O$ z{bTI0hB{l3tKcfGBikYKYKe41TVciUZ;)by$eHB7WNxYn)fZ01cG?5`w%6H2Pe1P* z&SEBzCS)i1jalkh;0@h{C$X+kG;%4tI%`4Zx{T}T_0tPwcW>y2o4J4N^ z9{T;8m3CTQ!!mO@Yp}f3aaVIs*uOMxeyCM26u9S`;?4UbFZqW%#Es%|b4P(j!L#8K z8I;)qKT)9!`0Osw3B5x5sHVh3Yy)!AjzR7S4jT5zH|ReDO`NP%f*krixC#mq(=Jv? zClR>PIqVIR0+jcIF-SkIebY+m^K@Px3_EC3%z(Aus&Buyw>XE;6ZjEw6FtS%7`9Zd zf~&a0?uO<=704;ddMV#UUuXYYf5X7~!1Es|$%SB@d@enfKPw(kaOZy{BpZNZUe#v;3%YLig{I1C zydb%YN@0F?J#_oHRL?hGx8S)rJE3rLxg0%{b0(gTs}(%xLp-oA4joAsJ&t^a|AdV} zPTPuE!5E{pfwpG4a#h(6r=q12k+ws+*b2G~)1zge^YnrLAXs8Kd4`g%_SX$#o7LH= zhAkx{Ob70UuW~3oG$WW0*x@Vc-OBBRp8!#hRo$!HIo%6@?xrwR=^C)v>;;$IfoKPg znSOZ4iv zyiM18f5cm>%pxnKH=UW|=lk~lojTH>(C&cEzuLPM3J=xW+_%wZ`I7t}{X+wv0;3SI zoGy-)`>64{)6B5;{_C;1fP6>~@CnwC$?(=V;jF0+UrjDsh3f+S)lAOM_qLxB+|B`* z(=R#VZ6}#VP^4rrV7#S6P{U7Z6aL}8Q>JfxgTP${nnY`-0mFYv^m#0 z1h@vb*e}_x^T&Axda5ssk@mJB{6Y3J9R(sxd-JhA0P*J^wU9bjEvo*d{0NSS0*@>h zA}R?Q(Hg{+R?wZPsl-_*z?W*p)U!%ZX@)(n19@;4oG@P-H<9@uEe}xw(deScHoUQq zMQ^xw!o5rpx^tSNJLS3RW zJRRNlg<uF^6^a9q`5Y(+~+r1_K~1Xv1fp%73d{^f6|Y zf3t*{#GmL9aNiO)pfQ?F*J7?QZP-6pjjhe~LXPkj_YGXjw4;Y}w`+mh5~lDXJ(CDG z4k~9QHPj(^*k99kxnM$mqr6hNrE(f(kN>>=^U~~9IfrvU=G6vH=u3W3@K*Eo^k#dv zB32qHUYDjpm2gS#WE8jx;UTe? zTu9B)?iibh;>=#Ynd60fc0|J{Ci1!`HN0`yC)YEqpI$kyIM+G9hr?tV6v7RWSzl&b z#$SUv_!}sfdf8e+W7vtEM;{<>T3N<9y_Not)>(Uw`~#=%RT7mFiVtL+^2!Odzh2rj ztpNFm&L(4t0p=yW5!4b_6_( zUi%!ffomKGod;Yi-~(sF*M*09k~}Bj(h{)O?jLzGs%A`D?DIlZvEpAIF&LW$Oj4V_*=8wpVo-}u~GhG;9|H${_E;A+Q z(c}rl1ncM%)T43(nU){HLB12J{^OXRiUz$<5f{law;9lPCZ|r{y4az9r0zVU6A8I3c;InM6 zc94fdH|zH&A}V&k`@|dT8|u64tKr|~FCO?UP&&9H*eBFgYNb@wSmTzNhW?NVP4f}t z=;8>9w8&S~F1iczf$7hlXYE`Qt{>DVrTAqwzdgaR#p!ijaWxW7aCPYmR#&}>(p%aT z@&yw8FTGO>YUCTaA9HfEUD@qF-}`(y`&N!Ww|f4pe>HznLAbY$_Xju^iNNXLc(Ec# z4zsi(#vZd0v6l2vLzyUkkG;Gz)qN{mk0=8a-Ua7yLE=ZVDt(EXOco&yn6-_AT4{9& zf{clwba*CjVXu7)en~!X*Z-Su4xV6P{_(u>c}%{MAK`7`Tjmc1ehN9IKjm2%p&FZg z$QR5Ao8ed=RwwdZqHdlZ_&9ueF9MIgfgc4DnXm2%#l%6!RVP5QAv|ugq%a zJXfMSHtbYbv+x7qtfw_tQH$V|DIPg9>P~ct*ujN%72X>2b>y|MAx@Y50=t@iOjak> zK}EU`+>{cEA&H`0tQ(39y$fZEx1BP?! z&LINzO=O;DZFqdxBi9Hg>3A(1M)awW@CSC)oJOub# zf|2>-^Va0v&Z&|U%z2o5J1;ArL9S#VlwqTNslNSi&WQe0XruN>bupJV)DIXj)@b55 znM=)Oa=1qJNsjfdZDHQ<$gmPFk0TFr^$?~HG@@bTJuB7x%DAnKPz`yhR8l+=tPv~= zS9cX?`UeLKpd)$jGvR`pRL~l3IK?ab+;C8cNYa8X*;eO>= z>Y0Shc73Q-MW=as|CGF8#0AcAp?tr^d z*toDYVY@*|>g1UpaV+v#lo7o;COL9q_(<0_WPjj18TKT6U)VHv3m4}+ zFI=>5vrn+svA?tZY_lVS{*)`jbzw&{IJiOM1HT3y1xg0T z1vAiJH-s2)JD-b+v_`3{9n<5?-=U)23P;BlA{jgFE<_FJ#kayy@fTf{naBLYSWFqV zF58ez;3n|Pv4%P+Tyc2q9=;y)1G&L`tld=x%9eN_loV_ksP3=oYvvtUurHs=Kan>k zzae(l;l5aZu|RkrB2YRIkG;^mKzgu}xJb&A+ang?*Bh7=XWgkm_m}-U_+9&aUsBZ5_3R zBDe%08x+-_px-$RfBYui%hlo(wgDmyv$zy)3g=~iWg5|UK(%`X%}FEU1vqqNp#7c# z4NE>0!mHG2>Uedkb_TJ|X_iQ&Q6{;RsBPsNXY^kXtNLDBsNL4ef>QQL?`~W(nwTfx zpL%GGAVow)1MEQl44li9-D#)nA8f}l2GtVY2`LUI6q9eAU%AG(Hn@(vE`hEyHf(nI zd{0`${K%$}OTx2UbsQ^fBD!q zHmIAu&*NZ^R5jEF+W-c5AP zbIh~%v-RRzapjQJzDOmLjX=-XiJhKP>xeuip}vQr<+d_QnJ%Y+MEVduq>aH6p%bA& zVi_qUJ;T`a5@SYLu#>i0_sQ1G1+JO>Z$~?K3cQbFoP8awg$nj$+Yh$-Pz@jBd+~XQ z@jOTCo5>uaC8{u887rpN)5OZ4BmNPZ z7s?AMVyxU&S){&!wmzt?R9eb*={5Wp3UZo_LlZ(rLq@2RxJ#s@fyh1NC}oK1!Q(J!T*?lUc+ZV2-gzxZV5)TdIA$P|Wr# zTb4dRG&i%f-fB@L8ywY>aExCI3&hW2jwp&wsRk%HTS6a$O@g}uWiW>p!`(KAW*|a83JR#- z)C|o5LQD)Xm3qr`;jh`7I$yaQuG-FCj;X>5?C37o&f50dme~5+O4)AnNpP!8;$E_~ z*#_Wo%{$;AL~O$|GoaBvDUn6 zl^|zQ6QI?NKtxE=Dg80HOkeBc!K-l_!_gZ{Av z0<*PYYA3K)%U2eHUT_UM!oqTfv`FeARgidTEj$#Hl$q)p?Js>VRADXEs!AETlC)F= zxmSD&j#dk4uJjKm5<}&avQ6owEP?amqizRBs0J~Hm;nM+5{TLrKzS)m?k6iy%c&fy zE~qqHz^i^pXVKLdfql&$=4SG3po1L8b!O^OrHLrh4ZmWxk_}auM~W9Ggw8;nH7g+d zQ$Qzf3BK~OVEa&nI7u8YP7zbZU&T`xH7d$Al-g>2t-f9xq`MePweAsH$sec?J%bH# zeQhV~me52npdnA-UNM8|(bP#&BB~KRtr_M8rPoTv!}M~W+8vK z$QnSTU_>}UUuLeegE1>Xo6XI^{4@#tvQ2!9E!ma@zxx>b7W)I#>!iYAa zjKZLn)iyZu6F5J+iFssSsur!$=b5Q&WiEru;_KOyg>#M^r{JyvAJ-|zNFmI=lOMtz zg6_2f(*-(~b>t!9iuJ_Ih91i`$0op4HYP_bwO?>OqnBF5+x6lpCYfBt)!}7 z!-2A2pN`R~9vs_l>K474?Z;QPUlKT>tv%KDH?MG&IgZO?ud|!jfoxG01OY~&XVO6` z5ssdCswq{UDo3%@VsZ_!)>>w!7~}Ls7>nM6iP8){t=;fxRm9#dUEVG)l4~k{P&~G1 z3-uI(Hb~v2RaCzP>AWT=m0iI-+YGuHue5-E?XtpSH-17r4iDxIW0g78>HxO8q}A!ka}r43@FxDlR|yU@IBhKu01*jZAf@^U%3D%AcR<-s5zpFwnRByzhRBMUV3 z5#S%+MP|DZl}e{G5?hR~gI4gBtpaibxy)a53iXm~L+*mB=sU2-UKypq3;k7l3dQkh z<*0H51hI?CJ>?IjI9!`W!8&OtMN2>9p0i~S7&3j-2<^VMMV|~7L}M$R7)=#nZm=`? zuk79I7j0E-EBO%O&KzgsD9#W6_fceMTC*mz2T?$%BkA4r6{sX%(a-4&FdFMo1Ic;B zPV1tX1P;E15r3625UtB;SOO4!!KlMCYf4EUL{!KTR34fJk>q;xt>8)9RViHIPEzU zx_9+Hpcd^jeut-PpK;uHW-P~EU$g!|hRTU?xI68q=QAF56}tktslB$}?W=_;j_Qs& z!dLb(h`+sK8FnmlpRNVk_XFsyhY)+LY_p0v3Ou-d`dZ9E)AXP8$%t3?fS$Rh`bn9q z?1RRoFVt3zw6j_p{kcBPC~e*`)1U?Qkv-|ZnXkAl{AAlJz72@DVccl;33CIZ&{`&m zX~Hnf1$rzULm#HTq0-4STo4Nzf;)JHG(d*vNDak&l}yd2L~1S~0IQf-?7kId z9oolJBE_nSmEBlynaXMlpm`V%uI*g8xO`C>E7g^jN(EAHITPN>+gNQrR9=AXttd`) zg&MED)fVe<(2!3yBf$x3099fOP@xsdOTS<)up2mrZ^#X27c;x)Q`Ai|k$ewk(OavR zbpvg28@P-UP~WYzB3cZtqFQ;aj;4bCTVA~iuUaLgG0A_Uu2*eq6sZ>zJRJK}t+i3l*V}<|5N$R$~#l~hUFr0X6g;f|k$_nIevLdyGiU!Fb2jgEk z*2kW}Sr6rG8Sv9C;?tq$F9p)dVY(T89j)R9*^>Md^vW$(IEe6GV~H`{_|X^uA3=Bc z5bxw;iTW#Kn8s?;wZ({z|D`=cPbdxUMiTn; zUwSoYHNP`om_y;{{0h5?MsRXgha00DF%Hzc08yFj4yM*7@+g^3-XR~6kI8SS-INnt z(G1kqNO~AG4D0+P%+)uI4#pkaEf0OIf|dzBer+|N{Hg2#V=YciLHw^S2;=j$G;OK2 zPTK)LNEP`1OBoxDNUR|Yb2QEDck6!spr@^>6{~%9ff3ee?%y58^8w^daV`P%4`_vxHluam$43az* zja6)Ma6jLXKY=i|1gE@gwCY)fEe+*&-rQj>G{>9$%x_Uc4b2ATTD;RJD+_$0$HWGd z=Sk~3tH4}iP62gey?M~Qfi;WWs)nCV!nrONEd#u7i5N?MAbU_}sq2XT-K8?A%NV(R zR84vay_P;tzd>(_VJgB~&=4c&c<|8*vm@A((5F4bThw6s(n}GI2q$--9-mm#tuodv z@KYO_s&U>}Wb`%W8K;dP#>*+7mSy4zuHkPc^y@CnRoATYV5L1H;>a}eDSE~@(90ZH z8I)yqqHkh`M<3Yf`M?5F8h?gkU4CE0K!E9TLlVGlxiDqpx$_yG0jFT9d z=3vLx#b}P%yNZ#3mFj!+h-GH3Nm;*{&CHL+YNIvg^>CvQ){k*`uHMF2jAmQmntov9 zO4g$$pm#7> zN1O+bKLsVS7-iu#b{m6npU)t#B%^)S)Ln>gG}eFAH-lK?!LGEP(ZFber%1r(4uNdk z4(%ihe&!_W7+g}dv8UMu0%S7A%&w@FNQ@F2s0P$SGKpm1Y)Zjw7DYU@ezE$3Scfs+ z>}keeE%g#t7S`yW4Ig^>N|Z=*qm)4z#V}qa!MSh`=To!+8IbitX#WM|NAfw?#AiU+TS$%~+mU6+isaXL_eNwxvOehq4L1!Q zE(4ydG;6Xo#Oi9b01>CWRR|{(v6g9SCT%swnM9{89bBHp@E-GE{4U46D`Li|ioVnm zzcUn{SYmCnPU1v?*OrUuir({rC;?B^LUK8|3fFRS0cPuc;Qf6jY4pdcD2rB90@Vf1 z`R<_5?4ur06rz*e=)!Q`)B>@gBl!Z+l8z{)S2z)A7S2wpjQz}OQ2TbHpB_RV$TvN> ze}5|x%;DacPx^tX^Ti3DZcl<{)#jxfIWk zj?oi7)8yFd~%xrkxNYr3atF<*2?{fjJe>+G;;kexB`3%^J6~WbN zOLPaXXe2QnTEXckv020d(B97zPY6HW#EI2w3eKt^i1Xki4Ya;NiEvg9PO3U+^Xjz@Wbo_F)uv%Gd!C|WR@A+9_cyq%P zP&bvV23AM3f{E4waFtHtPM<6{{Di}aHSkyEgH-(q?cgeA#@~sJxYiSE5rTOS{(Lr<&iu626f#P=YVv>*Dl~& zevdo$!)af`P!FRqYK;BgD+zTni new GameAudio(src)); + + function playMoveSound() { + const track = moveSounds[currentPlayer - 1]; + + if (track.track && track.canPlay) + track.track.play(); + } + + function playRandomMoveSound() { + const playableTracks: GameAudio[] = []; + for (const ga of moveSounds) + if (ga.canPlay) playableTracks.push(ga); + + if (!playableTracks.length) return; + + const rand = Math.floor(Math.random() * playableTracks.length); + const track = playableTracks[rand]; + + if (track.track) track.track.play(); + } + onMount(() => { let i = setTimeout(() => { moveDelayMultiplier = 0; }, duration * moveDelayMultiplier); - return () => clearTimeout(i); + const cleanupFns = moveSounds.map(ga => ga.onMount()); + + return () => { + clearTimeout(i); + + cleanupFns.every(fn => fn ? fn() : null); + }; }); let innerWidth = typeof window !== "undefined" ? window.innerWidth : 0;