GDPCXres://.godot/exported/133200997/export-01a80e3e5b422b06bb3586587c17eedd-CameraMove.scnG> L8km\res://.godot/exported/133200997/export-1ec5efaab30728f9257dadb506f22b31-AnimationHelper.scnˎ(QhpPres://.godot/exported/133200997/export-3070c538c03ee49b7677ff960a3f5195-main.scnУ{3-o=h* {Tres://.godot/exported/133200997/export-31bb9e0e33dbde27220aeddf191439b7-Delay.scn@oĦj:0mYnTres://.godot/exported/133200997/export-559b1c5676d3a0a3d38554cf8e26833d-series.scn0kgþI#>SVBbrPres://.godot/exported/133200997/export-6f243fb1d68ccefa36489755e3a67695-ping.scnnf(H5M,res://.godot/global_script_class_cache.cfgР88~$}PDres://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex\ 6(4d=EQǮVj,Hres://.godot/imported/window.png-14cc86997e76a4510ee4efb34613042d.ctex xsߌvres://.godot/uid_cache.bina8DC^$res://components/window.png.importxJK6>4z߫j!res://events/CameraMove.gd{,-0鬪$res://events/CameraMove.tscn.remapgԪs#lN^;Ûres://events/Delay.gd[}Idž% res://events/Delay.tscn.remapbr>$zx}qb}res://events/Ping.gd[أbҀFS7res://events/ping.tscn.remapa9W-* =sM}res://icon.svg@N]s9^w/res://icon.svg.importK>׏)Mxres://main.gdPzd'_U<:res://main.tscn.remap`aJSw res://project.binary7?kODF-res://series.gdPG *9l~xPߍres://series.tscn.remapеc4xkGcs res://tools/AnimationHelper.gd. r(res://tools/AnimationHelper.tscn.remaplW_&SXl>O`'d6m[}̵9>۶md߷ `YԳYs@m%lDR ]dܶ lNS>x@ $\B@Pdm1Iz®mƔ Es,֨7PmHgF> ܶm݅r#v$I$?{k]m۶=cyێQoIR!{m6~ssPd5l- ۭSXWPn$I$ d[+6Bm6Iu^#,vͱm۞ٲ=[iŶmB"2# I6\ /tOzoA߰PhQH;xP>IJq}HKPu'#!1Q3,1 WP?MBJ.]y8ГCC,;BqOާ[zʋ((+{ HW{8Tk q"TqPxp˺pmq\$r!.z>:,gr?K>k&Tq= HD2:3Fqf6|g<ߤC;CN yΓ4_#5C%{Fi(g"3sβJ r J3`1?0An.Q49?H'sr4XP e:Ӳ O*yvLb0K$rM IL<ʄ{oMs}͟y>.sF3٘?g|<`s!nW3qHe4J;p_y(,0is^rNFF7=qc*2$dp2"Er-PsT2lDuѭ)(]v&y`cp|> 3g"Ήs~r\U`ryy<:۹ː9fQY1"ˋ &snLQ@o袋!g83lcSnq[\Mr2yOh"ͱR-ߙ,ϣ N`aQqA2yD (G`ppΐ 2}eN28s͟n= ɠȸ "j2OQ1hp!*F b&[&2 gi egupdDD BI`΃ROjp:JRbQc):JfA@>L)HU@s'o8xp6g ʢV=稖c{4:!=X# 28SPHMZxHan#pB]IGe­09IbEaeH Ȳ/0-8.Z(,OBTXȎ=foKҲGZpP@Zd8%F7L_HZ\2Hy3#ypb1ܖr), 9q

