From bdaeeec44f129658ec189d3755a971d56290c6e3 Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Mon, 27 Oct 2025 21:02:54 -0400 Subject: [PATCH] physics layer, veg terain, parallax background, collectables, basic slimes --- assets/graphics/badguys/slime_green.png | Bin 0 -> 908 bytes .../graphics/badguys/slime_green.png.import | 40 +++++ assets/graphics/environment/background.png | Bin 0 -> 7156 bytes .../environment/background.png.import | 40 +++++ assets/graphics/environment/midground.png | Bin 0 -> 1859 bytes .../graphics/environment/midground.png.import | 40 +++++ assets/graphics/environment/sky.png | Bin 0 -> 670 bytes assets/graphics/environment/sky.png.import | 40 +++++ .../graphics/environment/terrain/airplane.png | Bin 0 -> 2455 bytes .../environment/terrain/airplane.png.import | 40 +++++ .../environment/terrain/mushroom_32x64.png | Bin 0 -> 1075 bytes .../terrain/mushroom_32x64.png.import | 40 +++++ .../environment/terrain/veg_32x32.png | Bin 0 -> 675 bytes .../environment/terrain/veg_32x32.png.import | 40 +++++ assets/graphics/pickups/coin.png | Bin 0 -> 500 bytes assets/graphics/pickups/coin.png.import | 40 +++++ scenes/coin.tscn | 113 +++++++++++++++ scenes/game.tscn | 137 ++++++++++++++++-- scenes/slime.tscn | 59 ++++++++ scripts/coin.gd | 18 +++ scripts/coin.gd.uid | 1 + scripts/gamecontroller.gd | 17 +++ scripts/player.gd | 2 +- scripts/scene_manager.gd | 27 +++- scripts/slime.gd | 17 +++ scripts/slime.gd.uid | 1 + 26 files changed, 700 insertions(+), 12 deletions(-) create mode 100644 assets/graphics/badguys/slime_green.png create mode 100644 assets/graphics/badguys/slime_green.png.import create mode 100644 assets/graphics/environment/background.png create mode 100644 assets/graphics/environment/background.png.import create mode 100644 assets/graphics/environment/midground.png create mode 100644 assets/graphics/environment/midground.png.import create mode 100644 assets/graphics/environment/sky.png create mode 100644 assets/graphics/environment/sky.png.import create mode 100644 assets/graphics/environment/terrain/airplane.png create mode 100644 assets/graphics/environment/terrain/airplane.png.import create mode 100644 assets/graphics/environment/terrain/mushroom_32x64.png create mode 100644 assets/graphics/environment/terrain/mushroom_32x64.png.import create mode 100644 assets/graphics/environment/terrain/veg_32x32.png create mode 100644 assets/graphics/environment/terrain/veg_32x32.png.import create mode 100644 assets/graphics/pickups/coin.png create mode 100644 assets/graphics/pickups/coin.png.import create mode 100644 scenes/coin.tscn create mode 100644 scenes/slime.tscn create mode 100644 scripts/coin.gd create mode 100644 scripts/coin.gd.uid create mode 100644 scripts/slime.gd create mode 100644 scripts/slime.gd.uid diff --git a/assets/graphics/badguys/slime_green.png b/assets/graphics/badguys/slime_green.png new file mode 100644 index 0000000000000000000000000000000000000000..a21cb6fa253a2142be9bdad248238299dce6e695 GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^2|(<@!3HEb(?2AGr~;43Vg?3oVGw3ym^DX&fq~i1 z)5S5QV$Rz+)_J!b1lrmiqe6M+oJ(NX&NN4Phv|b`z4{NYP5+>JWrs--17qeTsRD5g z!(g=zZP^CRNrf+-+NH@KR$Td0s&mngVw3+xu0?EXcCBM}?K8i`C}Wk?V1NhZ=gNnL znwH6IezGFZ!~9a6?RHUyhPV4>Uu{?_FnfW>zS{qPKK*<4uVTZ$ce_63>1Q2~5psEW zx_|#J@#X97|9=sRdr@7gG^K>%S{q!=tk;zc{umA757CW^gF~?Y* zzL@Q4_FeSScBuyG05^_0b=8H-_E|RV`0{(oCG+JLF?=tr`x)+BFt>laYl`#E_4#US z^)8yV;ydQc)Lt=IzWv`O|NWa{=kBflzObA3)w^Aa^ZVqko^^cn|Ic5O3*}M*OaJxH zkT2-?mBRcbPJn+~%B^6jY(87p9(Mo#>Q7(h~rm&XFcnS2%Pu(#j4I<=R1EbeZ((y;O5o?wIy5Q|G$2J-k$H; z`tsE}e}z7FZ&xe&&T>;Ie$t&EuHB#RoL~6BudegQ(e6(xj^8Zaa&Il$W#4ySE~~5m zTfmt7%O>)U?6I5hEH)mc^Zy7i2AYE5_cS8+Pd zEL*XBwVBru|99M6hFkZ|y>aAN9DmO}@fM%8>yNRi-8VbG`yY1_&*gmzOfw=rUyaF+ zc6a>UWOJqT@=>+Yz0nhwE57CCn(*tmRI)?YzOxPXujg|0Ui|Qj8JN8oJYD@<);T3K F0RY5^vzq__ literal 0 HcmV?d00001 diff --git a/assets/graphics/badguys/slime_green.png.import b/assets/graphics/badguys/slime_green.png.import new file mode 100644 index 0000000..7422213 --- /dev/null +++ b/assets/graphics/badguys/slime_green.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnfqqdcx7u4qt" +path="res://.godot/imported/slime_green.png-21e7f3de42454347166252dd70ddb7e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/badguys/slime_green.png" +dest_files=["res://.godot/imported/slime_green.png-21e7f3de42454347166252dd70ddb7e7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/assets/graphics/environment/background.png b/assets/graphics/environment/background.png new file mode 100644 index 0000000000000000000000000000000000000000..85e7e9c6356e2bd14cdd3f31836cf7ac978b1a4f GIT binary patch literal 7156 zcmc(E`#;m~|Nj&zDIMP=*7+qVIt$y7%GqKY5mO0Kj&t0M4zH3@3L|2x#MrQ$a+ujm zl(Xe9%V~3-^Dx^mv(H|?eZPOe`}27|Z_mTyaouj$b-Q2J{rR{*9@jJOrk(i?C3PhL z0Iq~*JpLO1Sd+OPPXYj;X90leI{<*;2LM1dFr&&IBx~4m&)WPNK>F|biAGG4 zdA0>wIHLdn-DCe=auM0aVKS#;h^6gy#VMtOswY*(s&x+n00*yFUNeP9^vz|q`RkY` zK2N&;eqZ)>z4gtyaN1pr|tg& z)xUiB|7r19O5Rj~r1Ya{{s|3PgZ|~h2vDCSIzS|*fq@C%T?+cVN_=JnRRxaZ9+!t? zrtdm$F(O`yFeYNL6JgXhtlJcpUrBFN<=bPoH!4dr85GZldjc2-z-ODZrlKST^ zLp&&%XiWr*vDAZ#kP5hsRjudSg4>tWmTKW~RVIibgvYzPl(BvL=|`l!hiq^uxV(cY zFVS-2&(64GO0qj$4a^5b!D+U6Be@m(%hEagYjzTAg0ctYASqAfi}?}CJVu!>{G zj(L@5Y(~MtH;sg*hmQH##!&F?m#fbx*ZqER_W_q58THHRR&my(0cnjF+Kr?J?Pgr= z6(a*awH9|>I9=u*SL+~ljzu=GW8N$*`U9ZkZ$Xr%u_J z2c~Vwn$2aOlsM}=X(|qrOO@=))v#GFsY*cDGs40rCqbf5LC_n})y*$6l9)%*SPf^1SD+LJXyrPZDU zTbEg?-r}h+0o<_I8Nu4uk@R2LMb&Y@DMK#&mgZM|g`0}+j0)cdQV074XurC%A?C%i z)$Ga=)bgp%OOJy|UpWsiF8h29U-lhiK2F-i)aiPZ(RYQ_MhO@KXwTMks^gOwGvz;=AyXmF|DWz<_2O&rc)6<1lkJC(zum9z3ix4*n z?G3g~MS9ae7Q4rxqQjbNwglk;O{#AD;0TaS4=uV&C7-|NM8dbe0TDDLd(7X6>0 zWiFD+tzT3!?1)9X(G7*bTzy|J#c(l@+;n4-WtGjSFk`=#FIL_BVabK;otLwLP(CUx z^j^R;=S5L|=p^VW)EUw5y~Mp+R(~?DHR=S6VPcUK7Ex^yZj=kM;3dyXpuIdMuAC4r z`Fe#~!7Vie6Cahp*jIVs%=iWmC!FGCX6%HQw)HGyaHjLgcO`vW!N*g=4}Q#1I^-YS zN-2^i@WN{2ePR~ggP8O^dsLR4YJa+3d-uT+_B*4vfHm`7wwQG9eA_OKfIkMdOD08_ z?J(WY{bRQF?|0C(dRaWz$K;0*=DbTAuE!fO&Cg#(ZBZRM@mdurL=1X?$Ua!0E!AF6n0=XDLOE*> zRi2o2Iy&kHRt%vWBxDLS-nbrjRxe*J7Cb?)@_SB`ewJ2m7#jUNs|?j#3$6scslpk3 zgyka-yK7z{2C;kfKekm^O%>7m=Y*wK^LP=8_QPXJCF;V}D7;{k1dsYjN_P>5c4gT+ zlS-;$&tKAn8K5<8(D_^|acawWlUbPF0}`rAFV}Q_3cUo-ahoRV1R9zG?9!kq=neKeh?%4f2k{12a2=N*s+H01-t19$_Se;AkqHa6}bU3?&x)X4CM zfq>o$H7*-0UbJ|wyyzKO&JrF*9eh;yDW?N0rb{=(s(Os;4|G`_=1a{RVzGEKPiF`V zAv9D8U)+AvopvuVh}JOL0f9jJe9L?T0s{QXT;3SdYigp?evH#Yq4U}3Nw1RLQjtj1 zfqYnijfyJmalv3PI$*F=)Y8&2dHvM!EIIgyo2TBSnEgaY99#D}lfezT$(alDp!vLq z`nm6n%Xr*1)g8SyMbsm2Z187hX1+=W{aNi?{-5@-g+|ke$jC@_`0>-~^)VZ(+(jgu z4SDEFVI>JKy_^?`iM^S@h72xBrhOh(X=@41BYZw8UlE6^!N?ZM8Ho!UwR_vwI&Can zWtgK)PzF}>Pa-$Nv(l7Sbc;CrnjA-Ka>XrN->88N$71Yc*jRHXa2Gb!~|-tNdC3gBpB#>#l+ z?iHJUeZ}UhZ-4NeU)SF$?_xyms(J~PTpa9f6F3}7`NPQbn;^Gc0;nW9=Iw~ByQ|TL z&Axps`9_X`7zgl??|C`3<0i`$Ed`6GA2T=A4Gev&--xD5i`D+3khT0#+vt(By5Zlz z1ald|po|a@uwjYhh$btP@6(SwS5T%UUNbPVxb$rWUa+K&-W+~uv!&QK9I}<#*p#*C zlj-F}9rRyL!2pFBlIFV3AI)J@P48<=|5I(d*1Z`V1lFe4>A(Xe9hKWh)I{IN&-W9S zMCTQ9`Ut!p=K{x=dHJ;4*tF*3qARcf``S@m6wnp-5B0dop!L4?P0M~pi1PyXq5=Z8 zYN+e!z{G_UH^IE3^5=oN+oeXrOaE9dT%}q`1~~?JYic zX4_Fw4r49+*H+hmQtKzt{jXf_pvpRFWdt=KTXfTOZSVF?ukZhAXmBFUcRCi zu>jEbnM?@rj}Ns^GGrQVyEuj=n?2|&sjsP)XCPW>^)Tue5|S^$a$F$>tz3m|>Cte?>J&b6*1apgW zYIH9nAV27htpJ?-e)6^NFdmA|#>rnt#^soye2&13F5lJO#v|mDYW~EOAO7CA`oxzd4?};MIE5lk)S( zq5P=V+yVbG&{>ZUGrz43-|;$gi@%XSFyYF9ao^53%TFP0>RC{a|GJV|=ALQS@zBPa zP@<2!wP#2=e_C;~M zd4Yocoqi@`51m9)V@OX7RS%Hg&Wn0VI4%2Iucs)7kEK*hSB`zw?KPMXH=%U!#OCbL zFQ%Uiu@7X4d((;hzE9g1Ztic+0C+(X4w2!JFvwF~=j_=tPfsrflBx*L1i% z6Vkg~8?X37a%Z#XT}u5VX(o650-*541>7vHKDw}KwfiBRQ!WdO^V9Q*rf_l?k~N>U zid=54!BnTGtPM>GnQ?-&>9eo)ec$&sd-H;;u(rDhp7z1b_QK$(wEgIvOFEW!1!$OZ zJCQuq&)lhTLAuFAS5Y6Vd zM2%w!2O_HvD=Y+8#&dcfU7iyN1lk6F!ed=^Q^O21e@Q{Lw|>lTKTsSaGwf}3N+CZN zGWQS&1esWYaYftdpevW|_d0qw?YuS5V)BxuX$HagAD`7;Ps2iof*|gtjo7MYy)JJM z!C~>L1c_l8LmGWx!=Ejz|CTu^Nb_Te|I#+ z9u6+De+8A*EB0DWk`i04ih_0RokeaT=jWHh7V}i*Rx?%KOXPjk-@mwX)8%zoqx?IePuIQeDiQWu>Jxh z{B$rW@MI-xI|JvsU%R%`+btt%oLQb;X zuZSemzWKh>Jx{vQ+uQ-uK5$C0SJYvrX##71RNrSc!On0uBZvl%0B;8;z^9b(?O)|O z=EPQ{#8g@oh}OVgfD`6%j58yRHGLnp9B0Pq{m9+v`m)-rQtQk2@Ac8T@sSd)&`5L| z_aI~H2>w>)Tu=DU)jQoK6k%p%KGU&2!x4QnrfjY&Qzf7z8oH;zl_q-hM5B=wjZ2;v zZ!lj(rQR(2Xh~j}|74LhP}_vSaumjlN@a3zu=*HMmi>Fj!eP&6S~{IAr#`P*rJt&s z838tmJL=n09mDpS^`E$G53j{*ij~AHNze<|nvi4&*1IuV>*;|Iu z@)0YoOogEP)TcI0`WX@oT5?r;rg!+mw!cNV3kOU@LuDl=RFs3nYnXYe=L+7=0 z_@9G~1Ii8_RW&6=q*JqKfCr(+p}z!6kDr2~iK-0po_szJQn0L1JK&F_0;~6Oi#95+ zP6Kl=PE75ykr`ODr$Hale2UPb2HSZwEh)7&j9}$uGKk`jeO|l3tu2IYBkLyi?!5TJ z+ooIb<8gL2#rULfuxlnNgR-AAUwV^w3FDmi0dG&h_m$GqWfw?%OyU8zT3M4mypQKD*ff z>_y=T4ESA+T4YeKs6dBFJ+SUV9h~>E;;x3ye<2Uc@5yne4chUXU)1h34ocv$7qD~fQh z*?aV7PT!&Q@u8>5EUVo@?Rb`_oj^c~I`br9EmAq!lS2$Km_$&_a=o@qHv)qL?=B~6 z*wQc5ca~5NI0ILPpCuCAB55l~&UE~>p8#@K@_-KGPlifif8g4(KqS{t_rQ8r*JYMyXo(H?xneVEclau?SFYsp8XDGd>5?@ zV^Qp0*ga{?N+n%<5udger%FpAVVg$^EA$UT!vuM8n5+ZGmQpn%>qu{ZHGBN*%%aS4 zPq_h2=h;vGleW~D?|Z%4#Z-W(8pzAK9uJbg6dncF<9335C_dl&o1@G0Dhv}kjEeCH z4nHDLP<&YAN(7k%^dni(kUP3P*&-(Y-6`{Wg+eRyytkoUriwULdYn)@ADMdK>4I3a z7a#m0@yK^qoRfIDEcOUz&tEE9jB@_llL04xUMEMay(QX@8FacRZ+@nXyk1Dkg zI9W9Fq7b-so;R;}Jg(92cG`Yn&g7i6C~Exx=tgRbB>LVPLIc;o=8$SKF?8i(eZpxL zAAQ<>e6&cLIVJln4BvG>hYBTE@@IE#3?M4mJkip(r^=>qV=)p@p4n8%j?7`Nr*Qk5 z>I{Ji?r;Al%{s+8jJL7Nk5z)>Tlv&NZHctN!+QkN#^X^zKl%MSIWy<5% zy(rSc+S*!j^N3Vby3N?wb`$yfU&aOo#4K4U0wth|P_ku757OPe;fbM2Pb-$;W9-BvpLr#V z{-9Y?&uL(+-qUfp&#US^&C!M$G(S}3!YIsN#V^&K?i6pkT

buh~amGURz8%xy`7@y23q;{FRme=xNc`*RUTbb7{u zvXx77uzJ@-L&;0;fG%5@eC8Y6A3KFq#3D*amhS_#=a#4Td0c^znxF9z?HX}>z)jKC zvAcQi?_Vt_{y@w-6}D^GFuwJD9x*^wrV~LlyyOJ+7Me0JdxGPgk*jYj)b?UT zqi?|imc=^43tdMP#|*?MYW74S=i?Xd({8wAWh9{-423m00pSd!0P5c4bkNE5TzK5F za9zxaWgG26H>jL3s6D~yc-K{_EoNHX)opP)_m;gy8ui&Bl#!+l@r;?~(85pXmATVW z&L522AHxq0Ri%qY=JHsV9NE|K4uhDfcoq4|dp!2-08D?UQ=wg1?Q~fV4g3?fjO`n*3c(48h4`YZHU=ucb0>lV>e$Q7+$mc4Ug4+9_DwJuD1vWjY3iZ=Om>=+R{&>x zAnYp5Da$InQ8kI^J;kDINr_hwsiVG9I zBUgDh|Kx@5bz;r-x(5#h2G~>5{V}pRK0MQnu}rB}tq}Fv6f_T7)jaMMN3XiHg3eV2 z&v8MA-48E5zCVFz>lJ}0%Z5>^*8&o<-5ZEVFeN+OFo?0y{rWEY;{r-A^pb?J)RG4s z_k`=cSWUv;do zIX(O40ZOyl>MMTfA5zHk()V;8ZR4!DXgU*MZTB{<#2q~2Acke;z2bfizbs-8Yvkw5 z5=E(+%_@4Cdp25^Daco_xlNP3()sR!@boyn$u?R*gf5sEe%z56joEC*1O2f2O%fdx zZQ$lso}o3eBR4E=`o!8!TP zpIY3puKgA9@VowCl@OSbufE%13$b{8WqFcN#bp z_GF~;j{n5oRSRQpWB1&7-GG{B`Xbx4ZUYq;xMIdbW$QWboNB^~eSrnq>Z;NmCLmbx zDHIwE%?&sSRXInb_!vVWP1l&qL!?YOCMH($200IoP&?+=ra4}AZ5EVpK0IWlM#x4o zPjn5kM_$OEg<3Jb)hA<(kDO3+=4>mjkA~hMPZ77TbYo&=yAg_N#^ZT?R^=fk%g@kE hVzK13bHv&q&*9fRp1d?)_FD~LdEM?>;nh1&{|7>zIb#3- literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/background.png.import b/assets/graphics/environment/background.png.import new file mode 100644 index 0000000..f4878fe --- /dev/null +++ b/assets/graphics/environment/background.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhsr2i5kesaxt" +path="res://.godot/imported/background.png-541e679da9b6694894cf282b639d4fa2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/background.png" +dest_files=["res://.godot/imported/background.png-541e679da9b6694894cf282b639d4fa2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/assets/graphics/environment/midground.png b/assets/graphics/environment/midground.png new file mode 100644 index 0000000000000000000000000000000000000000..458f0b3b8d11619b1795c30f694f1d0f5896d4e1 GIT binary patch literal 1859 zcmbVN`9Irv8vlGFNaGmlrbs6Zn$0be5Km zV7KZ{Syx=qX&uux#2sf{NhYD9s55N5Uc3LmKF{m9-tX7*{P=z{F1ljnkeWyUfSil7 z!zBP9jJW?dLQ0$$7d8~d1&X?awS(BbrxL^iJlGaz3&88gGJ64%;u(c^zJvqdt{woC z6aaR_5QPUov@rmDe*nz$08oo8pu1a&38}yfSO;)$=+w5-95Hev()n5x07mG;fMWk; z6C(zt2`)HC=|7QLY9=rfi)Z3ZsWcY{+sm=z%TqsP&6_Gn_RANk1j*D@v+Wwpwp}D1 zu)cBmh*c3BLt)5sW7k(}4SGK}o)usEKa6s)ClZY6mVo&)_5gt)B%**K2?ZcHiUQu= zQ9mqj1qy&EV8B4K*75%`|ASx%41f>{#=wdv!vl%Jn9!@v9{YEYKqIIE5cw3yqmd?Jc0Qo44ZBxTQHYc z>g)eiGontF{w~6jmTdu3TS)1?&r6~% zp53z^rv~qJNPgn@QUz6(Rr$#J!E(tY#ydUyAc<%&W9fLJXD-6n;$z=%AIrqx%A-QG z@Xfa^7PD?h*PF#_%9OA%Wbr{HtE{OcBoR5SyS#7@Zbds zTG$1ZwJh8cRgz?bI2pq9rkhi%3mXpp-;EFmHM47MpNISrCt@P5b0t27aU)%)K5jqQ zix^85WzQVFg$(-q+Kxc8M=`GsPLNbSGo{(}TAHHf6v5thr6s3EJ7A<Y$C3lIS*Ui8eNU(8h;7+-a_`>MvY1TS6=u)Ot#vMh{K) z)4h^4LTVowsop4h&)bMQo#M9fyiYX=r@nB|szIDC%@mL}SM_}(YrJ3gCfFEd3s{PI z!frM%Atwzcv;X+vC@1S=? z#gfa?9K`1)UXI))$Z>5lh1NAzrbEw0k-oVfj^hA1 z8h-lGZp@Lo2m)`MQ$Q*Xmo@yI;kiS6>?xAGD_ z4_Y53sEq}3=UVgXHni@ooHMKafv-(JDI+*oyJh)hbgd_vy;eVwes*+T?&s#1Ip^k? zJO@OF`$|zD4SV1!41g%+l_6ti7%eV-s}by1GVjdsVVao|3RG;=)6)P=vND{@`rBR0 z+L(l_0v_o6Yj(!`gi~9_v&K#vI+^FKZuTW&6e64EaSL&O93}r2XK!4+T&$g_oo2jp z!FtmzL8k)i!K(f7(+lZJ6YYE2gJsHJSUSW|v~}!?V;kO?w0WVMHoAb*YGk`kO%25r@xkunW$Xb$s*}Ee zcv$j-`RY+^s$^gJ^PTGUA-@-0vmsl2z~=PihbzU%{%k`IcYJ-a{LTs+r=qV|-FGK` zXO5+MZNu@ldx?zf0K_CAeH!gKa`qx?-8voO=3{pyjqO=1MK_wl#nYak@oLJe+n8VA z{zIzmfwsZ>9~Ajm#8<8Eu#Xp&;MAD%h~IFKNAs?Ue0}#oazC>3CHC4!*!zxjKdzmz zzeGESw=v7ibT#WTXyPSkEi&UhJW>#hwUx1ZUOnXHEwaM8PQ?^i&F#vCSMtL1wn#gy zLi*CzGnj84bN+n#AqQ76zBN@9M@)pYQM~pM;&PZeMNd6FW^WjJlOKBfSMJ}v0UyRy zp-AFx5Nn;J^CAbr%yy#_Si0Ubo*q4KE|*ruR0L6MGBfVa-3vF#C7N)IQxMk25^cBQ zI(lbXW+Z<6@I5S`IJK~^h6`-3qQ#>3i~{lU(z5<&5`aWQ`}i9NIb3D7=_b4=PBZX0oFhI17gRsI;<-MJhEr5-!D?h9AK=QqB!SCzavY$<4xL zgQa|w0S50sDJd4}f(HAs?P!$6Fy-zDltiP(Ya=izy5<my literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/midground.png.import b/assets/graphics/environment/midground.png.import new file mode 100644 index 0000000..aebf1dc --- /dev/null +++ b/assets/graphics/environment/midground.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmpvsw77pc6w1" +path="res://.godot/imported/midground.png-7df50856e08893ab1487d9520f321193.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/midground.png" +dest_files=["res://.godot/imported/midground.png-7df50856e08893ab1487d9520f321193.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/assets/graphics/environment/sky.png b/assets/graphics/environment/sky.png new file mode 100644 index 0000000000000000000000000000000000000000..0681aaeaa2ec9687b1d7f59c9f2f6c5895301914 GIT binary patch literal 670 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 Vcxe^PQqcea002ovPDHLkV1hQZvN-?% literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/terrain/airplane.png.import b/assets/graphics/environment/terrain/airplane.png.import new file mode 100644 index 0000000..7f4aecf --- /dev/null +++ b/assets/graphics/environment/terrain/airplane.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drigbyu4w5ppu" +path="res://.godot/imported/airplane.png-3695e985bea17c80e57a01d4f97e34b5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/terrain/airplane.png" +dest_files=["res://.godot/imported/airplane.png-3695e985bea17c80e57a01d4f97e34b5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/assets/graphics/environment/terrain/mushroom_32x64.png b/assets/graphics/environment/terrain/mushroom_32x64.png new file mode 100644 index 0000000000000000000000000000000000000000..f625fa3907775ddd21dc1a61651fb36fc6db52ba GIT binary patch literal 1075 zcmV-31kC%1P)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2k8nM7XlB+DiBU zM^4H|Bds*j%upS3$!H%D?xQkqe`v#8I8E>%1+F@e+Q^HUa+uF#!-i*}}fpDECpe-nhl5r#s- zIiFf*A~o=NWj^f;H8*mKg_K3RNdhl()<5tvU^UiiZsuG*xjm|dZ~UFuLUw6lmraTMsGOw65PABY@MOzbr}o)Xz`6j3h?Zxw!hmr6cf3O0CtaE0Jh9%?Pa||=tvI21Y!I|u%6$(@W(GK z@TA?J21NM0rE4F**R8KLcUov&oiJ5GUTxJ@_jg2L6EX>4Tx04R}tkv&MmKpe$iTcsiu5i5!~WT;Lph>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%&X$9QWhhy~o`#<}3IpJ#@RbZVYBOe_@ISZ-rhG*sd#;)tSZl<&{D ztZ?4qtd^^+c~AbrP)=J}<~q$0B(R7jh!7y7iW17O5TjKi#YBqs;~xHD$1jpgCRYiJ z91EyGh2;3b|KNAGW`1(QO$x<<&KKMM7zKj6K%-{c-^aGyH~|9Bz?IhWSL(pbC+W48 z7C8cXw}Ff6mL~53mpj1FlP(#OBL!&s^LgO?jJ_!g^xp#AYi@7NeVjf3Y3eF@0~{Oz zV+G1y_jq?#dvE`qY4-O6go1LeRQ&;x00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>riLDmieSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{004VQL_t(o!|ju?4Zt7_1PueQT$ad4EWvVFfK*5>Yzf;q zY5pn-!u{hw1ONa4006+xlv4-w(dJs;*Hb5K$3aK5xV}Y5s6Pw5~a#BWiLE#M?t^`K{fyY002ov JPDHLkV1hjJ7cT$+ literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/terrain/veg_32x32.png.import b/assets/graphics/environment/terrain/veg_32x32.png.import new file mode 100644 index 0000000..23e695c --- /dev/null +++ b/assets/graphics/environment/terrain/veg_32x32.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgiw80mpxbcgh" +path="res://.godot/imported/veg_32x32.png-4b0b47ef99f3aa28e8f24956e44a31a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/terrain/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-4b0b47ef99f3aa28e8f24956e44a31a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/assets/graphics/pickups/coin.png b/assets/graphics/pickups/coin.png new file mode 100644 index 0000000000000000000000000000000000000000..01ae33d70b398db7f1f7bcafe883a0a469805201 GIT binary patch literal 500 zcmV^r!6hi!Wct>kSmw76A*+mkqIDVjdDL!Rb}5E?Td;C@2y9S zHih2xK(yTWh+gXdrTqK8Uwx^_$MoI4V|67Hn26^Qp-rJ*c_3P5d_*tx|6%^yEznE& zeE6^KHvJ|vI7934d=L#ytZIR)9hxaN1Jm8sZ6_j{Yx1#nTWt!D2<;1?{VNX?M*l~R zzukKP+i+D+FAlB;7qkOXfaGA?&h>EX&+$Oxqgs>{d4C#zhd05hUS`kO@{&+Bb`?-H zKXwYn7Ms9B!`F}PQh%-o65r;4=uy!A4;g>*6iCRL!wF!o{9{X0YM%Mf@U=DvM2}Kx zY#A;!e+4Y{Qh#m^NPMe5dkcj0f5`ZIy8@JYG2kpkh}LrU76{dHI?&Z}2LKX(>v1MX z4k6>OaQ_N1p97frj@jdSpELonJ&y=&3jN9h(K6#Bda3^x^WUBW>`ee7IfzLSUk<|l qVg27u071wNc?u+CjZ6R`YyJS*Ofbr5QwY-l0000= totalCoinsAvailable: + print("You won the level!") + +func totalCoins(value): + totalCoinsAvailable = value + +func _on_slime_damage(body, slime): + print("GC knows slime damage") +func totalEnemies(value): + print("GC knows total enemies "+str(value)) diff --git a/scripts/player.gd b/scripts/player.gd index d23661f..8a1128c 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -1,4 +1,4 @@ -extends CharacterBody2D +class_name Player extends CharacterBody2D const SPEED = 300.0 diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 5adbfd3..69cc41b 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -2,6 +2,8 @@ class_name SceneManager extends Node2D var bullet = preload("res://scenes/bullet.tscn") var grenade = preload("res://scenes/grenade.tscn") +@onready var coins = $"../Coins" +@onready var enemies = $"../Enemies" @onready var game = $".." var bulletArray = [] @@ -9,8 +11,29 @@ var totalAllowedBullets = 7 # Called when the node enters the scene tree for the first time. func _ready(): - pass # Replace with function body. - + buildLevel() + +func buildLevel()->void: + # hook up coins + var totalCoins = 0 + if coins: + for obj in coins.get_children(): + if obj is Coin: + totalCoins +=1 + #hook up a listener at the game controller + obj.coinCollectedSignal.connect(game._on_coin_collected) + #tell GC how many coins total + game.totalCoins(totalCoins) + + var totalEnemies = 0 + if enemies: + for obj in enemies.get_children(): + if obj is Slime: + totalEnemies +=1 + #hook up a listener at game controller + obj.slimeDamageSignal.connect(game._on_slime_damage) + pass + game.totalEnemies(totalEnemies) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): diff --git a/scripts/slime.gd b/scripts/slime.gd new file mode 100644 index 0000000..cb05922 --- /dev/null +++ b/scripts/slime.gd @@ -0,0 +1,17 @@ +class_name Slime extends Area2D + +signal slimeDamageSignal(body, slime) +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +func _on_body_entered(body): + print("slime detects body") + if body is Player: + slimeDamageSignal.emit(body, self) diff --git a/scripts/slime.gd.uid b/scripts/slime.gd.uid new file mode 100644 index 0000000..5895d68 --- /dev/null +++ b/scripts/slime.gd.uid @@ -0,0 +1 @@ +uid://cx2xxgqkp68jc