From 417044bfda9714975d3ae9cdb18c3ecfa43f839d Mon Sep 17 00:00:00 2001 From: Nathan Anderson Date: Thu, 4 Aug 2022 10:50:28 -0600 Subject: [PATCH] Added all the things --- .gitignore | 11 ++ 10-pixel-art-square-mike-taylor.jpg | Bin 0 -> 43531 bytes 10-pixel-art-square-mike-taylor.jpg.import | 35 ++++ default_env.tres | 7 + icon.png | Bin 0 -> 3305 bytes icon.png.import | 35 ++++ project.godot | 59 +++++++ scenes/house.tscn | 44 +++++ scenes/neighbor.tscn | 63 ++++++++ scenes/player.tscn | 50 ++++++ scenes/stage.tscn | 180 +++++++++++++++++++++ scenes/tree.tscn | 9 ++ scenes/trolley.tscn | 36 +++++ scripts/house.gd | 6 + scripts/neighbor.gd | 127 +++++++++++++++ scripts/player.gd | 63 ++++++++ scripts/stage.gd | 2 + scripts/trolley.gd | 33 ++++ 18 files changed, 760 insertions(+) create mode 100644 .gitignore create mode 100644 10-pixel-art-square-mike-taylor.jpg create mode 100644 10-pixel-art-square-mike-taylor.jpg.import create mode 100644 default_env.tres create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 project.godot create mode 100644 scenes/house.tscn create mode 100644 scenes/neighbor.tscn create mode 100644 scenes/player.tscn create mode 100644 scenes/stage.tscn create mode 100644 scenes/tree.tscn create mode 100644 scenes/trolley.tscn create mode 100644 scripts/house.gd create mode 100644 scripts/neighbor.gd create mode 100644 scripts/player.gd create mode 100644 scripts/stage.gd create mode 100644 scripts/trolley.gd diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f48ad7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ diff --git a/10-pixel-art-square-mike-taylor.jpg b/10-pixel-art-square-mike-taylor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fc5bfbe41fffa038e13da35dc3c1bf1cb2b4b85 GIT binary patch literal 43531 zcmeFa2UJwcwl>;;fP%8Nn1r!(w2;55Kze=l9L%pDp67^2uMznvq+FA zB01-rbAEF*x`W$u-nsYw{~K?ND|Gj&`f9FPy(+D$S#y59*S^<}`sM1SE0<7MSXihV z@Q>Q-LR~-|#KXhK!##+PkALXUL4w0%M286p4<9>9N=!yeO;1Nlef;=|UpbggFtD9E ze*BC8GaDB-FE1}WlaQ$3SrHB%-m^$1SceWBI!t(&iin8n?8)ON&;FPH_DWGC2XP+2 zKNblJn*NpAug^i7ah5GXk3lA3``@lgQNLBj<3%M11d@^GE12}L`C=?bp z2@dX2?z7jd4&aefl)WFoCncji$)lj8e8bS=-u>tP(QncRe>;ESqNIwRzJc|NfY(u< z85AD`mNyTb`t@`SZ__;A0_02snL&n_EWchF>i{ke9yUHC3X>q0#UVI=i;GBL;lgD} zaJW4V;F6M&|EBl4YykV{dHs_Y6ci2cD6ZX$VmSNU>eOi--i5tR)M2<6_=+SbanwWO z@qQ%l#Hm`Q-zV}dv`ljf$0li#N^&HXTSiME#VX$>{~b=d@<>ZeNDif-CqP&VZ6#$p zYmQUKMPlSvnpOcqF__z`HL4+@!;(8|Id-|9>vxlc(`@=`tD=uI=^+Url>`C$2ize< z9MMI7CMf%MN!4T3Y7+!uP{?l(auIo;>2U<%G+D@dZU6q&4^)=O^D2Spr5P#Pf=A zbTy)SnMb7*;#f=hTSu~;Ivi@7{G{ref&jucIF9W}_4-!iGbG)zl|pNAGlx_5>grag zdj1}Yj#icL?kh+-X8TlUo2_`hy9e)v4kTX^Kk2HG>G|Car6|0Qu!>C(^hh%{rcM@+x9 zeBHJzCysR4!?q)_9S6T;t5&Xew@qu9WxGx2msgD@HjeF~C_~v6#>=MJmh0?`$sb4X zQ#cxl=p3XW6y>4gd_eRt@}(c;d%X9JGF4s!IC{ph1{L%7SPE^Fd5-%Z?~5KFVINQ> zt1*g?c$7GIZByOWQPz)p{eM2s2^Le&%?&#t!{#ryi&yC1#Ah%~jdYI$ z%U?^_`r`T`wi=xpY!jprGY8ZoSu~x&sJGIBFgnG(rtCH;tPyBi%#kp)c3Uc(X z>YlANCaUsy#xGO%Q1P_|lpo!sHX^k6d3PGL8l*SH>u9K5$2i7L@6eAD`H0&D+q~HI zTf(bE=hfyRlJ^bdyGOc*OQN^S(&J{WXG2(_1bh8LuDoug$H$G1DWTw;M z;DcKge?((Sww$!yfcrFWIv&cIzfAsWqjx`x>3=^$Qa`M|5RNMwD6YdX6D)GxJfNO*n7@81g+lUti3f=Jv+v&FH~*&Zq=-1q_4TDeZG>iC8t^x=vS~=`9jvN)4FIn z$)&HA_k~GubKsnz!R&7O8-K0U@Kh&Odb<^$Uqk2K`7-(Q7(q^BE7Vu``b=mutVDWw z#7#Up?&E!wnl+xWJi&ie+(z8Qo#=&McVlNi&W-3bp4D7b$C;hFofOp9M5?a21P2BV z@$~!mA5M3Lm>8vM)2gMXz@UXC(jM|_QC6H5$!A5cwL*f<9E!W0(10@dn`lpq3Anf9 zhM6oZO`AmtUv;*?O0?o{8yaixx_BpGy%$Gi&@8p8F+Kaq1oJ{6Uh;=79Y3^z8DunM zPo&|QT|zHb*?HP zwIh{#s9m=ser&?R{;It$QmsD10Xv!n;c4TOvN{ecM91RgTWa%akNCc6SwsKc6#8FJ zd@?%yH7BP$JG*RZgO?vkRs|Jf`lq%WUFSAtO+}VJxcI^dwNoT+x4p(s=cq4MbttCa zwHIBm>l8*T%1v+Z;Pbq=g?!H*O0@oQWQbq-`&;((IdQXlsL0XsMj5I00p3F5uI4qj zMjO4c*i+M%q1yN}6I&%?1p>*Ps}#vFD!KVdlGN>lvE|6wYR2}}%HPlOy%io>vUYtw zrad!E*EaxttTZuc-mb;|Ys5r^NYyj@;KY@MaJ9qMP>Qs>=9cvot)hyg;4fv3 z!RkXzpEYy=MjZ@$`Lgn((?;P{B<8XrkUb;ZVPTumyHz0U4#*`zQp!X^`T9}_V?Aoa zW0&nQXSm*x*!EcE7tFHAv*JvcXWn#ToJgXy&=|uQ$udY{$E7-l^~Fw%$Fw#&ItwIl z_@x0#DyM{_*z8Zpw(JhEBe5wJHZ!wCrY%$DiLrd80Ff|jonBr%0U=bm$$g60*&Gsf zO!7fYG85T@?yf+?tC_bD37iS*)fxw#I7%9`#whD~ZxqKKan5g~^L^2Uz^IGebq)N|ef5LCLj-3oz9{EbYpqjq&{|K& z7eKJNOGAp(uDhBevWNL|xo?|KSsiVy*De%JyRQk@0XgQ2-Lj2_T0$e&)fNv9O6RLhz;VDG5S+6$PM_e2y0hZS8f;-@a(ac!W~9}A`A$$f0%J3d8d+s%?^+yn zhZwz!>`Z}NwnmR>PVsERD?mtm4^&LPZ(g#5FiJ10%uCTu;|VN^R|Z-hQ1=7IV0D#o z(A1**3EmO*H8hJq_T2=0Mb!<>B|Wq9-7R6Q7u_ zx#e^pvwEKJK`wCMs_GRN5u_f!F0PaRwzxi2aZ-SPL|q}NQvwm$)GW$~RGp}(?6Mhu zGY9~ztdE8i$$S64Y(0O?@>fLWSde0`I~;N15*IWJoV?UI z@p-YfWFLUUwk9piI-%iD85XVGwM7tbOGZu=3Urt|gmH*c4qp$;@4lFoshWBu=|me~ zSfo#{36R=!sLDC01lcr5Hk=v<6jxq*L!d;qxk)-Xa(UfCNsC?=P{#1LcyV!z6zUTY zLD9-;Jss=nrbhaas?0a_g7n0&1SI~jo5?XB%FAJ?2{ihQoR9x`WF}y-M2>^M3oXg? z3m~La{Q(t|&iap|gYS8HoB#w>ml28dMHH>5&eM^u?&}|2WR7pxMvBs&&PHIAXWq+j z)8LY@53eAC->2wg-V6<2gMF?b^DQ6;3_Q3U)81`&Ll{M6W~u+Br*-gja%hpgtsY)3 zUbu{p^jywZ|e%Q^htuD*f=cy(Dh9E~mx2FQNsUR7?6RE`N> zdT#S%69lmo+lpo9n(r(tAetwd7D_3kqaBK4!HS>w_%O&(0%G`zs``1WYj~J`)Qssz z2Ln=GY&szI_`_~S`t-cHSxrWa`a5@!z*^38G89Q|_VURdYr66QkOP&1r@0-`RIkTJ z`lI?WMa;v0R(tb>8rh4|H$k|+rZJ!PxWYyt9hW$03YVr>)KSD2t9lRPV8n~;rI8o7 zU;htgm?E8m+Z-7a$Fq5!uzUAw94pP{@h~;UZf`hJ89O@Av3O41;%LX7aBY zHn`uvPji!+9(od*FeP7af^W+D-Rm&l9tu=v(7Sc`oSoNg_1I|0*a#?a39%n~oG*RN zT^DebQHU0wkhma6E9-18v^3M%K+RjH{X^of zu!UD#y>ereMM0X0Tj7Pe(9?hy3}(LijF&wV&?I$_-$0M|IuL}VOM!XOz9zf>?)%px zmYomk@yji_jNX#ZaR2x}m~sj`8T<4E%c$j8XrtpD4WaiBGsDmP{SZ5~6_%d8!?B=W z?!+l{(XCRHtn1X-^0Uv>kKOyn+w)0=!#zd@@0O(Caq<_Rl7b%Ic*lDBwK_Y&$D1n3 zJ+@A@#TF`yIx2?`Z!I(pHECs;jZNUbzRXVW+f4<+^Uto6Jy7;P$vtm+{cRk9!!wwe zpuK!?MGxc35I9m1gpe(Bk#jMR>$2!7ekxTejeG5$m>wVhBy`%lp%tE6v928DnaMW@ zs>z?Ro=}lUiVc5z@MWSh)V_Ru)UYSgckBiocxae!?2fr62h5rq>AZZb+;t>rF`=7l zvhjpoOQb}3qKL<16$cyu4<_WNv5YpHlN%WU2iSAV-<#G-KUNe+p^ zv(gVXzXY`7x~uKK4o^zJO{4TvTiNAflS}oH7(VqP%O?iy7pWZTb8^U&6UCgrvo26P zN5LkL$rBt+_td(a3s4wy{mAQTPtQGYhZt-A12Wz~hJJ{ljIv7RBFFAL zlCxblXbP1+0T4F#eO#(%NFwUz?IWe|v-W>B{-1qc0(!##qM`4|>PHvi(SDp8#gCUP zu`+ZnY=Dl6^EJ%oO@lw}nxpuo$K3=_G^dxv!`x{JClUphHQk!a%HFTGj z+l{|!ZjifHzkM}%I@OJ1jBcaEQ_;|A!%h&v!dUxi^Qww129-LrceNTsm)wrV)~qeg zTFr&62lA_y1m97%&3@@6e)P>KoIKN~QjnbB*6!e@95!ZtJ974NmxY>xo6=HfT*33~ z-n7Nt_%S|tyHjRGdLuiE4Ipr-%dxz6GcLSEwA&|p<#F(eyikHu9*x-)G3R8YjnbO6 z0cYjgE=sB$-%G>JoW{h21oad*cA357B=fVBYHW-`(Q8*NXDdx9wH(CAW{54sY6?gf zt!FWD(wj~WtNcvEBi-#B`HRkspH`QqP31q<=A~)b4zJ6;o*8RzNBalc=;lv-oDaLu z)tH_x&crcVX4~dJ!2dW0ZJ_Ter&V1js7UfrZP)K14I&}rTf!4;Yht$WWe>$ZS#Y~s z1C*DT80TbY4yjtdS+Ou0?oDOTBQ|gI2W>B zAEGaxde>XML9D(O)1SKKw20`(nw?G!iy9!>wGB{@-70#%NSBT%*S1T>@-V_`h;GeQ zXQ{i>;)e6%Bt)}T!nrYPCXgX^p%u}q^#yOQF{uYt?V+NPoXYmoGaI6^9p**`ZrsY{ zcdj0$kJ*k5^H6-|8oU^4jw|=urcTYRTyi1&2{-20ex>h{wOo{K+sC6U?dOi?bd+T@ z?x7Ne#Qo}(HRCv2ZtbD?QmM5bqNiv}a?&OZl=(hlF8?QN_aH+r!TeMwaBhn;oAF$o=dktccNc}&*} z=yxwp9j7yAi+wUeE`DqeHMNJT-d9>HZ5!{QK!biV$&y#W`YGCb54Ey~8ivYvDtAqB z0lizY{V2V(=}HZYE6*OPZ4dQqU%4$`>9)CtT10f!9Cu7uZwBq5K3cmmx!_Zmmd++* zcZ>TU&At|(HE(9*hRYjbYmICwC};T+B^(c4c7tj^W3AJ)%a~sJ8ulI5L#wbK!=3~* z5`sUHRmjvm{6_eE4?S7W5Xs)c87q#O_4BGyk<-xfSnB(|DK^8pbDB7E^O1K_cy<9K zzm8^QVoxdEn0tG(=3}i%nwZlh_1Qm#(n1FZ13zwi?V*S&*L&%UXR^D*jH@^2+c$EO zhC9rYbvBaiKaUbyXn8I9DX%0hsAKfZn5a_A`o4O4D&5s;GPDGvX7(w%%h@2RsJgG6 z&Pl1*s7koKEt|EzvC6;FULv?6tAkNaf0$ar=E~-z)O3tZ#pte$TAAz1CdS%F2)~u-hdtDxwz2Oayb^JFv8prI|ELG1b-s;FhgG5T&0niYyeze` zxiP(l;*VPN+$C~#jdbz-{oNncEI)6uw7fJOsbpn8^wKRCtS?602KqaU?O zJwiR#v8JvrPJXV}@Cv`^4%i2s=?K}_v2Z-vwkULi#V(@jqx*A=|CXNcemSSL^UP!J~is>DwFS=__Qa?q&PF z)7-i4oE)FzuPh4ZW4?VTUeXf2b~aR6wzlaEMnkKS}A1?I-U;P&Hrvd*C#M+${p>w90D-++nQ$pfiyXA#3iKLwQzQ<*@0TI5D0mm5G7y z6b0PR`+vNjj&d=DzDQfHP*Qy;o+*Z_`bFm2ar5GPsi@Gh%BgXdd0gEg+huZl>@=(V zO@cx!HNhSiTy0d+zKjYy(XOd(8&5apZ_!`VIn&))^@l}wW8eD7n(_E1 zSAF5Up-8`SpXkPDKq?e6_Q(1Y>OyY_nRq>Jj6Rbk5wxm%<`8=7CE=$z%0rkv2Z|@` z*q`=a8n(}U*Kg)+-nM?%UGThbusorse_kjhk{Ctzmlr7KEBcRqvGO!Tbh9W_p_RzT zVwWk`k(;lB`UWa&ZLR?bdq!?-Tb=5 zUtYhF`U`F|FpgG+$E&#d3%rtm{D@;}JN~|LDl5_%{YywulD^RM`otOOCh0QC3N+hJ z{89DA#?EJK8^$x2DV#G`-w=waZzsml&;C5%$t@Wa3{}Wy#;g#dX;^|w;XK%10=22QoD6Ry1;=H~8+YT;|U(e1BlQ+w`FhDxO;V0p4A(V=^xxz!Oypd zwPh3ElK}DKCS$fYNdyG!cB4PlIbpuIg8ge}%Dx;gb^cX4#|`^s1r;@2kYupFak0C- z#Zdb6+~_i9%kFG&7;T^Ax%kJ8J^|AGAObtg*!rvJI7VuDLdst;Es`6j)g4l>yOO-^ z$|W0{6$7JYrQE!ZB-(_I1CH#=y&WQBOV{s*7)o0(@SCRkpz^8kqqf41Y-?z|T8!HFNo85jG;^!lB(E&$>J~WR|zA zU+(6XWM0`z?-Kmm_$I5w_sXS(9-s&lZTDm17&3Rn@tOeS! zFYmfG(hIAiCP$+HhJ1ZaM3wdtNYWO#HP0Hnl2isB|d zKJtHG@$o1isKXK~uaIN*)G6BeCY$9iBRBU)rtZ;vfZ_h!ZwposvZ>`FQk1?-F9jNl zEV`39f3LNeA8PvRV5EyFDE#vqPQkXw_*>I#6E!}HWWvOFQMTSkNFiy5(L%xbTC;vU#M%;`lhvCWBc9*f)J~JmzN&5Q;#ajPu^s>VgSl zZ+W8*C*9MlwTA)zTH;CZ$R_rKSAgItz|b%rXUny*km2bJ0Ag|?qusnbTz+LhAJh3z zcqbe`At`?uptY*!7W7)oZL|Q!Y}6mue;CAu?8>7Et4Qm@#(HyRRf69d=B!(d=jXk3 z2Rzg|`tq4HK|}=SwR2Hzem9tUjNHm=x?=+n7ODR~$J{RF5!Y}{vmCLfawk9rhW>*^ zNd}B`PqmNi4_Wj?iZf2S>qv{msw}os@qiK3ZBq1bRURNHT&Aa#WiDIxS^gG!W2wP@ zlBW$H0sOVVRg@4bmi^T%vqO5%vSNOS^Lod{V&qiJ_S3CRYrQw~>DCwB0m1o2^d=lo z?D^GI&b*pCd_vbbhV9nVCUb;RkaWaS$CvwjEd>W6g*)UqD!VkNvBoO>+g|59JQ#+1`V0|jq9_cX`?wEt;-FUu`J7D{Rxtvm>_?56vCjj_?(T1GT0qs_9 ze_}~a{QVJ&_)+|7QJOQR!4B!1OO)`;D=1l^dt}g!WQpxxLD*lsQ+WMjPTEpiZB^8Z zjBoW)vP}n}Z$=o9&=4=|J0{~Lqq?GS=gt$K2tK~6B0D=|VDPk*K zzhlgPs^_-rtX6$=l~N%XM?Q+19qHarGPwNTOX%<_x94ZDmETGct}^2CUIlw zEqfY7X`X@pZDXB?69-YH^CPEV#q^tkj(oJn1%Ircw~#1sZls5|PrlP{Sv1nmz1dR6 zDAjLw!_H(UbjpIcG$(3s3BFdnZB9TxuQPmGqx`NKOKLGje~(Npvk^fedbqcal{_TEwSWqZ6$X9Hp$44bpYa z?Gxjq@bZ!0NfvoCHpCR-_Ix49Qtqjne?a*5jU{4?l2iO+jhyRQhsPU;F)w;}gh~9E zNI6C|D!*v$kM@q#+r6OHe=}}F=t^UyJlDQLRdM_IhfBA^X)}hVkX#PP1~mQVAgBFyqfZuME;TXInbtaFwN3e z>=w{iPuqd!oRV~ncyJG;<&$^!T{w1-F#Sulan~DPJ#XGqzrvihdD0wOfUQ z*LXL(%WQ*u(Hq?;?NIGPd$XYQAZF%f3|5*esR8|b z;&!J@wuDys5lO80tvni?4lw#IGJyh@@2T$GZE*34n9^Y`g${G6ZPjKvA~G|qx>(VJ z8Vws9%nOS))0Jil4aQ6k^y)Eh`q5oqHb4oVrCq!zmX1UbMLU0DTd!0rZ}`62{l6Q# zllmyfzKVJeSl3yCTIoMK}MCJ|=sp z#(^vQI~H>>-^wlw$s2qiX69Kc4k(fZg`_&Sxr9{ldLvp5jFoU&*vRa&G$1l{9@`AzV{s@sd*uoOhZDV+kmo9ntbIMP6=-kM%E z$WU|h&wd#}wufS37Fz!}N{`vv_&?FL(+!qSzysw6^ImRmh81CMe(kgSk9gYJzS*MW zHX5z^q{bz#$=N)9cQ_56qcLE*nG)KFnLQH~ePE@_EqS<`kbNz$wPv+n*$#xTYP|FB zJPC^w&0EU9!`pHkIT24~(V&HzxyL%Id&0OV$Qm))#3FrivHP8z5dACJenf_9ZTGx4Im zf6u7!a)%g}QR^d7ji|9=b&1W zDQleRo-%Z@WGQe5u@O+5T$F93>)z-QroQcqoQcEgz&+_hHk)^S_D*JRt&lJx=lOxb z{5sQdzfX+wh|FQF^|d2Ymb%7$!G4#xbOAvP-5FCJf99xScj{BpraLkVg&C(fGUJ2^ zz8yE1=frdP^aK3enlaPl0$p;GO&`n1xga*qzzAhskU60GoI$U|q&B#@QnG zt=iLY{J~UM#^7L)oVRSS_x?f!-+FB;)x@^4&BlZWu3C^H`wC8jtKPa8%V`puS?Uf^ z91AOgsua!vw}j*XbK8ufTym{afUToBA{ZFQ{LGzaBZ&B8YJ&vYoK{ zoMAY|tn=a^i2ysPuhclHJtBk0vF-HOHkXTM4xE6gxBx-Ci4&GDi?W`3KCa>-flNnX z?n#f#Jz=I_5VC7Ts}y``9^mg*kLp>k{Zz*D<^ruFYAGmd8WPe#2Aj3|IagoSNbSTB zn8u#~1ohd3^Dc4(J;e8OV(tgpahDitDR?!qXVt0YLxsOU6o=APv^>9?>ew16CA_HsLAGC79Dk(? z1g~aRu~*2%6lS5s$Sf45{5^GUJVz3wqwN9yZW+ne`Kc=Lj^Epc#fn@ z`6H8fWOaUx*{gFRY5oL~PgnQ(^eL}(oykN)nh4WWb6izRK##wzjl1lbH`Ikb7k5GS zS~VhRXu&9YEh?goRjVP$sl%A*cfd#lAIR2T9D2Tap!Xm|vAjy?271iFSaES-yz($| z)^YRj$)cmgR~v>M$Ef?40y7TQoAzKle;Gk|Lu-57;rJu>20hC7CeMt8=hhbyiCOJElJJ=Qn5SfZTKg-!1 zJUkcB%oyMy$PocKTWwGL7-MTug2uN8+yQ#CaABRZ#DdmzEysqwt~}wzcrT#eFD?1s zaZmP8iY}%o=IOuRP;XHI8I+{MQAV28!aNs|8=8Yi-$PML9SNV}bhyGb(Lm;ZBz)ip z0T*)~(uX(VM%h!C8=E)KB zUlzUQCJ80P7&!j1yd;()mhr?@+RibV)nm4*81QG?u!AIW@3i zCclrJRQC74gC<$EJ4>R^Nx7x`IIMOfU@#AS%!-|+Mt-j}i2_$QjTP5J&Cr7LtSx3J zgFas8tgfN=@pGC6mKwWz5=E&Bp)MjVwnON9&D{0$uj;O{g}-M8+u?t_*$me` z_fQvJHX&`A9=5zisS235mPWpn30runx{ycZ1ZidBsMAqmX&Lzex`)Os(!a8(pH%or z5Oi57<9y5uas|QHur*(?B<_NY0)2IEw2ZV$VN5*Hj$odA?;meiPcySil2RC`C2h-IqK1B`cwSKo|$NMF6KINf9&wGzXyU@Zp9G@d8psM z42r7DxtP&-B#C*nkCu{CR%W`S*(=L?+t4~&yX1jQ+L$M=;fYqg=iJ>yu}xK>xu$(Z|L&qL0@{p&VXTb^4w6dWvL*hp$<@ zJiC@!f^*@-ie8I{%R31`LG?r=MfKXyixQE+9!e6itCFm3Ry@bKJUC*o3qnx!DJKPiDr9_seHAUc6SSh8(%WkqZDTk~fOd&3=>8?%t{ z{ltS9BCgXxnKPy3LYCMyYhn}z?OdUy>ja3BcvGSE9560ID1qjQ zA$P#AE)E7icXZ9_YC3;9HI#E2RJ7Jx%>}*1+eC-&w>(zCU2Q@xf%pRbMaAfww(ytc>$8~0 z6NH@m-P{n5amT3-)QlO3n(?VEM$L$s$it-X4U@I#;k7vAEL;Jd61=sZp}Er6!H!nr zabjO20R5*a%8uI&?Y?B&Wrb9WyyQ>|xKC+SQ+E)(#HH`@a17HvP<`@oz5ty z?-o>4VJma4pop&pMf@mpOC98dPZKAcdJ$Gi&k!D(-f-lSWIe9iG<|k{CD@O&CaR*s zx2^$*RaxlyiC9`Sn5FS;9<~G^iYq(Mom{ipnywZVk7nOOZj@aM8GEs)$~;#o(TEHR z$3-ks5DAdUF*{JkO=%U8FLbz*`4)D7}0yO#u6*D%+xLWNG<}pYB;yl~_df#iZ z_<|Oduz*Ozg4$XD-QPT!)fXbX0#*kM;NBuM3_lJlwDghQ7md0GrN;-Ta}#IY}1is0mG$^ zSj>%P-K_@M0|t0Z?bZ%7Ii;bEz(% zDmZ-S4Nw&*51LhPfo-lHc-PaE-Y%5QqqjgCm|l|?c+T{4x$q#IeD~B)^jJsNh=Z0$ zeNf!X*5*yLVJM)v}d*W8W%2pp!08XmP@mue9 zqt*IN)wjY6!c%WgW{KZLe*x=iFQmi*XS7t}W}7#C3_Q|}fxyGMC^6y7PN&;7u(M`^ zBJOjM{qR0n{ju3*tT&MCUb5@op1~g#Vf1Fgzk9svS3Lvso{W)5ydkG`S*fgKoXGPUj$Wtx+|8D||Oo zzI3U^;hL;wePmo1tX<0?IhVoNy54LxGNvUA)O6y~=;skBTMl6^aq+e;gW^|)`T8t) zEZ(hfq!vm|h&(Eo8O6x1J=tM;*5*=JU)=m9zj%TE%_8+&&dZ!m$6(doQ_GPTv{sk+ zx8xNjw?4S~SDO^~nkJ7%TR6MnIp93Aw5p;lFVB$-(se!aa*=JgqwRvudb0hhp@X(^ ziz8CjpDnLr>R0GbfPdJf*u_^h&{i8=AU_GpVN5j!j%cZ3%9aTSQ|BWNs>%~cWn3x! zVFv#4q%~>LyMN8Y=yB}4hK&4a2Ql)_vqQq5S(j_u1Z(>MxfVn{?3M!iH5YCp3ipyW zZTSbUvs^%xtTUC$^!|5@f;n{sZ1K;S>41KI|2+Ow&>F|7=OjK)Xz808(35QJRBv)l zP&Y)QYZrE}A1h&PZuHu{b=CH|1L=e~OVE9XH;F0_vsgT^co?x=`cW;Md&X4j!q1=F-=EEM~F|pMHoV|)et@s z{AXX7CP%uv*f3Nj)wfAktY_bvOle-zu5x=9lIgpZ+Ok3KN{sER5jM8#Hnjo!{6kOC znF|PQ4lS><(%m}QR51YA2HbxHeEGTGlv5oo$9DNs>FHy1 zq$;k8oarhOl})TdMp${aFuS<;Ec^8xMnBIHfAi%PL=1*vkqoom$k>*lq2*99rXbmZ z<}aOv&d89v_%X-PF-+CZ@AJ*|NOh&GrBq?_0PVT;$*7O{TZKk(qs7kZ9R4n6()~w5 zV@w9XntpCKe#;^*e#L%#hcg1<2%0*FVF2lxm~_z=7QcefgmiaVA%kn5yyE0S)28g7 zOhVb4j%Zb1zt5%{n|XHp-OwX_a+<$v7T$67M+k`WvWI4XFs3*%u4O2CIZOjTw8&%muZ)w(k2>w7z z1zZK72FEW!QgNkqs8Zcrdh^xi6lz5UmzA`X+yNH7cWE}2Lpg-Y;{?Q5@>i<&X$;ub zVBw_Hqg)E;#o>=&s3V*d@6c8l_6YzKYARb5IbdnEsjy4M7EOU^Q25RT+u+sllzfqP zNI95@*o2g+C}nC-?%RYMqiLD#X_%TM&+w^xs_YIjvd666P~R3X?0E1D$t%PD#ZZY` zIoJa=G+R+-EBa3ZdY~y7n{h1kX0^{Z{kCpvu}V_Yr485@=&H-<)N9dGHb-*1#HD9& zv}PSbC~muQK~W|5u1tZNm!7_Tq%TsC9{&Xug@+e$mvT)qns!?rSb`Y ziFKbBB-RER9X@dxVgxBg)|{?kaZ$n2qLZszfda~wfP(4QdB)L(L>6t^ImZ1pr0`5& zDWsrOZCkvqO{5~+n`7d?_ZaTvv!?j*LjpDn;w)?l&cbc^`z8^1msXr|Z1OiBLS-@p z>Vgc^_bt3opN_kF810{Fi~aD>yxA|x-= zkpe@cj8Nn~w)$TjO?vY?<{TQo2&lW6Kb?xMcZZax8DP%VO>QX7HygWr5CE*_McOmn zv&FBWGOJ_M0D=0Z{w+58u2#quh@ohhJUPy-ZHuoQpAjH&G87Uk1yJ^wC4;#`toM^o z%}UmY6a|sV$nAPEi@*$@`odb5SXvcwm2tpfsY1ccmg)|{AL#fQtU#-ClWrSQQRM8- z`bEH;3Oj1jY|BGU*K8FKc=ZrXeqo-9?)wAo5KEY9W56)Hz&;bKpcQSAJ^*GYzk)d+ zIF^iQFIq?dg2GAZK#J(+IPr6w_{%u4nypGG@oxVGT|`EAQj~8F=wiOn`dYU)j4vtQ zYi}U`{{29i`@YDRD5Epo%8DvvOQ%EDY#g~*>KP6bWL^d}@G}UX&{YnVC{5(Of66gF zamO6!6ELI8sry1NlK!CDIDD)Q@9^k>W|@I1o({a1o_>{DA$)&RrneK6nd0hY6eVL~6iGvJvvMOezH;hPu6r=1PZ=+OP zZtet!2)wDlXdXeSU90iB{^pnU;kwNshpA!9M^2aPRvjLZkO!$OzdYB)?mP`P zY8B}ltfw=`|5T?>-_|y#En%pXFCslVty^jMKt+ZMboF>VxHrnYL0@mcg#iMTN$!i3 zdIq&7B&5ZKiabE5Ll~dwDTg!Tk*mM|dw}R#Mb2u9-MwCmncHZ|dSj;E0TX(PH)V0W zYGRdGE*o+R@c4Bs*-5>s(;+%7XluwGKJ@7y zrH7QJ=G&L$abeRBq_3$T3sMXCQSl*|(Mn03kD_s1kM%nvW2!w=15lC}p9>TICuNN1 z%SRpX>Qzhk&qJk+r>a1Fgns8XnJ!v^!}l!znuT|cqw82vqb!j%&e|D-b^ zJjJa5!Z*d63$dYvd73Y3--l-2}<{tRk;HZ6pnyB z_wC3bTd>R(5Zr{i&dZbl_~PJmQtSRoCoV+ht}Ro}44ayTb8SYNJH$y;WFGLxs4IvB zXnLH0IG+?ngPpxtcKotttF_B4MNZb)+Gl_t7{t44mB{7}K^!KBoxZ#tnhh`5J`AAg z2Z#~uR6HL=tLsDfUw;k62*KOcL*O1F1+MJKz2F^j0cJXHwWWRpWM@S_QOFIuBY~ec z{IiCCHfiVxKl||i?+2~JLA?c(V{{2AsTFw`T3SprK5=26&9+T{d#Huam9Z0HZ*ZK} z3I9e2VDKN33}nv5r?xiMTUB@aRkB4oJbw7F(~Db7QmGHa7U*?q4$%8l_leK*YJz(Gd9hpn z&D>Bi<~T(#G4F$LEL(2Y9nIt?JE>)^ey5MM4eX(OUHmIu?fNmQNMD{M*j7WdmR9J9 zbuvT`Y2dvL`;Umq^0@JsD=twYn7Iy#pPR?%D{C3EIPFeXChws%aBzIKG|X}cM>fdM zCTfw3ktb#am{D&!=eCw??^3YeL)4v#DNYUrrhZ@^j-emnYqa3Gff$YxA{tUi3p)iS z<@>xPU<}_u2gc@@^GqUpjj9ndbc6tfR1@^VQozYFO;p%$wQAX!5e)B59k)fc3&PH| z7Av}c+37|spF3#&8v8$D2faS&V{dwwc-xJ3C}^vgD9BEnHOp7}DiCNeRr!f1jx0^D zFTS6aif~NX%%QAATEy|R0+KOpph3YjmXU|;e!>Vp3et|M*f>5ov?0VP2)Tri-rZ9T zMZl ze@2<{2d@T8YeDL2ufa7bhDH37vY#EsK&M`|!Hkfya1S+EB{WDso3a6O^aO>lL|2xE zw*0w|mc>~qgigdjK4a#TvK@RV*^-|gsAoFYv^F?MulJjZ1My7OY{8-?V^(Rq8_>>} z^wWQq)}# zeNzjel~@Y(D+spvAB636lzX*O``z+}eJ|&9&vRKi*_iXn#t86bYDL~}Tu8pv(mITO zxn6vykUC%P8}WSjH{yB0Z^ZMKUy0}6d?TK}QpP)p?(%D2wF%We=LNiCckxH8TnLjhSNF21Hb;nt=#7cDt_Q17#vTXf=R%GePb_cd~rqZ)h z(ieNOh-iD{avpcf?BG6koK)fOF` zv-&jV{RRw1q&w!$u5>RyRq_wyG%l=d1Hb8gtp4N`A%#_^x+3tRmQyNg%j7*_Hon5JCU}i}&(QnW3clIMp$t;UYcVpt1=q%B3pd(f9H`PJftZVV22xDex zdkM7J+dD49_F%D$h>f;vZdK2RHsa_*ldVr&S$jUf7l~J~9bOQoIyHCdJwrSdpEN8;j35GEA4C4(3prvVJ=O^-|_7Oj`RAVOHz+bjwTMpqVwG(U=}vC0P` zBH!61V>c%?x~&y0f%Rnc4$xtxD#v`B05Oz|A$TID7%)=keEs4$CRU_lo&B4kVa<0` z5u;uH&lsCbnBRi`qpF+?v6jFa3FK5h!Yc!%aQs;;Ka1sOYx&uUevU1Fa|QXoG34^D z(dO+gqG8}|IA^mnBKC{mOygR>y2Mb9c(39Bj&C<+^>#`iW$ONi^;b}QqV=Y0Fj)QI*Je9;H!R*H?rh~-3S zI{b#-#2raA5l)`Gtn}vL)o&lM;cq1sN%$0#y=QW~z*73oKh)xgnj9FOWefd`8xT+I zv0L2pU^tqH5MX1Jw7TI61LkD-Lb72X9l^yR_l+e+{~AO zl)NXa%!6BX`nKtH^QRk^#x$7Cx)B~1mI9T-$Prf;p?yL9D5A&Pgduu4AX7n|63SZU z*MUZ@EIC@T0tw5B(o{H$iX7NlaIlLXIiqw{fw1K;0noKzc_3shW`wSn=Oq@E*f&m< zVV&=LA@U2^kAvTA5Ld;nlCXO>x%nMQz!`Z5w~qLvm{5IaF)l?4;!mcBGlp&JR$txP z56Cto9-BhavEwqCytCW-xwjH6b;r7ZUBALl z3@|LJ4_AW+=95I32j<_r9+-bfO#I-Cz4OTnT@`vjwvkUNGuDOm3|tI_fA{ZxW4`RK00nifr&rf% zVf?7nJ$egDl6k9~VZQ^1UR!*mJ4isW{k-4(A3^5M-Rh!z^W4113dGoRW8c`bk@%5v z7t`bN6ZXz$@&7!88mvasKl&|ph?21BOxYf)y>t&Xt?RbRCB8*PzvE53TZzAiGQdyo zNEJc8Bmomyp;z-tN-tPVJ7cN@n??d~7#z-DujJ-a|Aa{WE5e0?VG$}kt%wA6L~3`~ zUn|AryGnV6NO1=bk(bMA+{YK|G4{K}<}eQ!{6xg*tLl&6AnAA`gM|JVFS^74ox|P5 zd#EF#G@e=#kc7{Q7D0TaMnfvP&{u0mP5|~}S2XZ_{5_-yarW!_=Ir+`O^Bi8-MbX# zEq^f@V+xNVHptYrhn)Yt8F7}k{_V_Hh}gg2!f%UvlB=@Khm``a+h8W$Rxguq!ZPCpk&&2w^Th-d~CmE9?f@$ zq$8?g4v14-J-1hmSYU9C1YkdQStQZE_?p`Z@e0lP<`o(@wZ*WyW3unSVA_my$?F9- zAO~339PkmKiuAmMA)7$aRT&i`wS_tpuCT}{-&)`Z7UfHlyCTAG51Ju(sP*eZm_96l z#QyBVe`9O;%a5HB+%2)Tuyg5sXAS1&n(R5u$(S1W?)OwGb-Yz!r|t0ZE%=2Hs`Rl^ z$Xmw1J&@Um4%47$f}e26VZ3rvt~v8qZvhR4`Dx6rq#RFiUPN3kLk%d+U068-+~Le0 zd$uwZdY;!`-AU!pu{ieiXIlTYaW$-l4pEzPiyrmHSP-B@ed`_iA?tr{ijuVY(#YTn%%@>zE4o?zc9+ZCD9mHmnR9-QmoT zDl8U-I?)plLdv!G7!j z4Nh-hFu$d(S=@V;!wO?*f=-?G>RL%DeyTjP#+NAzwI6?b2B`>GbspvI)^|Kjm5XGE za-t1gDn$ZOR?^i);@4-!UmtC&r(B<(e0B2ci2vYpk^!l51S0gWc%I<5U|I}BbrA{X z&Yh1%J!_6lh#9_Rc6aPMO!xixuPa=C0~;MauotI%*F7Pl|9QcQ@W1d@xn z_K7^Eh`_$N-+_Qux&w5cgmDvcM?%>#f`m%U8KAk&B>K&+(19!|~twvq-B|GA0Tm(pdI` z4*t$ttvfZJR}N<*V5aR4}^|{me0K61Y-jZ(=Io@4w6Q zqh}%fFwuc{X|82=B$w{O->hvh-k8>217X2HuM};?`W8tUu^9`PAQ2F0rYf+RP{wG(7$vJoett+SO6#oZtKYe%Jf{^Iqrb z(t6gt?q?5ct-aQ>?)!c|U!p2dM%r2bSdz-5xCpl`jYSGr8f2coq_i0zPd=Ea}9Rl%Y-n?%Xm9^UoDl`)ttNIE? zm%re672kuj@mrVDyCx?g4jtRLEZ-n`Jrhcrk0vkPNOay{(^}aQU9>}b+s$vA+nYdf;GHQy4##{Ok&R;E#SzPyAubg!74=Qi5XM*c zInf5FyuUuf$iLGPNqz0lV?>$}7uc{=JEs-MHm?vjn5StF`jy;iBp|M^E1M3)OY2xa zElDnHOE!sbKR3iGZx9g|ab`lqQ(gVDlgsPZ3p%YgKA%=vu7x`JEX}R86&u52=4#@@ zw#8|nV%UdlQb#5tv}((~>g8b@&-T2JgPP9X8|oTvB%-jLg(lR)+7-qBV8fEzKgsLoDtyb z$QQM2bJVO_GBE;J&e@A0^1kuT`H7ax0NB|?f7X_$zJKbrJ3!JSyUuNtc-pu8JQ)Z( z!jh_y3KOE=yYb{c2$`^Ig+Y15l~d~fIr+P!(lMXZx#1OL2<)Q5f-?BJB?%$5CvC0@ z-A>Q&ji4rucaIONdrF3@SQ>%+;mOrdVD4E884|buwKPj{7d&tD{*iZaw6vhBUsh^3 z(Qr|Ca+~TCB`rz6#4y4YNQgzU9RmbR;uxgE-gCyYD>XoUc*J!e0mEy;wH`^)*33^t`tjxer-{?h|z+Se>3kU$L?)5w?Dc)IBC7T%=DUC zh$n+xrLUVkBel8p}Rj;1Rg+?VUqbIQ(`f(7<>(iw;zk;7HQL` z`xxATUXQwNM+kxTp=$BKg<9J)17eVPi|K@1o4*I7*VHJYfJ5}%boE!45jT53d#kjy zO?ADNrcTBAf%&6HZs^FPbX<2-SI57XyyFT}wNg0+xjwJcHD2SAntVZFo)h`Us}nce zg}}2CZ(hM%#}lpQ?GU(rXmrYL^!*+yKZs~o@TcTC4Kj)!Tm3|(a*_NqbKInRskI7@SjmZ*fuK789UK@$Q@!od_)aOUxFzQf1i&lgNGBm zmOGG&)_u#~J>%$QG8K6e$I=Keof4BMEZvi!_tqAm=Fq`@Od6{!5p3+Qulj zd*If{O__Wz+CHKK779Th#=}LQ%Fx!;JYMXopGIGm9zD>Q%Co5Fc>IIzYvkjgO{YtUaWvbr@W!;@kv5_|P}wWK(n3=o%@u z-DW$$yvoEwo0H*Nfl<@f0;4nhItRYhV*mEQ82sqBywUPetGokEoJLk;PkZ%3jze0m zD+gjnvJu^oo%s+U1TEJXj=Pew$;Z%M2^10w{Lg^-=c$>dqfAnoQRGv?MA)bs?Hx3z z!TA^$Ezs0FLQNgV4)0?#RfE;4xxmy-#CSw?hZiSX`6hVIqJBZCy z>^bPnMZ4?g8QlRndQ)m%Q;s z0joh%6oc<0SC;}FINS%HQuNFD=ZD?)|Nn>GdPT?FObW;t=2Vo4bs(J>v$9P3ZF{^$ z#&Bi7lhH8%DV;e_*r)A-RYg;M2cQH#K3B9;%gZ8-;nhA`R;aLs%47ixsIVpm%f3kv zzH(K^9MDMHR5V@r{MzAq_`^-$m%SNkrcS{CBC!A@NUVS0oh>>VLF>?} z&(Dwz?pdxJJ3}BIeL!GdA7gmL767~nF4Tj?f ziqnFnh2R<@1fN7B!Qvi#Fy;IHP)4nV3aIbJ{sy1&0r##A_?V|hID(UkcPbyHXQ&Dc zFjA!L+x&CYGr^Efko9^;3~1c75>s!Nzx;NO32jtAv?=bc;$KyAW2N2Y?dD!tOa9gv zI_IbRPu-i)a*M}*e!I2GvlAS>HbU&(>Aur@FCs}|Uk1X3Qw_9S)r?oEK|r#==cArL zw3rSu{JzKA_EzE^TLV#3xw<435Tm3Hgj({yMbRXC-VNGh@TVH+Z-u>PHme0C{o&Z_ zC$VG~$V_;PTva28nt!i>_IMK~utm6!lKXK}A7vav{TcgT&GBNweI5elRXF4NU>sB? zL&fx2sx_hSXw!SV#W||YzHx(c)56Lc{#+5PQ1!fuPH;@)q2YaW{rMxD$FOgRj8x@X zO+EvT2n?O%)lCZGySt+3n#?eXKQY@^>zY&p+=kk!8Q`@R)I@AaD~*c0$`Y(?tU8>EkTmBq{dm!al$E`vaEi9BOQ{o_K&rK3;rXL)KsUyCn%-2{0azq{ z-OcCm)tCSz4X3~{(1847aonZLrZRpWAKW|e6yv_RB?oGT;oDPBshv*@)C}d>#XzDi z^As<@4E|cpK0G|z8nv@JtO_?KcK#J>MzS&wyXDa~WG+ph`=^k-UmUwneTXpnID)VD z-1TC5-~nymrsd6!{D@6cF;#@h=?6Ug%HV*a)NN!euoufY2;J{}X0Zdzlsh4abjAa< zK>r(NN)7eLMu#A{uxI!P9Hyu`W3&;Nwhi))Smm?X=o&uFHf+C>wyR081c;)$;$I-8 zB5jY(a^~BhY{pPw{I%RX>Fp&?x$#5NN zhU9EXSGRo$RFjag-z7MUgwR>EdFu{v`zd+QNbloR4}2L7 zjGQ=UNDT7;r`^Bs+TWh8l7%LYs)}Z$6E&(V-8-aUz#NU0$5)A`$%2t{8|Bk2k>+T` zi(@%iG3rZlEN`@r4WGuBy$92(5-oGO{oERrG8KoB14u!m zIh1)`C&VGaz{IA9AAzd>J$$>+7heS_jWbdgcR+KE_1I~mRLKx9Oss8T%2|-TnFpBv zf=kHEkpKIE>G91?Xsq?*uoZIqDITt`CfK10G$iF_NX+r{y6Rj2A6%&H^XmPrBB+Vm zB+UQH1C~@GP=x7*#?L-&-26h+4_b$K7(&tHJL82PB4$rpnE8pY2+x+Cx1}S!ciA!H&dEIDh z(NPohL>2k#*Ne%@AaAa%Sm`BUpvUlF2)qZw_$KH`X-iou)?tMXBn~I}?w^anKNkb# zVGfsAb`E!qhPzLn))3#eC`>6!DlA7Iwy>YF6TK^?;YSBp2-eUg{o66>TG2&-fVdtf zqswVdPvjb>pTGU4nKa(%(I%ItkhCPFrwwe|)+xtxPjL>w}1`O%VwN$zEj7;)g;p~62Z#<~aZ3H%isC$;RT$^0H7|zT_ zxY{&0u^4SZUq9Y;Q8RH&n0_(jSa^gVJ*vK3^#!-<{qDH#B2=V#P^K(>{lM%vD&>5q z{`s7o%VkOR^?&ZMw;_gjJTWVo+E=xwLQuOTMc{zuxh$irLvOn4#-hTt?>Xn>Pc4pI za0Zr5aNfkA^rXetxOV@bs*&^529~ekao-r?OvJI;e|O_c1j#`!%qpyQ2oV%$2b*rC z-L7dlbM|6pA6;4PLiWOucjH{3m^X5{HnQtjPybTeQnY+gB(_QM#w~e})w7?zy=n7} z-AW^*VOI8?+b^jnwxrK_s_ridJNQ;qHC^RXN20|V`oIO;Bc5@}fmAFQHo?HG%){k6qZvA&#f3u~2sZw+PE^&D z`35zIGtc(gvAoIKm!gOJ!jh-nU(BOFj1lY`=LaQ?*2jnBn4Pz9AX}Ok1EBS;_mO@O8wm2cAlF@mR1t0^8#qW0P2jZ6S0CU8E}|<89|M+V}%{ z?8j#j`aQECu;UAEHg%Z#S$zGB^OCyX0TPzuIIHcb6Y;8MP_i!;{Yc-%4<^YtMZ9;e zQbxFmNNwVY%cC++Ca{AVB9{>VVyWHzI0;L0h6DNLows>sqL*097hZi5`RcUu~&Ye(sY&4 zEpphpk2HQdxsPrsO}C32q@K%O)JvGV=59rt{U5%_E1G8;xnB%L-?hpiS{N!8&NQ$y zF-Gj;En7S;F5;AzBibrGJK>xXE3>ee()x{OWOVZ1W*-UG`FCI3pnEHm6X80pOK7;+ zP{fa8gq^z*-CoW)HzaFfI~4)4^c*-KW^uO|ikj09e(2<=`Wwp{uKy8csI1)AC0D(T zG!=Y#ZMd42J#p|dNhYy=O!Bi`ba=AnjQEmS#1&FNL$|Z2r>9W7vy6XsXt`L!nzhz2 z4`qz|@kb>Zt5-U)ZlJ@eKR+BLp$u>s5$nANEJ1zs9JWgFbz(-V0tR~dI{PByCSt&> zNy2nJP0rCFJj@32q>YjmPDGAjCC|*b)u@2~g7cK#e?=)FJF zg&rv=)1ED!xRGb0V|NarF+9`HgK>S)=4KEo;*PrZ2-a3l+=`RT>(J>QND?T;^fB{y z`k=07D?s6-O8AVTX8<;>6qhwb^KtJ~zT3sd)a^QKy1NTz!3~N|T-EM`gqs;TdB7^p zNn|5WoTbAVf{~&W+jI1!L3P`CGl${TguPnqSdO1EBDu}G6+L^ME_4-w$*-DBET}8J z*I|XWEH!cGx30}(A`3;M6&7Ut_OzA@G>13{$!M`@$wCK(uKTJ*ZPVKI;o7mG6ToYp z2P4JP*$fky4?iwbhcBDSI?=H~Ewu;i!1f5El+@k(x!iS}3;C@GXS!bc8nFLSca(Cj zs6O1tCc$>HA<%^63Xxi)dnKsrcf5yOMK9XxIDJRYu>hBjJW0#uO$i$l{6C`5Gt?52G_@jIXchpqCiE^F64 z12uc;?`we!=FjanzvLDoXBmbb>S~FL0yCQbt<$? zsIt&Sntnz*9k*AaVD@OPO$WQkryC&6S~ivkMydxj;q@`QNI?M~I*}7wmAuzL%Lf*g z##%omt1}*8>NZrk8SrSZ;=$TDSy;uz4b5;&qlXl|l=ez^Ce|vxZVcvCUH9nr@1^%O zv}2zpqib-EtvnvE<=bP;r~&T`0xxT?)&2#nbYijew)>?XIFKHg6C``|yQGn`#bv(0 zsr*It$%oi9>O#%LY_I|Yg&^z4Sdo(&zKBH?R>b`cJH7_MDa3w13Ai0o;bYjo%d-_G z1+)&fT@rb`Wv(4E8q7V<(L4OXK}nrMI~~W&cFJvMd*-Mg>$Ln}VSLXlO3_f1lWNTC z=jM#hlS#=gj6hhb|UpP~NJ=!|``U;*4 zM%b>l=X9X}m?>?KtP2TPU&=4O$(5`shxpJ-XW9mQ(XwTL7o6rIHL$|U* z!pmRUm%m60x7%yGT^6h&GE9{&9m~7tkBUpr(474Ev_ank%!lwokCeQ6+wtm`cfu-; zM`E=2iEG~!VHbj}=$+I>#?XU&VIX@H%!TbcBe7unis311>EL==w^667?B1XCUW3;z zpDa{UqNs2d?}qJk8sC(>&7fsedfW9^;MCf=@q2(96ra2pSfAZzI&%@$aBJ<4b-lch zsi^2UX;RzDvI9(FjdwYA_DiJp9vpawT)5|#P^n~|mk#g#G$Fq@M!{2oV5Sg@0f73o z?tsu6xn#r-j_pEuC+hJv8t|$SFhb6RIL3oS1+cDC<5p->tuZwa?>&L95oZ?jdjwY2 z2yZhfn=d%}rJbP>uAWI_?}zrvf*q(*?>LL?MtS4%H+#VP$^=>Fw^WhZj)%Y{!mBc1 zJC8q9RlIk4K6AUO`E_Y0Nc|m}<28n^e}JWU^RT_Xx>V0-y;IUccS-J@`INzIY3A49 z2IWdE4%gZy_ATVV8Wci4u{AhwGMZCjUa+4munffAyPGH3@OFE$S=B z_NrF(<6?(e~D}t%iJm0lP8Mv?iVAhkn zsL0o(>+lQ@6JOS`6fQjmUTUV*G?dp$1r!R+h}vSBRo68YZx+T${uX%y6f3tlkUV~D z@aL%HTMS%Ean4V}F7*VzYoHRH-$@MOJ@Mu$0(gr6!25@WxTdO}Z6%!$gLBl)&~<&h zk)mqG7@FMU8^xXGVM>&HPjPirN zH7lp(teqb=Rp$(AG*#bkfKqW_jsN(^mU~Fhv_2#R?yN9ADUo8!;i}%J!d1P7fj~tq zbj6e9b%9T(*Pze(zMBD&dmf*U3xvb{CP4r`JJkx;=L;3RyP4Jd z7K^r(p`^lA@fH>8gI1(J{mJbzD}#_b{&DcR@Y4yC*+KCD73WAb)(k{&?B9QE@RZUg zH#e)W6T~~RTda)#$C;n-~W9R&OoAV1SHzVL43%z;|2HX$isZp2hVEI$ld97h?pFF z$8aNM=vksfc3y>`H3yfEMB1&tLAT4F7}sBV$-kF*|MatEFQ(LUBTUc7EqSS3w&3jr zxciN1p+!X*ejWEZF46-T=ovJvRVbg*F`Zu3jM(i!GN*i7x%zG(gxdFIKICxb40<=> z$)e9{zb+E;A3y&^?FzOEH}+$2V@l+%j$h&`2<@WfhLeIsMQwk@Q~Y&7Xy>Ov<+$m& z?CZObTIGfFabkr6abjCEL%;j|e)?(V7Ovwe_-)0H9qIq#P0*W0b2~?ISWnxF-^ViB z>h&G#(;=aMlyJbm?k}k~M}ktFBk@LNX3c$BIXz6(wmZ{8X$WFW)#v#_J5P$g&anUe zex-#6I&J9O?HomeGg((gVFiZCQCI{-sS)ed2Gz!O;7f6#%Xuu$89N6^HE_h5%dVl9 zc);QS#fc*N)^DdC!8%Ah$RUXbH~^m{r$8GcCNbqTm;qD%@sb}unDF!O7PZ_;ei z8AGEar^#dKXegbV#DraLA9WMkX zYCxSORS;RACiytjE(l?p_c=u%2~ctY1e$S^z(t;M13)wWdS87*7wkHVi%nyFggO@) zwISK~k`)nop9AEGych&^)2hX_K_wQ;Oc-Q^yK%QWja&!`6rTVwlnZvJ&?}HtcdB%^ zrjiu||3;@1aML46xM@abM{_g2;%W|A=xTYH2hSWZWU$1*cLt3QEe{3k05cR>X!yw9 zffnRl!XfW+@FBEeBo&7SM{)_19%vO~)zC^#z^?w}BMSy7=4XJ)6%}kVZ5Rp3Uw$or zxs*ILSS~KL1H53^K{MGMz#NVaBHXmCN}iylAoI*_P4fiX70H?CjpXEv8aLg3-U(lA zqnN5r4{&9+-W@^h6t)odxNoByoZtqbfwEx!sxPBm^2zT6tp1%wCBVo*!%)i8(BK5# z+m@{O!rI~0aHw~_(ftq&9*ufhYRQjQB?4N}zx;+?%+zK#MBU$+dO#b-2k4IfE`DhT ztl`+gjtnozZ<1WhaXG+=4(_TFvDKRewhQF2(0?ScbiV>2IxFI-A0x+S(Dk7e%JYOdPl8XgL-a3 z!}JUC0|Qi8aTTqH*Mb~O8RTFbSd5`fLGR_TZe0Jxo_y?Hu$G|Vdih;pjSN4#@7p4@ zUC@_80qR?7u+3%dZcdjlB`7G8X@p>qVPZ6S_S3E69rNc=P)Px>qe(&U$es`gSqKCHF-lq>v1vga#%UF>TTrLR zW%{UNJKZi|Pj@Rc9GyPBD1CamMMf6SL~V^ag9~Vzut^L^0!Tv0LK0FTdnJ`x->EF(MZIP5kY*1-@^egP~7mH>({qi7{6 zQF;bN-XMq~+RzA8lI9AtJuz@PY*+{SP-Gbd@mZ(r*eE&`XO5!C>w#-pcmS28K^qzY zfTGCjor*I@ltgKb03nh#Fh$KpDL=o}gj-g4v6{}ZR1*mvXv?|gEA&Yr#r;Zw*d zUabIx8iHf+WoIO_c11Ba&!34XihSMF&C#YFDjU0)mmbXz3ex!D&t9UYp>;&R%(O(_ z*z^;&A84SWzKiQpqsdQ+Vs?rFS(f?R;c8xg_ft;Roec_~1KsVww}wzq5D}*5x6k|& zf~2A3@L4|ix|Q=L>rnmKE;B3UB=OMQxAK$Ce;LvDp?hwn-{Rn}Uo~U4IXTs4V%MQY zCWULcZFU0R%gbU;_Ef(A#76r1%|YWis0t`9$R{cyjFnsV(POrI)SGQi-l{mu{e?5R zepcp?AQ54D3g_mswd@RLn{z~;^Cl}>%j@}TWixL+audY``MmSV{-E(3R0Ws^U9%mk zmAond;N8k*{(f!}e^~d(i1Hq@jdv@XN2MLAl}3yaECf{nz5N3KMCjDCFzB_7)gkjj z>2Z={^e74l7u>P4oo1{Kc~sgFI`xP#f`uR}z_p~qLwws5)h)eLxAX=?+fB2_6kG)a zeE3U}YSi;Qc}gq*;kw|Tu5Oy{F)l`0;$$RA6)@d^I9>n9N^W1g0D!WJYJT&d@6p`W zfmWmD=^x$2@|)+=&@n(wn<-#M#zIY-iH42=UU>XI3i7l0^?#ILwb@CU63f5b_jeS| zn+d@CpB>^?Ti*1WuHSaRniWO-^Xl8!b+D0stAl$BQjr8G`KX-vGpCc0lEAKmjl6lN z5r?ddL)6hBi2|!`NM+@MRO*^qsi>~y`%4$%P+-S_M#8ibt8Pf;m7O23?cF^-X$52l zEV@3AM^`Q9vy(=)?W+gi)8lPCP&k!)Z(Bsa#m@S7j#1gzJx&pQ!yzlYvA==iExkN@ zTMnz!68Wg=9Ius~p?A=A>P(5$@#w1MG`6<$`Il8=(j0RI#KlIj>!qL4)MMjk|8*3* zbL8w!iwnbSb<*17eb=8TBt(Uv*Qz*e>>p9CRtapnJD-#&4Xd8ojIpD~Yk&6&7;_U` z|L{sgNzJAYPkIOsaN5{^*@Xva?HTkC9>DHY*!1B^L`lv1hgXhC$EO1BSh9fYXU*VG zpVwjRvs^m2ml?)B3xE2&j_YU5;Ep8=e75zefN3cSw04`>U3D&~3|AIJAJnEseqE*p>uF=1Cv$SfvI z!(+vnRMj+4vb)@8Tb~MW$}-RYemjyN^W@U3pfWj;cyehLk|6W*KkUFMkM3W9AE!Wb zTL-_}Udr6GXl}`!5;P_!3b*7=VQyM9zuR6)b6dxl?fo)@-u`$$Pu#bHB*W+#Gp!_Y z*ZdUbq#B3_QPbElK4*QE)$x+;qpGazKD1C!=jx=^ta=2+!&oRjmg4Jf{ z?T`J78TjoBD9Y&OtwFEhrIq<48uS2IEEbY8C$TVd5`X!kj*`Qd7RI`3elib!C*xb1 z(UIgPMzT12GEcpEly0*vU|ugqP(r~!E}l-JK~G&>9S_|9Aj@uD&azvVQ&RF4YZp!> zJ3hi|zlabu5u>=y+3^vqT{xAJlDCHFJ#hbn)Ya9IXwdWH;_1O)ef$at)k@qrEf%ZQ z%DU&)(a_KUxMpn2t6Mm@e?LVzaUT6LCWo=>;TzfYZ~+;U!#wJXa^g66-~d}*-Gas9 zGQt`f8d&$-daPC}H%^NkiV}?n<5oawj2=M{sHv&JXl(bWFDox6HP$o6KRY=Jl_;PR zMP?^QdD4vyrL3&XqugjTQd3idAPA(!=*P?c_!Z!e`f9aWuk~t4qQew;9IwMq>%w#92+*iNN#Qp zadB}J6)j=I#urf#czO3X!C*Z&LD5rfCLY^S$>ZP6}eFW#%-2L)+t{`cPyqLD6))yK1?m7F>6=?Y&8f)>3zbH1O)cT}QNtB4KL(A@1i zMzF88gDrb&hn~H`?o`-XUeDI@dXfwwboAS>*qvV6UMhkfzO~q$V+s%8loj4P(&9H= ze`sC`uI?L9L4e;YK&2A7XF)0}u1lh+%Z$S*Q{ORwtSHpAyWYpI>bqzU!p`gqlf$*l zO^*g(+T?Hq0n%ebkyIin(R#FM6&9;^6WJU5R)By&tZQ6PV zS^MWhqtcj}7)kON#>?4Gv(K#2=6mv)5;@W->l(1q*>9t&xfesIn$&3j4WxkffXaq0 zwwBkAD2vjoi4E8CK;cwoC3#wO!|}v-XOJ`obIo05{&DMQIRyHAd5@%-0xA%uA0UK2qng>xb(kvMzX)7t^ z);-|T`mgSsHKM$+a{!w|Mt5QLwD>sA+;u-+k%z_ZL?el$#&|kX?ygLfm zxZ^Fo^bOhx)w*6In?vS{Q|uk08cKRK}t+0ukQSCOyP$^HEC+zzX51M#=e-?*xHWMDRcLdIV41daHy{HimwDo z6!_O=*(}MK!YeyJpmgu(cF1tpEv}m;0s8{4z4HlHyMxDncn8zs!g+OXEk`CeEj}9N zq#Ag1$#jyV_5AjYQg*!mS->;`S^;iU)ih9D+eks)H2z`1RHny;F<^CEwk+}d^k^Ph zl);*XQ|ayL;rZWh=fA(G2#AJz1&r&as9I8S@9m3Owftrb5n*)pTluK^9LHOFIo{G2 zG}l$9R*{<+L2hCsOJ~Lt6Q-rRub*8X{*4{)e}>%=_&DxOFeq1LRia4Yyj*Tyynw>F zxkKf(MiaG0*L|V-^Zhtvg-(-|F0&1rU8bqab*n5TT8~C860O$|6Rt%P1=1(EjIQZ% z;Y^PU2VC*~^2!sG?mbBPS0~0yd-+086)+rHjhfk6>CB$t`o%;=kdYF9NwiKkwbIpN z;_FlOuHQHHSZ&@fUuSI-S*t`DjsiIB z{=1M@JKVC$a8z{2;xCPfRb{~T>uo#5rL4L+z9n`rSUt3Tt nAZ`TZm+q1gPVN84&*%Ra7her>#-hHS00000NkvXXu0mjf|6N@O literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..4ac6389 --- /dev/null +++ b/project.godot @@ -0,0 +1,59 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "KinematicBody2D", +"class": "Neighbor", +"language": "GDScript", +"path": "res://scripts/neighbor.gd" +}, { +"base": "KinematicBody2D", +"class": "Player", +"language": "GDScript", +"path": "res://scripts/player.gd" +}, { +"base": "KinematicBody2D", +"class": "Trolley", +"language": "GDScript", +"path": "res://scripts/trolley.gd" +} ] +_global_script_class_icons={ +"Neighbor": "", +"Player": "", +"Trolley": "" +} + +[application] + +config/name="roger" +run/main_scene="res://scenes/stage.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=1280 +window/size/height=960 + +[layer_names] + +2d_physics/layer_1="player" +2d_physics/layer_2="npc" +2d_physics/layer_3="obstacle" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/scenes/house.tscn b/scenes/house.tscn new file mode 100644 index 0000000..e0bd038 --- /dev/null +++ b/scenes/house.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scripts/house.gd" type="Script" id=1] +[ext_resource path="res://roger-roger/chadHouse.png" type="Texture" id=2] + +[sub_resource type="CapsuleShape2D" id=3] +radius = 12.2857 +height = 2.57142 + +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 86, 63.5 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 3.5, 2 ) + +[node name="House" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -125 ) +scale = Vector2( 5, 5 ) +texture = ExtResource( 2 ) + +[node name="HouseBody" type="StaticBody2D" parent="."] +collision_layer = 4 +collision_mask = 7 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -7, -90 ) +scale = Vector2( 7, 7 ) +shape = SubResource( 3 ) + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -6, -49.5 ) +shape = SubResource( 4 ) + +[node name="DoorBody" type="StaticBody2D" parent="."] +scale = Vector2( 7, 7 ) +collision_layer = 4 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DoorBody"] +position = Vector2( -0.857143, 1.57143 ) +shape = SubResource( 2 ) diff --git a/scenes/neighbor.tscn b/scenes/neighbor.tscn new file mode 100644 index 0000000..463a1a1 --- /dev/null +++ b/scenes/neighbor.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=14 format=2] + +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinFinal.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin2.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin5.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin6.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin4.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin3.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinStart.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/LadyAberlin.png" type="Texture" id=9] +[ext_resource path="res://scripts/neighbor.gd" type="Script" id=10] + +[sub_resource type="CircleShape2D" id=3] +radius = 215.037 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 9 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 2 ), ExtResource( 6 ), ExtResource( 5 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 1 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +}, { +"frames": [ ExtResource( 7 ), ExtResource( 2 ), ExtResource( 9 ) ], +"loop": true, +"name": "walk", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 12.0 +height = 10.0 + +[node name="Neighbor" type="KinematicBody2D"] +script = ExtResource( 10 ) + +[node name="RogerArea2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RogerArea2D"] +shape = SubResource( 3 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 1, -29 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "walk" +frame = 2 +playing = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( -1, 0 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="WanderTimer" type="Timer" parent="."] + +[connection signal="body_entered" from="RogerArea2D" to="." method="_on_RogerArea2D_body_entered"] +[connection signal="timeout" from="WanderTimer" to="." method="_on_WanderTimer_timeout"] diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..675a8e7 --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://roger-roger/runningSprites/Rogers5.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/Rogers4.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/Rogers6.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/Rogers2.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/Rogers3.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/RogersFinal.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/Rogers1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/RogersStart.png" type="Texture" id=8] +[ext_resource path="res://scripts/player.gd" type="Script" id=9] +[ext_resource path="res://roger-roger/mrRogers.png" type="Texture" id=10] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 13.0 +height = 10.0001 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 10 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 2 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 6 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +} ] + +[node name="Player" type="KinematicBody2D"] +collision_mask = 7 +script = ExtResource( 9 ) +ACCELERATION = 2000 +FRICTION = 2500 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, 4 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 2, -25 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "idle" +playing = true + +[node name="Camera2D" type="Camera2D" parent="."] +current = true diff --git a/scenes/stage.tscn b/scenes/stage.tscn new file mode 100644 index 0000000..19e0611 --- /dev/null +++ b/scenes/stage.tscn @@ -0,0 +1,180 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=1] +[ext_resource path="res://scripts/stage.gd" type="Script" id=2] +[ext_resource path="res://scenes/house.tscn" type="PackedScene" id=3] +[ext_resource path="res://scenes/trolley.tscn" type="PackedScene" id=4] +[ext_resource path="res://scenes/neighbor.tscn" type="PackedScene" id=5] +[ext_resource path="res://roger-roger/tilemap/streetSideTop.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalLeft.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/tilemap/streetSideBottom.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/tilemap/sidewalk.png" type="Texture" id=9] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalRight.png" type="Texture" id=10] +[ext_resource path="res://roger-roger/tilemap/grass1.png" type="Texture" id=11] +[ext_resource path="res://roger-roger/tilemap/justRoad.png" type="Texture" id=12] +[ext_resource path="res://scenes/tree.tscn" type="PackedScene" id=13] + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="TileSet" id=2] +0/name = "StreetVerticalRight.png 0" +0/texture = ExtResource( 10 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 16, 16 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "StreetVerticalLeft.png 1" +1/texture = ExtResource( 7 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 0, 16, 16 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +3/name = "sidewalk.png 3" +3/texture = ExtResource( 9 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 0, 16, 16 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape_one_way = false +3/shape_one_way_margin = 0.0 +3/shapes = [ ] +3/z_index = 0 +5/name = "streetSideBottom.png 5" +5/texture = ExtResource( 8 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 0, 0, 16, 16 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape_one_way = false +5/shape_one_way_margin = 0.0 +5/shapes = [ ] +5/z_index = 0 +6/name = "streetSideTop.png 6" +6/texture = ExtResource( 6 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 0, 0, 16, 16 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shape_offset = Vector2( 0, 0 ) +6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +6/shape_one_way = false +6/shape_one_way_margin = 0.0 +6/shapes = [ ] +6/z_index = 0 +7/name = "grass1.png 7" +7/texture = ExtResource( 11 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 0, 0, 16, 16 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shape_offset = Vector2( 0, 0 ) +7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +7/shape = SubResource( 3 ) +7/shape_one_way = false +7/shape_one_way_margin = 1.0 +7/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +7/z_index = 0 +8/name = "justRoad.png 8" +8/texture = ExtResource( 12 ) +8/tex_offset = Vector2( 0, 0 ) +8/modulate = Color( 1, 1, 1, 1 ) +8/region = Rect2( 0, 0, 16, 16 ) +8/tile_mode = 0 +8/occluder_offset = Vector2( 0, 0 ) +8/navigation_offset = Vector2( 0, 0 ) +8/shape_offset = Vector2( 0, 0 ) +8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +8/shape_one_way = false +8/shape_one_way_margin = 0.0 +8/shapes = [ ] +8/z_index = 0 + +[node name="Stage" type="Node2D"] +script = ExtResource( 2 ) + +[node name="TileMap" type="TileMap" parent="."] +scale = Vector2( 5, 5 ) +tile_set = SubResource( 2 ) +cell_size = Vector2( 16, 16 ) +show_collision = true +format = 1 +tile_data = PoolIntArray( -13, 7, 0, -12, 7, 0, -11, 3, 0, -10, 1, 0, -9, 0, 0, -8, 3, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65517, 7, 0, -65516, 7, 0, -65515, 7, 0, -65514, 7, 0, -65513, 7, 0, -65512, 7, 0, -65511, 7, 0, -65510, 7, 0, 65523, 7, 0, 65524, 7, 0, 65525, 3, 0, 65526, 1, 0, 65527, 0, 0, 65528, 3, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 3, 0, 6, 3, 0, 7, 8, 0, 8, 8, 0, 9, 3, 0, 10, 3, 0, 11, 3, 0, 12, 3, 0, 13, 3, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 19, 7, 0, 20, 3, 0, 21, 3, 0, 22, 3, 0, 23, 3, 0, 24, 7, 0, 25, 7, 0, 26, 7, 0, 131059, 3, 0, 131060, 3, 0, 131061, 3, 0, 131062, 1, 0, 131063, 0, 0, 131064, 3, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 3, 0, 65543, 1, 0, 65544, 0, 0, 65545, 3, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 3, 0, 65550, 3, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65555, 7, 0, 65556, 3, 0, 65557, 1, 0, 65558, 0, 0, 65559, 3, 0, 65560, 7, 0, 65561, 7, 0, 65562, 7, 0, 196595, 6, 0, 196596, 6, 0, 196597, 6, 0, 196598, 8, 0, 196599, 8, 0, 196600, 3, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 3, 0, 131079, 1, 0, 131080, 0, 0, 131081, 3, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 3, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131091, 7, 0, 131092, 3, 0, 131093, 1, 0, 131094, 0, 0, 131095, 3, 0, 131096, 7, 0, 131097, 7, 0, 131098, 7, 0, 262131, 5, 0, 262132, 5, 0, 262133, 5, 0, 262134, 8, 0, 262135, 8, 0, 262136, 3, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 3, 0, 196615, 1, 0, 196616, 0, 0, 196617, 3, 0, 196618, 7, 0, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 3, 0, 196623, 3, 0, 196624, 3, 0, 196625, 3, 0, 196626, 3, 0, 196627, 3, 0, 196628, 3, 0, 196629, 1, 0, 196630, 0, 0, 196631, 3, 0, 196632, 7, 0, 196633, 7, 0, 196634, 7, 0, 327667, 3, 0, 327668, 3, 0, 327669, 3, 0, 327670, 3, 0, 327671, 3, 0, 327672, 3, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 3, 0, 262151, 1, 0, 262152, 0, 0, 262153, 3, 0, 262154, 7, 0, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 3, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262163, 7, 0, 262164, 3, 0, 262165, 1, 0, 262166, 0, 0, 262167, 3, 0, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 3, 0, 327687, 1, 0, 327688, 0, 0, 327689, 3, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 3, 0, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327699, 7, 0, 327700, 3, 0, 327701, 1, 0, 327702, 0, 0, 327703, 3, 0, 327704, 7, 0, 327705, 7, 0, 327706, 7, 0, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 3, 0, 393223, 1, 0, 393224, 0, 0, 393225, 3, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 3, 0, 393231, 7, 0, 393232, 3, 0, 393233, 3, 0, 393234, 3, 0, 393235, 3, 0, 393236, 3, 0, 393237, 8, 0, 393238, 8, 0, 393239, 3, 0, 393240, 3, 0, 393241, 3, 0, 393242, 7, 0, 524275, 7, 0, 524276, 7, 0, 524277, 7, 0, 524278, 7, 0, 524279, 7, 0, 524280, 7, 0, 524281, 7, 0, 524282, 7, 0, 524283, 7, 0, 524284, 7, 0, 524285, 7, 0, 524286, 7, 0, 524287, 7, 0, 458752, 7, 0, 458753, 7, 0, 458754, 7, 0, 458755, 7, 0, 458756, 7, 0, 458757, 7, 0, 458758, 3, 0, 458759, 1, 0, 458760, 0, 0, 458761, 3, 0, 458762, 7, 0, 458763, 7, 0, 458764, 7, 0, 458765, 7, 0, 458766, 3, 0, 458767, 7, 0, 458768, 3, 0, 458769, 8, 0, 458770, 6, 0, 458771, 6, 0, 458772, 6, 0, 458773, 8, 0, 458774, 8, 0, 458775, 6, 0, 458776, 8, 0, 458777, 3, 0, 458778, 7, 0, 589811, 7, 0, 589812, 7, 0, 589813, 7, 0, 589814, 7, 0, 589815, 7, 0, 589816, 7, 0, 589817, 7, 0, 589818, 7, 0, 589819, 3, 0, 589820, 3, 0, 589821, 3, 0, 589822, 3, 0, 589823, 3, 0, 524288, 3, 0, 524289, 3, 0, 524290, 3, 0, 524291, 3, 0, 524292, 3, 0, 524293, 3, 0, 524294, 3, 0, 524295, 1, 0, 524296, 0, 0, 524297, 3, 0, 524298, 3, 0, 524299, 3, 0, 524300, 3, 0, 524301, 3, 0, 524302, 3, 0, 524303, 3, 0, 524304, 3, 0, 524305, 8, 0, 524306, 5, 0, 524307, 5, 0, 524308, 5, 0, 524309, 8, 0, 524310, 8, 0, 524311, 5, 0, 524312, 8, 0, 524313, 3, 0, 524314, 7, 0, 655347, 7, 0, 655348, 7, 0, 655349, 7, 0, 655350, 7, 0, 655351, 7, 0, 655352, 7, 0, 655353, 7, 0, 655354, 7, 0, 655355, 3, 0, 655356, 8, 0, 655357, 6, 0, 655358, 6, 0, 655359, 6, 0, 589824, 6, 0, 589825, 6, 0, 589826, 6, 0, 589827, 6, 0, 589828, 6, 0, 589829, 6, 0, 589830, 6, 0, 589831, 8, 0, 589832, 8, 0, 589833, 3, 0, 589834, 3, 0, 589835, 3, 0, 589836, 3, 0, 589837, 3, 0, 589838, 3, 0, 589839, 3, 0, 589840, 3, 0, 589841, 3, 0, 589842, 3, 0, 589843, 3, 0, 589844, 3, 0, 589845, 1, 0, 589846, 0, 0, 589847, 3, 0, 589848, 3, 0, 589849, 3, 0, 589850, 7, 0, 720883, 7, 0, 720884, 7, 0, 720885, 7, 0, 720886, 7, 0, 720887, 7, 0, 720888, 7, 0, 720889, 7, 0, 720890, 7, 0, 720891, 3, 0, 720892, 8, 0, 720893, 5, 0, 720894, 5, 0, 720895, 5, 0, 655360, 5, 0, 655361, 5, 0, 655362, 5, 0, 655363, 5, 0, 655364, 5, 0, 655365, 5, 0, 655366, 5, 0, 655367, 8, 0, 655368, 8, 0, 655369, 3, 0, 655370, 7, 0, 655371, 7, 0, 655372, 7, 0, 655373, 7, 0, 655374, 7, 0, 655375, 7, 0, 655376, 7, 0, 655377, 7, 0, 655378, 7, 0, 655379, 7, 0, 655380, 3, 0, 655381, 1, 0, 655382, 0, 0, 655383, 3, 0, 655384, 7, 0, 655385, 7, 0, 655386, 7, 0, 786419, 7, 0, 786420, 7, 0, 786421, 7, 0, 786422, 7, 0, 786423, 7, 0, 786424, 7, 0, 786425, 7, 0, 786426, 7, 0, 786427, 3, 0, 786428, 3, 0, 786429, 3, 0, 786430, 3, 0, 786431, 3, 0, 720896, 3, 0, 720897, 3, 0, 720898, 3, 0, 720899, 3, 0, 720900, 3, 0, 720901, 3, 0, 720902, 3, 0, 720903, 1, 0, 720904, 0, 0, 720905, 3, 0, 720906, 7, 0, 720907, 7, 0, 720908, 7, 0, 720909, 7, 0, 720910, 7, 0, 720911, 7, 0, 720912, 7, 0, 720913, 7, 0, 720914, 7, 0, 720915, 7, 0, 720916, 3, 0, 720917, 1, 0, 720918, 0, 0, 720919, 3, 0, 720920, 7, 0, 720921, 7, 0, 720922, 7, 0, 851955, 7, 0, 851956, 7, 0, 851957, 7, 0, 851958, 7, 0, 851959, 7, 0, 851960, 7, 0, 851961, 7, 0, 851962, 7, 0, 851963, 7, 0, 851964, 7, 0, 851965, 7, 0, 851966, 7, 0, 851967, 7, 0, 786432, 7, 0, 786433, 3, 0, 786434, 3, 0, 786435, 7, 0, 786436, 7, 0, 786437, 7, 0, 786438, 3, 0, 786439, 1, 0, 786440, 0, 0, 786441, 3, 0, 786442, 3, 0, 786443, 3, 0, 786444, 3, 0, 786445, 7, 0, 786446, 7, 0, 786447, 7, 0, 786448, 7, 0, 786449, 7, 0, 786450, 7, 0, 786451, 7, 0, 786452, 3, 0, 786453, 1, 0, 786454, 0, 0, 786455, 3, 0, 786456, 7, 0, 786457, 7, 0, 786458, 7, 0, 917491, 7, 0, 917492, 7, 0, 917493, 7, 0, 917494, 7, 0, 917495, 7, 0, 917496, 7, 0, 917497, 7, 0, 917498, 3, 0, 917499, 3, 0, 917500, 3, 0, 917501, 3, 0, 917502, 3, 0, 917503, 3, 0, 851968, 3, 0, 851969, 3, 0, 851970, 3, 0, 851971, 3, 0, 851972, 3, 0, 851973, 3, 0, 851974, 3, 0, 851975, 1, 0, 851976, 0, 0, 851977, 3, 0, 851978, 3, 0, 851979, 3, 0, 851980, 3, 0, 851981, 3, 0, 851982, 7, 0, 851983, 7, 0, 851984, 7, 0, 851985, 7, 0, 851986, 7, 0, 851987, 7, 0, 851988, 3, 0, 851989, 1, 0, 851990, 0, 0, 851991, 3, 0, 851992, 7, 0, 851993, 7, 0, 851994, 7, 0, 983027, 7, 0, 983028, 7, 0, 983029, 7, 0, 983030, 7, 0, 983031, 7, 0, 983032, 7, 0, 983033, 7, 0, 983034, 3, 0, 983035, 3, 0, 983036, 3, 0, 983037, 3, 0, 983038, 3, 0, 983039, 3, 0, 917504, 3, 0, 917505, 3, 0, 917506, 3, 0, 917507, 7, 0, 917508, 7, 0, 917509, 7, 0, 917510, 3, 0, 917511, 1, 0, 917512, 0, 0, 917513, 3, 0, 917514, 7, 0, 917515, 7, 0, 917516, 3, 0, 917517, 3, 0, 917518, 3, 0, 917519, 7, 0, 917520, 7, 0, 917521, 7, 0, 917522, 7, 0, 917523, 7, 0, 917524, 3, 0, 917525, 1, 0, 917526, 0, 0, 917527, 3, 0, 917528, 7, 0, 917529, 7, 0, 917530, 7, 0, 1048563, 7, 0, 1048564, 7, 0, 1048565, 7, 0, 1048566, 7, 0, 1048567, 7, 0, 1048568, 7, 0, 1048569, 7, 0, 1048570, 3, 0, 1048571, 8, 0, 1048572, 8, 0, 1048573, 3, 0, 1048574, 7, 0, 1048575, 7, 0, 983040, 7, 0, 983041, 3, 0, 983042, 3, 0, 983043, 7, 0, 983044, 7, 0, 983045, 7, 0, 983046, 3, 0, 983047, 1, 0, 983048, 0, 0, 983049, 3, 0, 983050, 7, 0, 983051, 7, 0, 983052, 7, 0, 983053, 3, 0, 983054, 3, 0, 983055, 3, 0, 983056, 7, 0, 983057, 7, 0, 983058, 7, 0, 983059, 7, 0, 983060, 3, 0, 983061, 1, 0, 983062, 0, 0, 983063, 3, 0, 983064, 7, 0, 983065, 7, 0, 983066, 7, 0, 1114099, 7, 0, 1114100, 7, 0, 1114101, 7, 0, 1114102, 7, 0, 1114103, 7, 0, 1114104, 7, 0, 1114105, 7, 0, 1114106, 3, 0, 1114107, 1, 0, 1114108, 0, 0, 1114109, 3, 0, 1114110, 7, 0, 1114111, 7, 0, 1048576, 7, 0, 1048577, 3, 0, 1048578, 3, 0, 1048579, 7, 0, 1048580, 7, 0, 1048581, 7, 0, 1048582, 3, 0, 1048583, 1, 0, 1048584, 0, 0, 1048585, 3, 0, 1048586, 7, 0, 1048587, 7, 0, 1048588, 7, 0, 1048589, 7, 0, 1048590, 3, 0, 1048591, 3, 0, 1048592, 3, 0, 1048593, 7, 0, 1048594, 7, 0, 1048595, 7, 0, 1048596, 3, 0, 1048597, 1, 0, 1048598, 0, 0, 1048599, 3, 0, 1048600, 7, 0, 1048601, 7, 0, 1048602, 7, 0, 1179635, 7, 0, 1179636, 7, 0, 1179637, 7, 0, 1179638, 7, 0, 1179639, 7, 0, 1179640, 7, 0, 1179641, 7, 0, 1179642, 3, 0, 1179643, 1, 0, 1179644, 0, 0, 1179645, 3, 0, 1179646, 7, 0, 1179647, 7, 0, 1114112, 7, 0, 1114113, 3, 0, 1114114, 3, 0, 1114115, 7, 0, 1114116, 7, 0, 1114117, 7, 0, 1114118, 3, 0, 1114119, 1, 0, 1114120, 0, 0, 1114121, 3, 0, 1114122, 7, 0, 1114123, 7, 0, 1114124, 7, 0, 1114125, 7, 0, 1114126, 7, 0, 1114127, 3, 0, 1114128, 3, 0, 1114129, 3, 0, 1114130, 7, 0, 1114131, 7, 0, 1114132, 3, 0, 1114133, 1, 0, 1114134, 0, 0, 1114135, 3, 0, 1114136, 7, 0, 1114137, 7, 0, 1114138, 7, 0, 1245171, 7, 0, 1245172, 7, 0, 1245173, 7, 0, 1245174, 7, 0, 1245175, 7, 0, 1245176, 7, 0, 1245177, 7, 0, 1245178, 3, 0, 1245179, 1, 0, 1245180, 0, 0, 1245181, 3, 0, 1245182, 7, 0, 1245183, 7, 0, 1179648, 7, 0, 1179649, 7, 0, 1179650, 7, 0, 1179651, 7, 0, 1179652, 7, 0, 1179653, 7, 0, 1179654, 3, 0, 1179655, 1, 0, 1179656, 0, 0, 1179657, 3, 0, 1179658, 7, 0, 1179659, 7, 0, 1179660, 7, 0, 1179661, 7, 0, 1179662, 7, 0, 1179663, 7, 0, 1179664, 3, 0, 1179665, 3, 0, 1179666, 3, 0, 1179667, 7, 0, 1179668, 3, 0, 1179669, 1, 0, 1179670, 0, 0, 1179671, 3, 0, 1179672, 7, 0, 1179673, 7, 0, 1179674, 7, 0, 1310707, 3, 0, 1310708, 3, 0, 1310709, 3, 0, 1310710, 3, 0, 1310711, 7, 0, 1310712, 7, 0, 1310713, 7, 0, 1310714, 3, 0, 1310715, 1, 0, 1310716, 0, 0, 1310717, 3, 0, 1310718, 3, 0, 1310719, 3, 0, 1245184, 3, 0, 1245185, 3, 0, 1245186, 3, 0, 1245187, 3, 0, 1245188, 3, 0, 1245189, 3, 0, 1245190, 3, 0, 1245191, 1, 0, 1245192, 0, 0, 1245193, 3, 0, 1245194, 3, 0, 1245195, 3, 0, 1245196, 3, 0, 1245197, 3, 0, 1245198, 3, 0, 1245199, 3, 0, 1245200, 3, 0, 1245201, 3, 0, 1245202, 3, 0, 1245203, 3, 0, 1245204, 3, 0, 1245205, 1, 0, 1245206, 0, 0, 1245207, 3, 0, 1245208, 7, 0, 1245209, 7, 0, 1245210, 7, 0, 1376243, 6, 0, 1376244, 6, 0, 1376245, 8, 0, 1376246, 3, 0, 1376247, 7, 0, 1376248, 7, 0, 1376249, 7, 0, 1376250, 3, 0, 1376251, 8, 0, 1376252, 8, 0, 1376253, 6, 0, 1376254, 6, 0, 1376255, 6, 0, 1310720, 6, 0, 1310721, 6, 0, 1310722, 6, 0, 1310723, 6, 0, 1310724, 6, 0, 1310725, 6, 0, 1310726, 6, 0, 1310727, 8, 0, 1310728, 8, 0, 1310729, 6, 0, 1310730, 6, 0, 1310731, 6, 0, 1310732, 6, 0, 1310733, 6, 0, 1310734, 6, 0, 1310735, 6, 0, 1310736, 6, 0, 1310737, 6, 0, 1310738, 6, 0, 1310739, 6, 0, 1310740, 6, 0, 1310741, 8, 0, 1310742, 8, 0, 1310743, 3, 0, 1310744, 7, 0, 1310745, 7, 0, 1310746, 7, 0, 1441779, 5, 0, 1441780, 5, 0, 1441781, 8, 0, 1441782, 3, 0, 1441783, 7, 0, 1441784, 7, 0, 1441785, 7, 0, 1441786, 3, 0, 1441787, 8, 0, 1441788, 8, 0, 1441789, 5, 0, 1441790, 5, 0, 1441791, 5, 0, 1376256, 5, 0, 1376257, 5, 0, 1376258, 5, 0, 1376259, 5, 0, 1376260, 5, 0, 1376261, 5, 0, 1376262, 5, 0, 1376263, 8, 0, 1376264, 8, 0, 1376265, 5, 0, 1376266, 5, 0, 1376267, 5, 0, 1376268, 5, 0, 1376269, 5, 0, 1376270, 5, 0, 1376271, 5, 0, 1376272, 5, 0, 1376273, 5, 0, 1376274, 5, 0, 1376275, 5, 0, 1376276, 5, 0, 1376277, 8, 0, 1376278, 8, 0, 1376279, 3, 0, 1376280, 7, 0, 1376281, 7, 0, 1376282, 7, 0, 1507315, 3, 0, 1507316, 3, 0, 1507317, 3, 0, 1507318, 3, 0, 1507319, 7, 0, 1507320, 7, 0, 1507321, 7, 0, 1507322, 3, 0, 1507323, 3, 0, 1507324, 3, 0, 1507325, 3, 0, 1507326, 3, 0, 1507327, 3, 0, 1441792, 8, 0, 1441793, 8, 0, 1441794, 3, 0, 1441795, 3, 0, 1441796, 3, 0, 1441797, 3, 0, 1441798, 3, 0, 1441799, 3, 0, 1441800, 3, 0, 1441801, 3, 0, 1441802, 3, 0, 1441803, 3, 0, 1441804, 3, 0, 1441805, 3, 0, 1441806, 3, 0, 1441807, 3, 0, 1441808, 3, 0, 1441809, 3, 0, 1441810, 3, 0, 1441811, 3, 0, 1441812, 3, 0, 1441813, 8, 0, 1441814, 8, 0, 1441815, 3, 0, 1441816, 7, 0, 1441817, 7, 0, 1441818, 7, 0, 1572851, 7, 0, 1572852, 7, 0, 1572853, 7, 0, 1572854, 7, 0, 1572855, 7, 0, 1572856, 7, 0, 1572857, 7, 0, 1572858, 3, 0, 1572859, 3, 0, 1572860, 7, 0, 1572861, 7, 0, 1572862, 7, 0, 1572863, 3, 0, 1507328, 8, 0, 1507329, 8, 0, 1507330, 3, 0, 1507331, 7, 0, 1507332, 7, 0, 1507333, 7, 0, 1507334, 7, 0, 1507335, 7, 0, 1507336, 7, 0, 1507337, 7, 0, 1507338, 7, 0, 1507339, 7, 0, 1507340, 7, 0, 1507341, 7, 0, 1507342, 7, 0, 1507343, 7, 0, 1507344, 7, 0, 1507345, 7, 0, 1507346, 7, 0, 1507347, 7, 0, 1507348, 3, 0, 1507349, 8, 0, 1507350, 8, 0, 1507351, 3, 0, 1507352, 7, 0, 1507353, 7, 0, 1507354, 7, 0, 1638387, 7, 0, 1638388, 7, 0, 1638389, 7, 0, 1638390, 7, 0, 1638391, 7, 0, 1638392, 3, 0, 1638393, 3, 0, 1638394, 3, 0, 1638395, 3, 0, 1638396, 7, 0, 1638397, 7, 0, 1638398, 7, 0, 1638399, 3, 0, 1572864, 8, 0, 1572865, 8, 0, 1572866, 3, 0, 1572867, 7, 0, 1572868, 7, 0, 1572869, 7, 0, 1572870, 7, 0, 1572871, 7, 0, 1572872, 7, 0, 1572873, 7, 0, 1572874, 7, 0, 1572875, 7, 0, 1572876, 7, 0, 1572877, 7, 0, 1572878, 7, 0, 1572879, 7, 0, 1572880, 7, 0, 1572881, 7, 0, 1572882, 7, 0, 1572883, 7, 0, 1572884, 3, 0, 1572885, 8, 0, 1572886, 8, 0, 1572887, 3, 0, 1572888, 3, 0, 1572889, 3, 0, 1572890, 7, 0, 1703923, 7, 0, 1703924, 7, 0, 1703925, 7, 0, 1703926, 7, 0, 1703927, 7, 0, 1703928, 3, 0, 1703929, 3, 0, 1703930, 3, 0, 1703931, 3, 0, 1703932, 7, 0, 1703933, 7, 0, 1703934, 7, 0, 1703935, 3, 0, 1638400, 3, 0, 1638401, 3, 0, 1638402, 3, 0, 1638403, 7, 0, 1638404, 7, 0, 1638405, 7, 0, 1638406, 7, 0, 1638407, 7, 0, 1638408, 7, 0, 1638409, 7, 0, 1638410, 7, 0, 1638411, 7, 0, 1638412, 7, 0, 1638413, 7, 0, 1638414, 7, 0, 1638415, 7, 0, 1638416, 7, 0, 1638417, 7, 0, 1638418, 7, 0, 1638419, 7, 0, 1638420, 3, 0, 1638421, 3, 0, 1638422, 3, 0, 1638423, 3, 0, 1638424, 3, 0, 1638425, 3, 0, 1638426, 7, 0, 1769459, 7, 0, 1769460, 7, 0, 1769461, 7, 0, 1769462, 7, 0, 1769463, 7, 0, 1769464, 7, 0, 1769465, 7, 0, 1769466, 7, 0, 1769467, 7, 0, 1769468, 7, 0, 1769469, 7, 0, 1769470, 7, 0, 1769471, 7, 0, 1703936, 7, 0, 1703937, 7, 0, 1703938, 7, 0, 1703939, 7, 0, 1703940, 7, 0, 1703941, 7, 0, 1703942, 7, 0, 1703943, 7, 0, 1703944, 7, 0, 1703945, 7, 0, 1703946, 7, 0, 1703947, 7, 0, 1703948, 7, 0, 1703949, 7, 0, 1703950, 7, 0, 1703951, 7, 0, 1703952, 7, 0, 1703953, 7, 0, 1703954, 7, 0, 1703955, 7, 0, 1703956, 7, 0, 1703957, 7, 0, 1703958, 7, 0, 1703959, 7, 0, 1703960, 7, 0, 1703961, 7, 0, 1703962, 7, 0, 1834995, 7, 0, 1834996, 7, 0, 1834997, 7, 0, 1834998, 7, 0, 1834999, 7, 0, 1835000, 7, 0, 1835001, 7, 0, 1835002, 7, 0, 1835003, 7, 0, 1835004, 7, 0, 1835005, 7, 0, 1835006, 7, 0, 1835007, 7, 0, 1769472, 7, 0, 1769473, 7, 0, 1769474, 7, 0, 1769475, 7, 0, 1769476, 7, 0, 1769477, 7, 0, 1769478, 7, 0, 1769479, 7, 0, 1769480, 7, 0, 1769481, 7, 0, 1769482, 7, 0, 1769483, 7, 0, 1769484, 7, 0, 1769485, 7, 0, 1769486, 7, 0, 1769487, 7, 0, 1769488, 7, 0, 1769489, 7, 0, 1769490, 7, 0, 1769491, 7, 0, 1769492, 7, 0, 1769493, 7, 0, 1769494, 7, 0, 1769495, 7, 0, 1769496, 7, 0, 1769497, 7, 0, 1769498, 7, 0 ) + +[node name="YSort" type="YSort" parent="."] + +[node name="Tree" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 412.655, 542.278 ) + +[node name="Tree2" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 862.175, 801.526 ) + +[node name="Tree3" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1506.73, 1272.45 ) + +[node name="Tree4" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1045.31, 479.251 ) + +[node name="Tree5" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -64.6703, 908.108 ) + +[node name="Tree6" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -68.0338, 1333.6 ) + +[node name="Tree7" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 935.996, 1365.56 ) + +[node name="Trolley" parent="YSort" instance=ExtResource( 4 )] +position = Vector2( 111.946, -51.4683 ) + +[node name="Player" parent="YSort" instance=ExtResource( 1 )] +position = Vector2( 521.375, 114 ) + +[node name="House" parent="YSort" instance=ExtResource( 3 )] +position = Vector2( 1972.13, 1965.82 ) + +[node name="Neighbor" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 760.201, 407.292 ) + +[node name="Neighbor2" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 521.578, 319.171 ) + +[node name="Neighbor3" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 477.85, 707.714 ) + +[node name="Neighbor4" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( -324.858, 684.091 ) diff --git a/scenes/tree.tscn b/scenes/tree.tscn new file mode 100644 index 0000000..7d0f7f7 --- /dev/null +++ b/scenes/tree.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://roger-roger/tree.png" type="Texture" id=1] + +[node name="Tree" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) diff --git a/scenes/trolley.tscn b/scenes/trolley.tscn new file mode 100644 index 0000000..beeb0ab --- /dev/null +++ b/scenes/trolley.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://roger-roger/trolley-lg.png" type="Texture" id=1] +[ext_resource path="res://scripts/trolley.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 38, 10 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 44.5, 8.25 ) + +[node name="Trolley" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="TrolleySeatArea" type="Area2D" parent="."] +collision_layer = 0 + +[node name="SeatAreaShape" type="CollisionShape2D" parent="TrolleySeatArea"] +position = Vector2( -1, -41 ) +shape = SubResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -70 ) +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) + +[node name="TrolleyShape" type="CollisionPolygon2D" parent="."] +position = Vector2( 0, -64 ) +scale = Vector2( 0.8, 0.8 ) +polygon = PoolVector2Array( 172, -5, 198, 106, 150, 106, 122, 127, 74, 109, 46, 83, 43.75, 16.25, -46.25, 16.25, -48, 48, -48, 84, -78, 110, -114, 127, -148, 107, -197, 107, -163, 5, -163, -72, 165, -72 ) + +[node name="TrolleyClosedShape" type="CollisionShape2D" parent="."] +position = Vector2( 0, -2.25 ) +shape = SubResource( 3 ) + +[connection signal="body_entered" from="TrolleySeatArea" to="." method="_on_TrolleySeatArea_body_entered"] diff --git a/scripts/house.gd b/scripts/house.gd new file mode 100644 index 0000000..79a86d5 --- /dev/null +++ b/scripts/house.gd @@ -0,0 +1,6 @@ +extends Node2D + +onready var sprite = $Sprite + +func _ready() -> void: + sprite.set_modulate(Color(1.0, 0.0, 0.0)) diff --git a/scripts/neighbor.gd b/scripts/neighbor.gd new file mode 100644 index 0000000..234f8ea --- /dev/null +++ b/scripts/neighbor.gd @@ -0,0 +1,127 @@ +extends KinematicBody2D + +class_name Neighbor + +signal neighbor_following_roger + +onready var roger_area := $RogerArea2D +onready var sprite := $AnimatedSprite +onready var wander_timer := $WanderTimer + +export var MAX_SPEED := 225 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var state = State.IDLE +var neighbor_velocity := Vector2.ZERO +var leader: KinematicBody2D +var follower: KinematicBody2D +var rng := RandomNumberGenerator.new() +var is_wandering := false +var wander_direction := Vector2.ZERO + +enum State { + MOVE, + WANDER, + IDLE +} + +func reset_leads() -> void: + if follower != null: + follower.reset_leads() + leader = null + follower = null + +func _ready() -> void: + sprite.set_modulate(Color(.5,0,0)) + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.WANDER: + wander_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: +# var player := get_parent().get_node("Player") as Player +# leader.follower = self + if leader == null: + state = State.IDLE + return + var result_vector := leader.global_position - global_position + if result_vector.length() > 100: + move_neighbor(result_vector) + else: + state = State.IDLE + if result_vector.length() > 250: + leader.follower = null + leader = null + if follower != null: + follower.reset_leads() + follower = null + state = State.IDLE + +func wander_state(delta: float) -> void: + if leader != null: + state = State.MOVE + return + move_neighbor(wander_direction, true) + + +func move_neighbor(direction_vector: Vector2, is_wander: bool = false) -> void: + sprite.play("run") if not is_wander else sprite.play("walk") + var move_vector := Vector2(direction_vector).normalized() + if move_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif move_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + if move_vector != Vector2.ZERO: + var velocity := move_vector * MAX_SPEED if not is_wander else move_vector * MAX_SPEED / 3 + neighbor_velocity = neighbor_velocity.move_toward(velocity, ACCELERATION * get_physics_process_delta_time()) + else: + neighbor_velocity = neighbor_velocity.move_toward(Vector2.ZERO, FRICTION * get_physics_process_delta_time()) + + neighbor_velocity = move_and_slide(neighbor_velocity) + + +func idle_state(delta: float) -> void: + if wander_timer.is_stopped(): + wander_timer.start(rng.randf_range(0, 1.5)) + sprite.play("idle") + for body in roger_area.get_overlapping_bodies(): + if body.is_class("KinematicBody2D") and not body is Trolley and leader == null and body.follower == null and body.leader != null: + leader = body + leader.follower = self + if leader != null: + state = State.MOVE + +func _on_RogerArea2D_body_entered(body: Node) -> void: + if body != self and leader == null: + if body is Player and body.follower == null: + body.follower = self + leader = body + elif body.is_class("KinematicBody2D") and not body is Trolley and body.follower == null: + print('Got neighbor body') + if body.leader != null: + print('Following the leader') + leader = body + leader.follower = self + + +func _on_WanderTimer_timeout() -> void: + if state == State.IDLE: + print('wander timer done') + var rand_x = rng.randf_range(-1.0, 1.0) + var rand_y = rng.randf_range(-1.0, 1.0) + var wander_time = rng.randf_range(1.0, 1.5) + state = State.WANDER + wander_direction = Vector2(rand_x, rand_y) + wander_timer.start(wander_time) + elif state == State.WANDER: + print('Done wandering') + var wait_time = rng.randf_range(1.0, 5.5) + state = State.IDLE + wander_timer.start(wait_time) + diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..75b3160 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,63 @@ +extends KinematicBody2D + +class_name Player + +export var MAX_SPEED := 300 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var player_velocity = Vector2.ZERO +var state = State.IDLE +var follower : KinematicBody2D + +onready var sprite := $AnimatedSprite + +enum State { + MOVE, + IDLE +} + + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: + var input_vector := Vector2.ZERO + input_vector.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left") + input_vector.y = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up") + input_vector.normalized() + + if input_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif input_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + + + if input_vector != Vector2.ZERO: + player_velocity = player_velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta) + else: + player_velocity = player_velocity.move_toward(Vector2.ZERO, FRICTION * delta) + + player_velocity = move_and_slide(player_velocity) + + if player_velocity == Vector2.ZERO: + state = State.IDLE + +func idle_state(delta: float) -> void: + if Input.is_action_just_pressed("ui_up") or Input.is_action_just_pressed("ui_down") or Input.is_action_just_pressed("ui_left") or Input.is_action_just_pressed("ui_right"): + sprite.set_animation("run") + state = State.MOVE + else: + sprite.set_animation("idle") +# if Input.is_action_pressed("ui_up"): +# speed.y -= ACCELERATION +# elif Input.is_action_pressed("ui_right"): +# print("right") +# elif Input.is_action_pressed("ui_left"): +# print("left") +# elif Input.is_action_pressed("ui_down"): +# print("down") diff --git a/scripts/stage.gd b/scripts/stage.gd new file mode 100644 index 0000000..3eb6c96 --- /dev/null +++ b/scripts/stage.gd @@ -0,0 +1,2 @@ +extends Node2D + diff --git a/scripts/trolley.gd b/scripts/trolley.gd new file mode 100644 index 0000000..ac7d185 --- /dev/null +++ b/scripts/trolley.gd @@ -0,0 +1,33 @@ +extends KinematicBody2D + +class_name Trolley + +export var TIME = 60 +onready var trolley_closed_shape = $TrolleyClosedShape +export var MAX_VELOCITY = .3 + +var velocity := Vector2.ZERO +var has_roger := false + +func _ready() -> void: + trolley_closed_shape.set_deferred("disabled", true) + +func _physics_process(delta: float) -> void: + velocity.x = move_toward(velocity.x, MAX_VELOCITY, delta if not has_roger else delta * 10) + var collision := move_and_collide(velocity) + if collision: + var collider = collision.get_collider() + if collider.get_class() == "KinematicBody2D": + if has_roger: + MAX_VELOCITY = 10 + collider.move_and_collide(velocity * 3) + + + + +func _on_TrolleySeatArea_body_entered(body: Node) -> void: + if body is Player: + has_roger = true + print('closing trolley') + trolley_closed_shape.set_deferred("disabled", false) +