༼A NpB1<' Ď y\{|_3:k_>CRڔR& ̚XDd<@2I=< W-SQg@s)2WAUс)<9WPD)A8Dv s{-7H:#Ay^a>V7]덬0%(+\3iLT9bg0ц#:q^LY ӭbڀIM%8Q$_Iԣs0tڑ4 6أI&4ǩ|=E91iYyKIHyyq|U΋T:)ps'b$`JL'Lwj^I8xͥDjKܒE y?6Wzp}9' % H }C>}Dh5D 9<&16:+\t +-0xYrO1r.ȕklg@JL8RO OH zu2_nAHR[ta@g&F%ko7qZ#CUKQ@q>!*YGGތ&)ыl!T&cх#j쁪Õҟj? q.mQūyC"q*u SOE䀎t=[ƩvP("<6lf1RIr͙Qf=#c de*xPtt*بsW{< #pq8s(6 yL2..atu%TE#u9Rny=pTLC dDy@g"q㛃@%hRἦ}r>GY5X]d"P@wN ^Hl`ʤQToGC(%k@F96!U(J#!J1c >SP"&\wst$}EҲ-{LE%'ntMZ;3m1>lrx矜@aT)$P<ɂPy/A̓Cym^̳QAB &gRΜ1U3wuf8AA'iRǤuPM̘) TuܢwU|T9&C#NDl!ryF!9h [Cm.0O iq0FdKrp& 4^enzjVݝ祌aAAuQM88}Iе"ƆSB[Ev\̙JZW/[9MV P A =rbEgޝ'fxB)uzuj2u5rC|+>}G 3NIɥBӪY6LQ8rY p b s8|c`Fv -B w!1!ӳc|vD0wFH2&<Ӊ I|~su^R#E q+ 3 iḺxҗRL9e'~t.4R}38̖LDo)GH,]lQt0TH`^*jL(s&OY;ϣAK^Gw{z)PO x P"u\7`ti,w2h$";@TL`D w~ c.>atn/e2^ Єu~oi~ @v Gp}%2y9zjˈ\$4{Tdp`2Ig`ߪ( m;2K\ω3y q(K@Σ/˲p~bVzƚr͟z`Y£|yt[sAL.:"ӽ6iɑ„: ,BR4Q $}me]m#pLκc\LxV(ILk::?ayY9 k0`Y02  :2Cxe@T!XCg7Qbn`X> 04`Jm~É|ŏ_;TA F1Q:W|OOVXC_+g:sּN ~EGhr`{Ż@@/~􃟡e{] =|% ]#OmoĀMkX9Q9 '?]>g{AG4BS}1*ǚc{ґa/2@%>>Y_;:{Xth 0"4Hx@ sқ{w+D͵0<,|hJPl{ӯ@P*/]`ni)ؓ9w T I17q6C (!s2wL!P+y|=FKO-K8>yt0%Dt4 ! u;Ti`ej``~bN=#ϢQ&g[o?uAqv  $ Ѹ05QFFNSe{љ!?ZJwR&]v)"i_A[cW̲,dLK!$I A/((Q^@N^7(~, O1vL[e(VbG;m8 0d`/?A[ ְAHP0U:p) X:zzu8S/ ˈb;NU@9"- —?=ɀL $7DM! )AW_u 1.D9 PLↀ{r  )E>/GCT~Ma@/3F' ]nx|8o|O4~G"aDYN8eӈ=HĈ?щB]hyvO#.G9 ߷|rpͫ}׸۩'/Cpy Иuw04'zpNPQ;U_=֬%>Ë;q7\ CN~ ߥʈUCc~cnR'z?|qAqo۽NG2o tRE`wp[""=~Rs\@Z`1fEUa/!^Ę hw9#)sf Թ|7M^3Ѹ1߽?-U .zB L4U}@hGM?~g9qo=Nw:WูAmG.#B X^t)#fTGDx3'8q()ƅ>g  G7Rs*GCBK;: 4@cH=&K;<\ _4(U< /1vSeMO _~MK4@S Ŀ0M]9&,f1sPGx+~/!xkPwr?)RKG4Pa8G[e KӐ^DQ)?c? A P~E,&7_% /Cr8T{  9i6 #"ɇ/2o]_1nXqe~猸^_'=/[!g`zLZfq?d8p=͸u` !b;qUxr0b=F̳quws˶˹] `Д-^` U2TQ`Te+lX$w]H6Ic.'*wA%3XW*>s<Dw+@ -vP[ 9#5{0/upuϸ3U:uQAOΩ e  ږ M 1.1*p-@4ƅ'ݙPa(T#b>A/q qݯz->ˋ\ r>o/GV7kYD;zA_N\*nRɧg|c ∁4"nbv#~x=J:s5>1 sJs` X#l^j`þɏme@lTNol1~_\7nu-W|D`CX4@6ѡgޫ ``)5h@DmenyңǏP(b*/pBGS~ΗhO;^-1>9 й8sD@ / }` DPy WN3lG!`v[2WW=ۉݲ\CC?|]exYQ <.0܀W Khs!8 "0nxSv_g00oF:.\8ueնfKB@܂p+ h(l)֖F o[Թ[~{}_#zOJwDOyC4G*0\sjL?  *6bF AQ#ry83q K3~yKth˾ƽ^^^IA -b$̆}{C(&1p# )T#Jr\rŹ#iHcPqÏ8m`!us']Wܲm1рHc a8"!C08Ψ(lIQ׼.>,m;;,8j D ^/lBGOE#߻zU@M=>m!P8x5>)8Uq3Q WN1wQ<16LmGOz6@`,!GQk=C AA "m|y#~ck^ĩT v mGg`{~E8SQ} G;q*\2 A@ fFFR/51'Sy>a;PCU`|-7 Q!,N|pu_>(Q} Fvv=} *[oc{aEDmCu?NWEbJyAE {أ۳YLsqabWZ[쓢 P @@ _8*\xP)N1pTh 08t2A )2-JYlt0I<8D |ߢfG"Trwf|F-cELuFJm\,!ϢB" jc5mTPuJa7Я3G =93 @rA$ 7# "2W&r䫧|$?'yp}!DÜ ;"ngvӥks6=ɜA$O΃Zg\ =w'G< f'f3a$Ym.xgV&uKgйR2gX l慙)Gr@2 &ПP7>s"Mk5_f XP׍2'<@f |iyK272='?9`EAc3g9)zΠlLP' E _w~p|I8E9eh"s: Yy~! Ձ/?ȃ:?3`8J*q8::1.e'}ymZ*,]5SD)Fm^҂byΑ&B8EABx  0BǓqf>ciO9Eʏe2yLkcQZ y>pOÔNͭ2ފ6g2M}~g<)[bQٛnysv mU H'l sb6`R"R|0P&.oݹsmy1Dϟ+;oZGH"`DVɑ 4BAsȎ`\נ@ mS B|lg$Z8=g9*i&%SH,5i9˹HgNʒM$;힣c"jUvc;i9hCv ѪߖdoKVT9b3#LvK% t`0dLODbDFmp jx>C,ꔘ-"RQ3sc"L5܄&FqLRe.}wNǛ*Dzd@獆"-2σBZHRd$$Whi͘N7dpjԂ?3uLRt&绹dJ\CeU41ISwBg C < D> p*N=0@(u٤|'ͧ3aoD$|фgr8<؂  &poȗe xur(G.jzR7&oTbY8qͅ*G}0`D@LQH`Rx6p`9)ќ9ȆxcT7ܐGﻯȁN ^NT*Dew_EzFp)N3 pq5ssAe$}Pc)rmNLC y^ڔt s!qpV}H d3DI,bʆB:IGD#Jy9ɂ)fbrgU;sЙ#1(h0M+U9s˔鼫qT訴>c CT'~EƐl4 .5#Sc l罡rgCT )9ИV* Ƃ˴5cE<2;wIW`SuCIygDgD$_Ȥks^ِuL9~-3탁x+ :?(KR9pZV (Pb#vhϝ%BNU[T^FGV{'9ƨиeP"& ,{,^J.8C x]zcj"P Qt:2ҙZs įLE4zG/;\Q^DjH ' =jLyWû9]c -s4})y/m4tpH, $ FNpΐt,ŕ퐽 ;GOM !ɝ) Cd#F#pXP`-xC -L24?$NQQX$qcdž> m_j<2ˤ2s$$p;Cٲ{tYV$9)9UrgEfp nz| Xс͑9H8ga%݌f jĺ&'WEy@.s0\ho49g'325 \(Q;V8svo8X>b . AʿlÉg@)n /=?qDs͋T,~Ń!ECsTWƣ)Z;+,3c.(ҵ/7:N>|sWC$@Op##N:g&VH f&yay3x>Vhhgǜ9?'hVsH0@Qc=ydsșQ8n:6("Ubaz̻|fc{N0BLSG7ƒtvD\? H$K^Vf,`sL/sQp^$~|ƹq/ I ZAgiy>AOFf51}& saQ$#$Б ea>X8ҙ`rz{RIuDb6ܕN"Q8o6;s)@t6;/Q[_,@yΐ_>vrdW,eN Qq|fi%.zu(sSP$)@?\jĜVaR#\\$' p1qVLU"愄pܬ6Ɩ"iB׷7Q<7!TJ9,tQH8"ڰ 2I0IUC# :cUldd¡1j2JKmNAhdf#_d"tjUQl ' D g$2a vJL5{v(r"w0۟2 E=f wdƜ@# %>9~J"@jǧhe0P;qbÑgs"SaԞDJҦwX?Qco#[AbGBZ9YS 84m+S^22 p2qoRWj'g-40 `8ǪnzqDFlS1qnM.FFL@hB03@sX#aЃ-/Gl4xH) mo;R`d̲ "2tS"PVdx)dvF(j)׍G4f-UFqα1+i N uPK*i Dh$.B10h Hi)ed&QqID8zMl #hkM,IZ@ mȤ*,Jd|9P&3eW;߼kQ1"Q"8Hsu29d j([]Y#:16ڀ}beM"ȸh@VFt~$˚!28C9 XdD) )3LrOjcR/U$dd[/TRHDΉ01PTXLTT5Cs~3iBd=Yq)ډQ$MEIPHH Ȉ#c PK8yRN!2CŃ]RT)K\g@@ɱ02`WɌG32 ;xpjFc;||&FG"q5$#cE26tz1B38AEM6h HP&1fg$gehjeZu$ E0B TQ!G11(ɣO!Jbf kY$f"B|`$FD2gd7ED @<2OqR2iB(i0'9k3ј !vBPKy6f큫 6X1'V hbWD)&@MBlD&S $ V&F͜E4i/Wk/ƴ2 Dk72Sb 4- 21 ?^zq(t ׌ ZVrW%,Ď ЈD1C3 P"1qAOu+I԰6^ dRxCʤ)c:6&t*rIEd"Is 4\Gl,QM@J2'i .ѩĈAY$B"=ॣ2iB>vY MpZLs >4]'{P̍Q6ٝ^*˩F&=#.ڃb$2މjcmN0>4e!!+ѣeAbq=EȌ!8DL"AyN ̸)Ԅ!$2XJs&Bn)@d2mqLh̪IQ7mޥg4Pi ݰ!@(ੜHebKS) Hl*gdy=Wcca$QtB6&Y7*Co7`x ("OLe.ⓥi ɶ̑o[}zierJ8F8x+2tJ\DdEfY菄"p@ef1Le E`4Q%_Q 40qQ)G-h /Je D76{IJ/Z(EBS<^IlP#3@/ťN RPEr \B1F1؁؋`}Q`b0O.ZRPp*LM"f'\3, e9 ;@:w1=ԩ40pE6H)|c #>7T+PGB171K̜#Ii HOu gyl̖Ø@jޫQFPgIyz1+F ބ3HYSkIb8v\$?C$F9@R94}#pʬ7Fв !`b qZ0=51Cפ'4&8'Ǹ! Yee,abԘD`g"gv٘A#<#a/>' Ɣ;Ge4LNQ? NUt7[uGP# =Th `q4F( Z2omBI3dRoe l,nI4'MgPDQa7A,# l">\F#X+CP42 $OF jPħt+<WX)AQSdG|'Q)o} T5z'SB4F@rƺE l u6ˆ $1qDs|"4TE)m4&Uk| h41Vp5STFQĬ#<5W |pB?L # B(.--*PHdGbSu)r Yr3(«N،L L6J‰fP qvxC1238q.ͨN>Q!1yI"]3aSD&(RtS_gvgpԥQ[@qnL8.]H|P%9~_j6tVrh2 8CQ$-R4yD k 1`uJcd$MO"S93x +;Rv.z!5h 0eO9S΁xӘBGϩ‘TS3+4C4 s^PXa<&E+>0Bo$nMD} $0`h0I*<H 0IŽYOF( W  z<@cs0 ;vH {F 9ؒ-$BflgX1/G8S^ u.&̺ 3s2c (&QsT$0 KƄ$EF(8옠OHSaLCo@be\wH\N[3,"D]2pL%~EKh΢1BaЎYp5&<0Bc&o\82>]b @’4@ cB[& QA C4Lo0Up@f|f(@dqs2DN:#ӈIN?Rh m V%IbVPL"`ѶP7Ʊ\mB=e7FnU97H@eG(9ˏQ( t0g6D&~ 6|*f iL#](9CQp{#[#P(pș(`3yU,8f23"2 L/1`a 㭛|$pxY·0(\RE/1N/(6\E%]* Ldes%k1I E3fe%:Cddv=X !E#IrBo-Ƙ σ՘A3bmΤ4|bP42&f{T#nr=E8qLDݼ∤@ i"3@8XgLkʔL&Et Q}*&%f& F{4&6 4#1W^J υ8ͫ$~H0Ţ1"pM#Bf E X`*@q;]8S0ƈ@.ib#1Fj T=9741s^ Q hHQM̄0wrTTv"Vx$Eh$1J儾M2QH B1n8@&1C8;&NaM :^Al$f|~0KQĊLaH̻T)BQi 1E^A`lLr!g1Q6HdR C6FN#P#39W!tNq+_ZҘnT*\'T<`t #֍E|O Ddkb Q1 s%*Pxcyj%K 03ɉt^=( s*((a|l_)A;2Ɯ@%9%3_otNY)hbe|`bJs G^=aND/k)7Z:D+jj sVr)K) 1n/tECm1aHMQ*A&FsDf9Ce %Afq[MuJ/87]}Ƥ`\X΅ch1NR7m(j9"3Ohe9 fӤ&y!=@!H1`L \]1ahL\U (* Ec?u[C$o? )EE n.(bW&QQcF4&+$ QY%'UB4Fҋ6p혘"S~Mb"=1D3/zН5fJA4WapuKdfJL#0s`!'ZmW94+3qg&4R\ Iz5"QiO,C10N%x}VSGNIl"g2 iLH4F dh6H- >%3 R E`1q:]fЀ8`DrsMve2@V1heMR-cIe&;_ԢBAf"1l qcy,FVeR3(JHdzvL85A(BNPq>;Ntcb?6]ңjc2/өD&Em Eh p$ޘ94&+@>Yk (Dd#!@VxGDcNep#)ȜR]Qzjbrg9eby`dGCL<1APYd21$F9 &YWR3d`4`T' Lz󖗒 y,>]$2X"JSe.S~5LD! 9j *9 8O'abNTxMEM$AF}~IC&Vb\aj i4嗜r0B1eM2OiAC (^>L3KcbZ PhC^h[ڔG&*Pk!hc' "-O1 tNbbh%KpwJ2.IR< S`7 X04CƦbp!1jF:2nBdj}&i0-ĀIFxN&@Łpz831b:%zrDİ2ݨJmrib:X)q'H8yLrpQ"ژ Jhy<1ѥ(#@.BRM. (Aa# 033xyy3P]̤y!ML`@ s5K(XTlIp ?O<29 RHЃGBQ9q0n@q2]E1 q4/0#X.i2yT+/XQ#pt556fBHE-dxATeS,_lGX^W+9^Ud9 \m[@`ciXd9BG1e$yS>ˆH8{L @1J1L9G`6! ̛I@rc8D/cgF)gL}F)1IΉsgdҘ!/+P"1 qNMT 1^`IKe)#S&]GL`1/fG@Icp&)fX 22@_˫&RdbnRd'bL+`AU $PVl;1 OLTO>Ap4 1F#!Hen_(xa7v8P"2 w\ʸũ*>7(Ny\\yF&HPI#?5؃3 "7!#xIT5&0nM'cD/bIiyY/lr"| FL6FKjdf&tݤк̈htZkMhd|hJRF&/Hx@ؙ9h= Lt"hliN3udpjc}3=U #QMKLӺP&kNP Z1CKB⨌rh{ 3L)8'GK4} !C 7}c9@`$3p 5Fp\d^2$2"*<8#Vsl t5EurP1)6L77h1@g*bA@ $k"A欉 &͔sO)b%攑 Ea1 )>ǁHA]6Fja Q¡1n/IcE#1FCq 3^J&VEQ'0y"g4F%\y(`4/#ir6M#qqZO4'Vc#(2Wd$1n S&D1)^> UuV86&@(CvăIPX:eyQV&!AAc&NU#QQ&U0,i$h( !$9"&J6 @`ˌ̹.P6%iD@PcB0 "lNa]%Nf9\ȉI ^Sqa$-X)cP aD((*:QDSVbAQ` YMY#ƔKb* #I$kLHe2 7ș!KrD c\ ] 8F+9i+1QPlV&[{UqDxɍ9'D)jHsLʄdhd%$Zv!A1XtH&Cȸ)ra#1b$wUM7 -F HIM @QtੁjL! ̨ A1bA&q8Ae4"@c0#bXp0@*c&g,C(FDk0)1 *nsHژeX 2ȉ4&@@B 8~C )` HؑPuC1pΨQCTM$u6AƸp֙c p($#sj 2 d ST v957nRę`pzAg 2Ź}$W!FO<< !kQV;xt0RX|G}rAhڣ!sDTɎ SVѼSh9RI8PE0U1I3#10g3ցcک:^ 3]9;F=nN~T"i1z qu Xg] rf+ ůE'|49,\-(|t&&X(]0#x?8.6 0DgrgԻy.V9 "\u$("eNFe/e$g.C 0C3G2cGt$īr:8 qM0!Tps}MGߖ e9leƔ1A8R^FYwa&ͬC 1,rJZ"̽QQ,Sm?I: { Cq9g6Ip`p{A\8"\B'ԉ'wgAt82W,2rg<ΐwYqX$<ʄP (.{pe 1ǪCy&DΦg d sXu ѥoD@>2 PquTOXova 1] t1uB3J9L,]H{ >,3cyQ((J fiQpE#*'C嶜 Bl5d)qܔ S)mWj#wQE9, `! Aҁ&r(t cdxLRe,E< ^= "'L::s#yd,5BY@9SbO9!.ͨ?m\×-zH<ޛ%ǜdns-_'fVS &=giu:((J"ҐPU*3wnM1]x!pL-8!/CҨz[1}_GlyfP )"J iN y^.AJYa:I#nqBXȝCQsjNΉ"L 9hafg1gFOV%}g8J|D"4hQ8Rb %*Gb'z/3[ۃ#L Rp ✼Ic#@wJớJp~?jh(Y$3lPZ!Y"/ȣgP<B72gpD𒴇(2-8L2hBMvB9K 0L@A; KB^E  #8cAљ#jxp/lp)d#fUBHٷ]z؊9KCBɐ$QbeT6\k蜝;d_Drx, a\Ъ^uO4$05^6*m !u` RAVj !>:ݐZ!e%j'bn㊳S41 L}a#MD "wF+>C^V#RtJgwvwG'*G(eg4gė$)!(eDO:g,A8ύy̡4\ײyZ]j=s^5"V8$ G=$NWWXC=j0</Aхq>?a!c2CKХQC BT DD&s.tu@ C*s@Fjess !#sxQ)S(0T{NR\HN/+AFQATK}M*/ xF4ĕDfA8AGSa'D#IqEљ(y?12/5=͏<ǎtN ;vhv}:xXM1׌JKs8=aXky"zCލpD1PiMcP3;9p>1i꾭nXG С8#:XyPTD1{֤L af =G]roM~ @C3 fDʑ;:NkDI  J7I|H8g]0K:GV dc`F4c4A!w`l@e3͡Wx?+71A$N[+٦Eap;3n{GA 2g[2 !nC6;o#ytt<.R BR-VBFJ1{艢# Ys ̭z|d!ju 0&Kgk Be6T ʣv䱫LYHI=m(ۛ-:CL,ss0זbrDE YWTt';u `>]ކ0C`;Kb@$dgq>O"ÙO>e"ɭOQ==LY"Œeqn^υU*tΰ+&pY[,筬`c|4<(sM+P64(LsXL]4!2H>FG sѷˆ,g})FImAܘL%ZԎDgي{Md 9BSQ\z\@-9>Hg٪&y">1D,Y T8)b(Yt (a΃ ۲pp1sFeC,Fl/vy6#s|& :I86[H.S.2<P>G/Cєm0p GOh2yW&g0 !R2My8u(ypv r w&s >0d9'™6G9"9=dv6BtK"3bL]_y|2˿eBus΍3A4p4VTq~֯oB / @W{av 6Dweg[1"أ%A?zڲ*8L3!1_'@]zHAd7{ҕ~| EPN줫HСcY\{Ȁ33(/2ryy]wY[,sӡi}}?enJ'Cr>9$K9=*bxgLPaH"2E. ѥ|fs_@iIʭњUPƶ _\ ~F  2r̋'R3i뿮 xFEUbSemap] importer="texture" type="CompressedTexture2D" uid="uid://xmgycw2sf1gw" path="res://.godot/imported/window.png-14cc86997e76a4510ee4efb34613042d.ctex" metadata={ "vram_texture": false } [deps] source_file="res://components/window.png" dest_files=["res://.godot/imported/window.png-14cc86997e76a4510ee4efb34613042d.ctex"] [params] compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 BU#extends Camera2D signal finished var activeCamera:Camera2D var animating:bool var t = 0 var ta = 0 @export var animation_length_seconds = 0.9 @export_enum("cubic", "bouncy", "linear") var easing:String = "cubic" var originalZoom var originalPosition var originalRotationDegrees var originalScale var originalSkew func start(globalNode): activeCamera = globalNode.get_node("MainCamera") animating = true originalZoom = activeCamera.zoom originalPosition = activeCamera.position originalRotationDegrees = activeCamera.rotation_degrees originalScale = activeCamera.scale originalSkew = activeCamera.skew func finish(): finished.emit() func _process(delta): if not animating: return else: t = $AnimationHelper.normalize(t, delta, animation_length_seconds) ta = $AnimationHelper.easing(t, easing) if t >= 1: animating = false return finish() activeCamera.zoom.x = $AnimationHelper.animate(originalZoom.x, zoom.x, ta) activeCamera.zoom.y = $AnimationHelper.animate(originalZoom.y, zoom.y, ta) activeCamera.position.x = $AnimationHelper.animate(originalPosition.x, position.x, ta) activeCamera.position.y = $AnimationHelper.animate(originalPosition.y, position.y, ta) activeCamera.rotation_degrees = $AnimationHelper.animate(originalRotationDegrees, rotation_degrees, ta) activeCamera.scale = $AnimationHelper.animate(originalScale, scale, ta) activeCamera.skew = $AnimationHelper.animate(originalSkew, skew, ta) jERSRC PackedSceneresource_local_to_sceneresource_name _bundledscriptScriptres://events/CameraMove.gd PackedScene!res://tools/AnimationHelper.tscn2 qlocal://PackedScene_gc14mO PackedScene names" CameraMovescript Camera2DAnimationHelper variants node_countnodes  conn_countconns  node_pathseditable_instancesversionRSRCd6otp# # ping isn't really in use, it's intended to be an example of the simplest possible node behavior # that I could create for the serial event system. # extends Node2D signal finished func start(globalNode): print("Globals: ", globalNode.get_children()) print("Starting ping! ", get_name()) await get_tree().create_timer(2.0).timeout print("Finishing ping! ", get_name()) finish() func finish(): finished.emit() 3hVsRRSRC PackedSceneresource_local_to_sceneresource_name _bundledscriptScriptres://events/Ping.gdlocal://PackedScene_jvxam  PackedScene names"DelayscriptNode2D variants node_countnodes  conn_countconns  node_pathseditable_instancesversionRSRC# # ping isn't really in use, it's intended to be an example of the simplest possible node behavior # that I could create for the serial event system. # extends Node2D signal finished @export var delayTimeSeconds = 2.0 func start(globalNode): await get_tree().create_timer(delayTimeSeconds).timeout finish() func finish(): finished.emit() jRSRC PackedSceneresource_local_to_sceneresource_name _bundledscriptScriptres://events/Ping.gdlocal://PackedScene_7dwaa  PackedScene names"PingscriptNode2D variants node_countnodes  conn_countconns  node_pathseditable_instancesversionRSRCl/# # This is just a bunch of static functions that help out when you're writing animation code. # extends Node static func normalize(t, delta, animation_length_seconds): var ta = t + delta / animation_length_seconds if ta >= 1: return 1.0 if ta <= 0: return 0.0 return ta static func cubic(x): return x*x*x static func easeInOutElastic(x): var c5 = (2 * 3.14) / 4.5 if(x <= 0): return 0.0 if(x >= 1): return 1.0 if(x < 0.5): return -(pow(2, 20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2.0 if(x >= 0.5): return (pow(2, -20 * x + 10) * sin((20 * x - 11.125) * c5)) / 2.0 + 1.0 static func easing(x, easingType): if easingType == "bouncy": return easeInOutElastic(x) if easingType == "cubic": return cubic(x) if easingType == "linear": return x static func animate(val1, val2, ta): if ta <= 0.0: return val1 if ta >= 1.0: return val2 return val1 + ((val2-val1) * ta) +CRSRC PackedSceneresource_local_to_sceneresource_name _bundledscriptScriptres://tools/AnimationHelper.gdlocal://PackedScene_mmevm PackedScene names"AnimationHelperscriptNode variants node_countnodes  conn_countconns  node_pathseditable_instancesversionRSRCtGta$WGST2 $ RIFF WEBPVP8L /!"2HlmlHQ/H^޷dg(9$EZߓ'3ضUj$ ՜ʝI۶c3ɶ=ԮmmGjmm_XVr*snZ'e S]nwZ:G9>BmItR#^6($Ɓm+qh65I' F"ɹ{ p "+dMq  .^>и6aqgDh:LA\D \=k(_d2WdV#wo I]q5*$8Ѡ$G9lH]cLXZӞ3֌r22ؽLdl1.u5!]2E`+H&TDި7P&IlgC!qյ(_e2ic 3iڦUjqRsUi)wRt=c,if :2ɛ16I^^UVx*e18%DzR1R'u]Q rs]"lWa7]o ~PWlZ+>j^c+a4jDNὗ-8'n ?ehҴiAQH)JRD̰oX?ؿi#?gк@e=C{&ށ+ڕ|h\'Ч_GFU^u2TӁQ%e|pk Veq38Kw|Ɗoz-Vs "H%* zxl4u"HkLPi0H!gƝ& |bn]4"}"9;Ks"c.86&N3R"ppI}*G3@`ok}9?"@< svԢQ@,AP82BrX3=n$^<ܽr"1 ^ia (~dp-VrBeB8] pZA$\3U~BO; -| {V6oDD0\Rk8!I--& !$|~\#8> H?? E#VYt7>6"&ZJpC_j P:aG0J$M@Q[zi~q1?Ep7i<*,bеZN- >/.g'ReK)"}KUƹ>#rw߶ȑqFlΟͧe3[䴻oL~ENNU9wGBt~qk-ί#ΞκZu;{ȴ<N~hA+r/~o9>3.3s}^^_8S@s%]K\)BwUc۽Xǧ;M<*)ȝ&~$#%qQ4ytzS]Y9ޡ$-5.S_?O/]7;LZb8Guo[''،E%;#Ɲ&f_1߃fw!EBXv+pDjGj4GWr 37 ("=NY!ij~Z,qWXo}{yiGszQ?lZdF?]FXm-rmФ:З:}|x>e{0vGşu{^ }hRf"2:=)X\[Ů=QgY& q6-,P3{vI}f}~rrk8{υO֌ӹ/>}t |Úq&ݟWᓟwk9c̊lUi̸~fi_jS-|wR ??linear DD node_count nodes                    conn_countconns  node_pathseditable_instancesversionRSRCtextends Node2D # A "Series" is a tool that advances through its child nodes, one at a time. signal finished var currentNodeIndex = -1 ## the "global" node for this series (containing the MainCamera) @export var global:Node ## how long to wait between running things in the series (0 for instant) @export var gutterDelaySeconds = 0.0 func start(globalNode): # once this node kicks off, it runs all of its children one at a time global = globalNode if global == null: global = %Global var children = get_children() if children.size() == 0: print("Serial Node ", get_name(), " has no children and will just finish immediately") finish() else: next() func next(): var children = get_children() if currentNodeIndex >= children.size() - 1: return finish() currentNodeIndex += 1 print(currentNodeIndex) var currentNode = children[currentNodeIndex] if !currentNode.has_method("start"): # only child nodes that have the "start" function are part of this chain return await next() else: if gutterDelaySeconds > 0: await get_tree().create_timer(gutterDelaySeconds).timeout currentNode.finished.connect(next) currentNode.start(global) func finish(): print("Serial node complete!") finished.emit() &bZ/\lIRSRC PackedSceneresource_local_to_sceneresource_name _bundledscriptScriptres://series.gdlocal://PackedScene_6h2rn PackedScene names"SeriesscriptNode2D variants node_countnodes  conn_countconns  node_pathseditable_instancesversionRSRCb+[remap] path="res://.godot/exported/133200997/export-01a80e3e5b422b06bb3586587c17eedd-CameraMove.scn" '~zpX4[remap] path="res://.godot/exported/133200997/export-31bb9e0e33dbde27220aeddf191439b7-Delay.scn" ?t=s5,[remap] path="res://.godot/exported/133200997/export-6f243fb1d68ccefa36489755e3a67695-ping.scn" " *u$TH3]@Y[remap] path="res://.godot/exported/133200997/export-1ec5efaab30728f9257dadb506f22b31-AnimationHelper.scn" $/[remap] path="res://.godot/exported/133200997/export-3070c538c03ee49b7677ff960a3f5195-main.scn" \33R+7[remap] path="res://.godot/exported/133200997/export-559b1c5676d3a0a3d38554cf8e26833d-series.scn" Cu c ]gԒ ,˲res://components/window.pngv4~res://events/CameraMove.tscn}/͚kres://events/Delay.tscnyres://events/ping.tscn2 q res://tools/AnimationHelper.tscn8 !Dhres://icon.svg@yf* res://main.tscnwres://series.tscnD*#CECFGapplication/config/name CardChapterapplication/run/main_sceneres://main.tscnapplication/config/features("4.0GL Compatibilityapplication/config/iconres://icon.svg"display/window/size/viewport_width#display/window/size/viewport_height#rendering/renderer/rendering_methodgl_compatibility^