From ce838b060218b93b21676b717d92562995939c0f Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Mon, 17 Oct 2022 21:15:19 +0200 Subject: [PATCH] first background, new grass asset, player-detached camera --- assets/blobby/blobby-spritesheet.png | Bin 0 -> 5760 bytes assets/blobby/blobby-spritesheet.png.import | 35 ++ assets/blobby/blobby-spritesheett.aseprite | Bin 16351 -> 16258 bytes assets/contraption/Coin.gd | 2 +- assets/environment/background/asteroids.png | Bin 0 -> 5007 bytes .../background/asteroids.png.import | 35 ++ assets/environment/background/space.aseprite | Bin 0 -> 11833 bytes assets/environment/background/space.png | Bin 0 -> 6176 bytes .../environment/background/space.png.import | 35 ++ .../decor/Beispiel-Busch.aseprite.import | 26 ++ .../decor/bent_straw_2.aseprite.import | 26 ++ project.godot | 5 +- src/Actors/Blobby/Blobby.gd | 30 +- src/Actors/Blobby/Blobby.tscn | 280 +++------------ src/Actors/Blobby/BlobbyCam.gd | 34 +- src/Actors/Blobby/BlobbyStateMachine.gd | 2 +- src/Actors/Enemies/Beings/DartingEnemy.gd | 2 +- src/Actors/Enemies/Beings/Enemy.gd | 2 +- src/Actors/Enemies/Beings/SimpleEnemy.gd | 2 +- src/Actors/Enemies/Beings/SmortEnemy.gd | 2 +- src/Autoload/{PlayerData.gd => GlobalData.gd} | 0 src/Autoload/GlobalData.tscn | 6 + src/Autoload/PlayerData.tscn | 6 - src/Contraptions/Platform/Spring.gd | 2 +- src/Contraptions/Platform/Spring.tscn | 4 +- src/Levels/01 Level.tscn | 285 ++++++++++++++- src/Levels/The Line Level.tscn | 339 ++++++++++++++++++ src/UserInterface/Buttons/RetryButton.gd | 2 +- src/UserInterface/Buttons/StatsLabel.gd | 2 +- src/UserInterface/Screens/HUD.gd | 4 +- src/UserInterface/Screens/PauseScreen.gd | 4 +- src/Utilities/GameplaySignalManager.gd | 26 +- 32 files changed, 907 insertions(+), 291 deletions(-) create mode 100644 assets/blobby/blobby-spritesheet.png create mode 100644 assets/blobby/blobby-spritesheet.png.import create mode 100644 assets/environment/background/asteroids.png create mode 100644 assets/environment/background/asteroids.png.import create mode 100644 assets/environment/background/space.aseprite create mode 100644 assets/environment/background/space.png create mode 100644 assets/environment/background/space.png.import create mode 100644 assets/environment/decor/Beispiel-Busch.aseprite.import create mode 100644 assets/environment/decor/bent_straw_2.aseprite.import rename src/Autoload/{PlayerData.gd => GlobalData.gd} (100%) create mode 100644 src/Autoload/GlobalData.tscn delete mode 100644 src/Autoload/PlayerData.tscn create mode 100644 src/Levels/The Line Level.tscn diff --git a/assets/blobby/blobby-spritesheet.png b/assets/blobby/blobby-spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..fc56c07900436e73c7fa26f97d9842697a7d2666 GIT binary patch literal 5760 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 T>I-Y|oqqvaTN}%>XFVGN_+hMh diff --git a/assets/contraption/Coin.gd b/assets/contraption/Coin.gd index 20ac5d0..c12cf73 100644 --- a/assets/contraption/Coin.gd +++ b/assets/contraption/Coin.gd @@ -5,6 +5,6 @@ onready var anim_player: AnimationPlayer = get_node("AnimationPlayer") export var scoreValue: = 100 func _on_body_entered(body: Node) -> void: - PlayerData.score += scoreValue + GlobalData.score += scoreValue anim_player.play("fade_out") queue_free() diff --git a/assets/environment/background/asteroids.png b/assets/environment/background/asteroids.png new file mode 100644 index 0000000000000000000000000000000000000000..be8b35f7260ae6e702dca8d8079cba14b7af0195 GIT binary patch literal 5007 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 literal 0 HcmV?d00001 diff --git a/assets/environment/background/asteroids.png.import b/assets/environment/background/asteroids.png.import new file mode 100644 index 0000000..6faf691 --- /dev/null +++ b/assets/environment/background/asteroids.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/asteroids.png-6d2b9726b496c4691448df35794a6849.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/background/asteroids.png" +dest_files=[ "res://.import/asteroids.png-6d2b9726b496c4691448df35794a6849.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=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +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=false +svg/scale=1.0 diff --git a/assets/environment/background/space.aseprite b/assets/environment/background/space.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..daee028fe8cb261093a22283260a95c571b1f5dc GIT binary patch literal 11833 zcmeI22UHW=yXYrW8)BskDk>tqg9NY~MMdQ(N^eS2dJ%<$grFiK0wRZwL`6iTN=I5a zARQtt0Rn_W3q2G`fDm$b^ndR2zIWDt-MiMiWxaRC#V?b|o;`cM`F`K*Ow^Kxpy4za zgyFaYI|#ub2(kx%|7$6QVC;?1F7WR^V=0q^p!G%J??)8|2M_>%ya&G@@~6W&b3u^s z!P0+hDf#IW2;%1AWI@o*9XkN!M8yGbNgV<#J9hwZ(Ov>@Bh3?#HC)0bSO6D70aw4A z1e|=P4wz>l3+SY!1SlmT3V2yZ9x&KO3$QEhG~g=j7r>qYcF)@B8tYJe*6 zBY;9;!hq6x>@nzjYXaU%(*unBstj1SC=K|PH4PXy*9>Tej|M#R&J0k;<1C=mX*s}s zd)P-2J)#dNb2Wy&J+uw*O!Xw750%ZuCHA>Abu$568&eMW;(7(3;C=x>4Hfno-L+tkBtOg#a3miMNb8LS+@Mzh&dyK( zTk2~7-=`!3VvqXtPeH@Bz(9ASm?`+hPMGb&gV|BBYf)) zJO0tXod>KhH3g&&MgbO4S^%Hav-`J7@&~+dhdnA;Z7o1SAz}8qD!aGyH`x8#hdc*- zR#yv{J4FT@n4SkLZS4hon#w*$Yp)2v3)gQ09+!m!p4Vru-*sfiDlx7M@JquW-~?p> zaDIY)jYiwpy;Y|*0fzWQ0va1y04gi6uekbg89;}N>@mdNc?yVokpb9US_(Kl%KkZOF>-$MFpHOC?_B`ASCQ60!j#27D7Sg0A&Nz z3{WsYwE(38)Co`|K!pJ10n`Q%T2K{0NdWZ#6a!ERKp6lv02BaVKTscd52Odi1Kok^ zKy+X^P#pLTgb_ylAECV>gaY02lz$ALKqre311Z z7ReBe&jFr-tmvU)eoNa@bs7d%Qn0JO`Gox z!M*%1h9dBPHvHcD|LURtJ)Qk~+WhlyDgX12Rrd3N`M^OC1+cJy$v+nM+{Q0?Zm=ne z(_laMSMC6nEn+whnrV%I)4~%uo?-skUew|J%sQjZtj-%}9SKuU_YTTsSRC!SH#7d) z2F)tB3H;wDB!71OKmHZdv_ZEC)J3u9RuB~NUVR(;^%Q@1=31=VmYkX@-62NTs4@(q zMDNDPcxHh-ri~ytCu{CByzPh;1QUlPS?v}Am~ccQv7)=%n> z_EMQ|6bwj~O>PFlp3x7(3;ktCxQ$s~{4R zY+1{0_x1{4;K`eQ4C|_9yJqS*Qg>6QdsBCoypWYG3}MFC%?lK4a#(4)$Q2Z8bq4Ex zm_A-Dosc^q$g1A3bk7{GM#dYyZ+?=^XnugQ?|Uf1H*0s7oR6B@{LlLHm!-=GY%Qp@*>MT4a#v{2NDeN?b4vDoJWiuDSML^&1ujsQ!;KT zxTdgqY+i;O_HuVzilJ3x>YP`VuD5oq2DHUsR6C_DJ^voEn|`KndjqwDu0Z7UA$jOT zUbg?el-johgBGfs?9gF|3jOYxx9xG%7PU$Xq=yJ=ceC9H@|&pTwBBlj;lv&;s5H?; z4=G8;lI}@}FB>t!K2>RP#xhdFOXhjwC9um58w2J%LNRmka(yY7Y`O64@G5jiy=YN| z5a*r}hmLts8!yHji`l)!XD-iO(Ar#m?L|WGlb|R~#}#Ul?+vGHc!Nzh{qX3xZXjK$ z`sRd-L#9~pQK*NAo!(@z|AtRl>b)SZ6+TqRVGAka>u&taN{$D>hnyFAU-YpCk^Hn z&6e^6Y5LZRNaE_6mJ@EEzWi9A_=PoAncl5JH41(okLJT=WpX^T|Br1bTPGCCWm%W( zf(~aKruHyt=03U#E8MNVwd*RUr&$H6EV8Sko-t(Elcjar(Ztj#H(=93JTR$Yihx~- zWh@lcGYKdTNr{P*x0$7WLnae2uKJPB>2upC;*&RLN>yic*OE3dH<`IPq@K~BWifmi zU+Gb@331n`mLxT}F~MILkH$miRc5qy6yN(Y)0xaLZwMVQPNH~7)6W@)RbjFh50nuE zSE>;3i-Vg1w>A1AI04j@O35mYgxADd<&CjxguzdMo?~k z1VIhWa~0$CMvoF~7aX&;tm`fB8qR1`t6K_uJ0FJ~oh4QV%XGhl4XGiSE0aWuWo%kSAiM59kL*`!PNnb^4dTL*<{v^` z9f{Pm_P`Z7DPOH#5`TR!S7~D33`#M{I1sm*qGH>+JD%bb+AxL>l?g1T`Ad}X2|<4C z{?UeGpUM3~&j+vyc*=FBnx$2^)IE26w#(CM|4r=TabLNmn0{C{KBJrP*asP?(#`VBZsu&JPXQVxWR;21bgDwy)Wo=y7b%Ik%;BRHQ1iS< zgj6mnY0kdZEknA7rB#&|Tx32_04Fp*$ga-tNK&J$n~(6Dl=PCClI}}WK>^#vasNv5KO$NKZ?qjV}1i=NS8L zf7+%;%QUhgv#9OE0s5D93}sddJnp#a$b(^OkvsRgJ%K#Mv^-tC_v(1TVXvL^Q__nO z@@D+du#Y4`dQ1nCB?xo5RU0v2ZEp^(UXG;rni>_G zk>nuDq?6!LQS04_&)69u_C8>-byT4)#Mn*22$u zF+?r!?ZCpUWq&{BP2}ugt#Wc35`ri`a}ciFvgIFBJ!FT?xMlw%81!N*3=`F)jLRy- zda6=xfX8L7IR@;L8b)+;vu`zEht@VAUl@ zxxBJFZB4!7Gs~H@6`Wj@4h*Bxcn}P$!!iVn4J2TE)Uqf%-w=%6fbjk6OYv)hpA|s| zvJ6?)g(|%xMlQKhUE9>T!Pt|ppxD!CaLSLt6Rrd}2q#X27!LV(2k?UJKbG@v$dcdJ zRIbr^AZIWQI7J>)16we<86@z6_11wwxJ-NfAI*QTS!nO*WvG;cq76a4Ph7zSo*bP? zLFqXnz>`7t;`zR>f2cS>N3udgQdSabtt*RrAnT@3ED2#8^7nw}O!^VLw&BZ<=_}iE zIoZXGl}Po9Y~g}%RraUY9lX|~&wmVpy z*EXMuOMr{Z4IZif0(<<^m!eaU3c>R@@b=?|d#xljDr5ZSB_HR9&vjs8WME zw_a~(o>Tk&`;>8~O8J|JC*o2OUGSzQ{E@-UkIgqP*4EZ4tuSUt``WUxjM+P=bFQY^ z$|@@qO1fDC9VaHuTvvBt+0fIGiY75AuGV+TDA`ECSrQBvbVM3T1vd z^VwT6!rPga%r?i(wt+@UT1pq?A~W~?2qh}iM~}vs{E|za!LQL3B%D-HL!bOd%$i`f z>L>31?i(GhAf%*kR6cvIcW-c zk5>3Z%$P|;zTLxl(QVibCaOqZ)?G#4U>Oy&=xMntSCJB|iehSx%`uc9XLYboaZP6e zeJz*VP72e4s6}I4lmq^oNs)~<@gMoVrXF*yk_kkjRB1=27`hX595b1vZ+qXb=!-St zLLeUgd6Pq4c&khdD6-rKIiM%7h@bQjgN_3|2IH<+r-gzpub2b1J*MNYGz*uhIc7U= zjZ-tFsnzjv**#);CU22EE6#m!MH@|(_fmG;c@);3RN$WA?WT{dePobaPHEDdu#6}p zH;EmNot%AdI?*5EH=q$y?KHo3O$BB1+p8>j1xBBOc72HPg6;iCL8H;L`Xg(N0o(GM zUsT?eH~N-FtyL#E4O9yI5nkwL6-(8G+JZ2F}<`|k)@|<(+BhWo?qlmEFF-#WN?FxE(oGk*lq@_UW4ubzusKq1R#UmP^`r3hdq? zbycs4#+BP&af$;$ybY9VsHL?}^7lOR&QGQG^+!2X`MmNWv`jyi%pDRr>VCfZ*S%)O zxl)D+It(t^$sTh@4{;~4%SkPb*4O6Go4|SVbzC?SP^h@vbF8>>=<4u;!eier3MbS6 zv;OI#9Dw$+Yu0b4xBafT>)iH34ZFO?>-Uz%iT@rmZ1u3jYX(*kIX@82irY}m&Nfw* zuM0X9t-4IU99{gex!{?~SRQYG}`V-x|lm2;F8%36(%-u~att9^m zL*&x*3`wC$=r;P14{!FRk+DzUF2#M23wj0n^`|IphXg^C>})ZZS2_7}q0`UicKG2M z_O0E2{h4*jcmCkYYWG9v*TKNoDXfD!kGnTDow=0-BNj7)KmWmca_7K9$46tQh29A? zOHI1luhc;=NEfdeWFfBiJRIOlO9=Jl|5Z-rkQz(x-eySu>B6!)j`)Pvh39a5S*O&v z2A}QRk`QLEdwh0FT3{*jad+ol%#x6RQt~ZsX#3#p%aY$OD>sw}3;1ck$Dlo6z&$ZP zUDi}l!(nUqW0{(AE{{VXntDW-Q%#S_3dROvLIp_=C zT1R@5M#*(P6|YRT&bJ^xv~($6lFywneUVvW9I;rK!Zj;h^Hc=k7-{}_r()Tif&Jky z*M-I%o!t>*LFH8GvyYQ}+tR38>B|8z3gfiu=)tarh0xEGq;ie3YgJLS5au3Qhq5zT z<@~ERd!p_*?c|y9D&MDUfi?_+Rh})ZhadJ}m?eg-bZ9IboEIqQZzu!<6<%;T`QUM2)eSLKDLRU*6zkPPO~rL&O7h z!hC-Uku0=+5M`hqv?0uN0-*RHCUR%Ms}-fBI7H*Oti#j^T4KIkJ^)8T#k9n<2}j+ z2x^tjU+(9jE)k3P6pSclsLb`UiD?It@&&yG@opDXmPZmnYshI1z1_pjswXp{wM<;2 zBu*s4r8K0~*f8u}Uvh_w-DzULhiq#XK?;1bjk=rq8w$}T%=jiSk1twSpF&A=KUJT; zL2Z~>b}d0ff3jO&`{t)mKh^VC@cfZ=1Hbgv^jfON^BQXQhal@jud9o)Gm%3xmL?PX ze73ylLcR8V=cMn{6jrC%&NNjBHwa|(WX@zEPggd*r29!vq;w(Q%v@EVt5qhuP^Z#p zS^7iFf#a{vCK`~PSKQ_f^zZd%<~)#*Ig5Wo??->w#BT-*zL|Ja$`N#9pVCLJB?|Nh;4YH-7K1a0^e5qo|p)nCtg+t}^Frs!4mCvjwA? zXcPB{hr=e3ZiQmb_;=Z&Z#|aJii*BpyH!@gGOHBu=Fy4!s?wy^U2xasYAk|ER>Z$8 z`4BQ`cLlC5U=%)UjzWu(dOPfu@CRw}6g!sIBe>wo%Z3RGHL#neN@MA@tc{5@nY&eB zj~>#KNWE_#a8i^%Jo{#5$Q!bBU!wDou<~!eibD(gy+TU=&Aj}_1bB5P`BQ(G>=0Bd zRv2CSJxE(1W0=QJLAnBovV)XxnjNHHWX|o+6o(yBcj(%ir?116d1>Iwh`OuRDJqyq zPDGA}zUMh})<8rm@W_mIPIhnZ^4vQs*(V*0t}C-08XFYL`j3%J=AQA+WueSgK{-(e zhq>^cv+n#0k%;3}I`~e*;gxmIR|NM@ruVRAt=*~DT-$H%Xj`-5s4EoxmezFi0!h$gO2_%;(vwgz z+>5!{v%16Y=N9&%f}i5$-Usv~zj}E8K?yHeC0_BR=x;hgU(U)&Ms$4UyXf?A#q90t zh~)9UYs+iSF117Z!mTWDkD_LO+s{lZ^Z&+Fu1*a0*%8oqMY8goV_L4NM!D+ltCkFr z08cAKcvhijfP@WGIda<6+&X7>LYPB`*jRib{f$vfWdXC@u=V0``YX9~>|>wTt@`MR zik;lXSuHB{)0T`LOZ$o(c^%%kmhls66sHWMqtq{Gaq$ch^0g-dLZ24QQ!_1&N>K=M z%y9g;H=opo{$iXLwh5ma_IwNbHnA1jWdC&eufK{s{PC*@;S*miw2M=TT3u*l|8O{Q zi(&ggv2So21qe!qqrq3ti)>u^8~?R20QwCq;v#2xUUyx$jk*uJXTD9gQyz2GAn05_ z_t(49c^Ar|lXBbwcLh(Sr{NCIaZDEOGks?Ty^7@sE8PC~PJajD?~M3cjsM?k#2PQS zjY+LN0{^#dE$DCjx5fYkQEHOnn!Z1b+y;d~#GmGnH(-(MIpm;)H%W2FsgC);uK9Z} zFJIRt?A^0~e_Ztc&&h z&icFum8BkE={dIJ^=yU;v=w0fzO;2{$_1DpviRo#l^gHIjdcg-CXX#Uyx3BCQ4%l9_Z5j#q5q^8Wq54yq_7aofVs z(0S(*e~w(A^dSQxx2s<>g55U%kPdmtb>DbhFv;V5;%mpvxvm=^21)4|r+6O}T{Q}7 zo_9}v&#^z;Iq5w|%yaktNi6@aTd}ciOJb0IDHg?5A!%apGEU zCVXIDh!;gy%+Oe#>CDd5ZB%INX7=fux}q5P#|P<4<*?<+&ctb~Fiz8o(YaC?>rOGKCXl11ec?;j&=67aFs(&N~GpOm*yX@cQgprMTX6w7@W2TZi`n zuSr4ey6_`}&q&!E9H`Zel7w73Do*(sN@@g}keRYI@!amQV=U_@n00oy)M?&QuZuLpdX KQkZIUlm8bMh{0q4 literal 0 HcmV?d00001 diff --git a/assets/environment/background/space.png b/assets/environment/background/space.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2ab45a058dff123047e0706dfe01d1154dd103 GIT binary patch literal 6176 zcmeHLXIE2ex80#jktP^wIEbLsfQTH?5Rf7k5DvYCE-eH^Kq*O3L`9l~qNt!KA_$>} zCJ8lCqza)|kwd705L)2wc+R+Y+&^%~{qTNy_SkKWz2;nVu4k`@*G!H1xW%~v0N^vZ zXkY;VEO-Ebcyn=pS11~n%)tXB*uq#JDD0G+2Y{o)CI)(zw_Yxdo%cU-oyfT=>`cB9 z?Q@M=2w{I@Oq}iBY|Eu+1J9mOn@il{Pu3LKQR{ui%l<0{S5lh zm;!`h%AE+)Is5Qyv{9}VkL}4CMs3T+WQaG6aIy$i?h6^YU7ks;lpfwX>w#f6+dW-y zIU z=z-e)k_|(6|L^yxEkD1*(93{-AIz_N2$}KvdIpycEMJ<75tUxHOm`F{gD;fQDIpNfBMWY&^A=(rp}h7 z#5mM8gHSgSwU|MyN!tb!$UCskzX4_%Hf~dfRnmh`UoZ^3J`=iKvtuQBkJQ@jlz|W- za|Cm+Yuc5IQ=OhGZDJ%)QPLlVfoEnzkV+}0#QC4md4L{)2Q+u$i?%uEOh2GKr{+9;iBnGegU z3bJlt2gDl;eg6Vf{F1San;&C(nTi`-*&35-Z@XzFuTxQ)iwGFq&wawhX->bC!!480 zPhiQ@;C^aTFlm(^$Y@zfA(C+ZV%(@G*a&Vk3AGZ?Qhu=Kj9uBxR+>d;oav;D@}HU6 z`sg5)N$2GGprd$qY^0Y_Q$vb1$!%A^#9kCl!&e~;SVTMeGTP3)|#gX*xgUdMi}8LDzs zASsa+t%ij6p&y(n3ysp*M&(Z$uR*R&<{pJ`rswEAJ+~PiNnad&!2c8>D_e0;Ns`zy z#U4F{!ifqBKFaTMi`u?zSCCOdf9HR|glS`TuDEhXxv=o_gP}CSbbZ5o$#KUR<93)j z-;B0%5{;&1PX;9IyR7}F=rLwUXI!|3s29=g$3hpvceYSXH|fEH%X5iMqn{OK<&qmZ zsF}^1NjM64jI!KzNFSp?bt_?#Ia5&w| z-W5XMd#+ZP;)J zZUu!KM~fx4v@kD|!19_N#$l7dnq}fA8`_8xTm^5eY_C(DGfybQSyBqSB7;Q_`Ux-%_H?7<@Gcxt+Yr>AV(p^7687yFDrCReMFXB(6wi zCCq$SneMGRHk(d*Fjiy}FBShFF@)8o5XEH5Eoj5;lj`fG%7H+2hbr6f7G;+b@j;df z)_^lpN!7l)bsy$cT3j1Y^x#h%_5JU4Jp0vTr}uFOHhbY=!Nd|eZP(W6oI@ufEp6Ypk$NmXJqE(Uve& zOnsi4-rv)wTUUq4*mO3Hjw2yKeD5xAA z0oCZ45sKZu!i@OoGeWRb4HaU^LC=N?+nz{$K2#fo{W}Dbz$eEF3A`iuH}s5fM0zSC zHirhS-<{a2)$wtk9jQF{+9fFH$@Qt?Hm6-g)LY5jFc4eYDy%EfVyp4%;QkEu6Q~_( z=4)kw8t)K@>zB?J^i&e7L`6c+w^d?kP|Z)_W1GDLb2bP9-H#qJO2@`x2y@O?nrxk_ z|5E){TYXajWUcMM*nrY8sjoi10`lkCjByRke|f0(XaC%6B^l&>b_x9Wa>Sm`Z4G5e zp#F<+mmKLl1%5QI5E{lg@}q5$Jhy>3V(ri(xH8fVBE6fmE7(&N82s~q37{S!cTps6 zSM`;SMMc7~(0u$tdzbt2{fyZe?q+Cn%EHmZzs_aozlnA&R|L+k≤_|4~}O@vvgp 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 N#L(2BP~YXwe*uFW stomp func _on_BlobbySkin_area_entered(area: Area2D) -> void: @@ -351,33 +355,17 @@ func execute_airstrafe( air_strafe_charges -= 1 return linear_velocity - func execute_movement() -> void: - print(get_floor_angle()) - if is_equal_approx(get_floor_angle(), 0): - print("slide") - velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false) - else: - print("snap") - velocity = move_and_slide_with_snap(velocity, Vector2.DOWN, FLOOR_NORMAL) - if is_on_floor(): - pass - #rotate_to_ground() - - - -func rotate_to_ground() -> void: - rotation = -get_floor_angle(FLOOR_NORMAL) + velocity = move_and_slide(velocity, FLOOR_NORMAL,true, 4, 0.785398,false) +#TODO Limit movement func die() -> void: z_index = 1 - $BlobbyCam.position = position - $BlobbyCam/AnimationPlayer.play("deathCam") + GlobalData.is_dead = true + GlobalData.deaths += 1 $BlobbySprite/AnimationTree.active = false - $BlobbySprite/BlobbymationPlayer.play("dying") - PlayerData.is_dead = true - PlayerData.deaths += 1 + $BlobbySprite/BlobbymationPlayer.play("dying3") func respawn() -> void: get_tree().reload_current_scene() diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 76c688d..60272b5 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=115 format=2] +[gd_scene load_steps=114 format=2] [ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1] -[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=2] [ext_resource path="res://src/Actors/Blobby/BlobbyStateMachine.gd" type="Script" id=3] [ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4] [ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5] @@ -10,7 +9,7 @@ extents = Vector2( 14.9127, 5.98593 ) [sub_resource type="StreamTexture" id=62] -load_path = "res://.import/blobby-spritesheett.png-31ad471e3ad73a5f4a303e582c829ff7.stex" +load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex" [sub_resource type="AnimationNodeAnimation" id=126] animation = "duckTurn" @@ -284,7 +283,7 @@ states/wallsliding/node = SubResource( 96 ) states/wallsliding/position = Vector2( 1795.54, 493.009 ) transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ) ] start_node = "idling" -graph_offset = Vector2( 1113.54, -70.991 ) +graph_offset = Vector2( 1041.54, -349.991 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=48] @@ -1094,6 +1093,36 @@ tracks/0/keys = { "values": [ 30 ] } +[sub_resource type="Animation" id=187] +resource_name = "dying2" +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 31 ] +} + +[sub_resource type="Animation" id=188] +resource_name = "dying3" +tracks/0/type = "value" +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 32 ] +} + [sub_resource type="Animation" id=6] length = 0.1 loop = true @@ -4408,207 +4437,6 @@ tracks/2/keys = { "values": [ Vector2( -1, 1 ) ] } -[sub_resource type="Animation" id=185] -length = 0.001 -tracks/0/type = "value" -tracks/0/path = NodePath(".:zoom") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0.75, 0.75 ) ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:limit_left") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ -10000000 ] -} -tracks/2/type = "value" -tracks/2/path = NodePath(".:limit_top") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ -10000000 ] -} -tracks/3/type = "value" -tracks/3/path = NodePath(".:limit_right") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 10000000 ] -} -tracks/4/type = "value" -tracks/4/path = NodePath(".:limit_bottom") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 10000000 ] -} -tracks/5/type = "value" -tracks/5/path = NodePath(".:rotating") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ true ] -} -tracks/6/type = "value" -tracks/6/path = NodePath(".:rotation_degrees") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ 0.0 ] -} -tracks/7/type = "value" -tracks/7/path = NodePath(".:position") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, 0 ) ] -} - -[sub_resource type="Animation" id=186] -resource_name = "deathCam" -length = 3.0 -tracks/0/type = "value" -tracks/0/path = NodePath(".:zoom") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 2.5 ), -"transitions": PoolRealArray( 1, 0.5 ), -"update": 0, -"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.002, 0.002 ) ] -} -tracks/1/type = "value" -tracks/1/path = NodePath(".:limit_left") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ -10000000 ] -} -tracks/2/type = "value" -tracks/2/path = NodePath(".:limit_top") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ -10000000 ] -} -tracks/3/type = "value" -tracks/3/path = NodePath(".:limit_right") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 10000000 ] -} -tracks/4/type = "value" -tracks/4/path = NodePath(".:limit_bottom") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 10000000 ] -} -tracks/5/type = "value" -tracks/5/path = NodePath(".:rotation_degrees") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0, 2.5 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ 0.0, 360.0 ] -} -tracks/6/type = "value" -tracks/6/path = NodePath(".:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -4 ) ] -} -tracks/7/type = "method" -tracks/7/path = NodePath("..") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/keys = { -"times": PoolRealArray( 3 ), -"transitions": PoolRealArray( 1 ), -"values": [ { -"args": [ ], -"method": "respawn" -} ] -} - [node name="Blobby" type="KinematicBody2D" groups=["player"]] collision_mask = 248 collision/safe_margin = 0.001 @@ -4664,6 +4492,8 @@ anims/duckTurn = SubResource( 68 ) anims/ducking = SubResource( 69 ) anims/duckingLeft = SubResource( 107 ) anims/dying = SubResource( 184 ) +anims/dying2 = SubResource( 187 ) +anims/dying3 = SubResource( 188 ) anims/falling = SubResource( 6 ) anims/fallingLeft = SubResource( 106 ) anims/idleTurn = SubResource( 70 ) @@ -4711,27 +4541,11 @@ frame = 8 position = Vector2( 0.0392303, -10.002 ) shape = SubResource( 1 ) -[node name="BlobbyCam" type="Camera2D" parent="."] -rotating = true -current = true -zoom = Vector2( 0.75, 0.75 ) -drag_margin_h_enabled = true -drag_margin_v_enabled = true -drag_margin_left = 0.05 -drag_margin_top = 0.05 -drag_margin_right = 0.05 -drag_margin_bottom = 0.05 -editor_draw_screen = false -script = ExtResource( 2 ) - -[node name="ShiftTween" type="Tween" parent="BlobbyCam"] - -[node name="AnimationPlayer" type="AnimationPlayer" parent="BlobbyCam"] -anims/RESET = SubResource( 185 ) -anims/deathCam = SubResource( 186 ) - [node name="BlobbyStateMachine" type="Node" parent="."] script = ExtResource( 3 ) +coyote_hanging = null +init_boost = null +init_boost_type = null [node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"] wait_time = 0.067 @@ -4747,7 +4561,8 @@ margin_left = -37.0 margin_top = -44.0 margin_right = 36.0 margin_bottom = -30.0 -custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) custom_fonts/font = ExtResource( 5 ) text = "Ihre Werbung" align = 1 @@ -4786,6 +4601,21 @@ exclude_parent = false cast_to = Vector2( 1.5, 0 ) collision_mask = 56 +[node name="GroundRaycasts" type="Node2D" parent="."] +position = Vector2( 0, -1 ) + +[node name="Groundcast2" type="RayCast2D" parent="GroundRaycasts"] +position = Vector2( 14, 0 ) +enabled = true +cast_to = Vector2( 0, 10 ) +collision_mask = 56 + +[node name="Groundcast3" type="RayCast2D" parent="GroundRaycasts"] +position = Vector2( -12, 0 ) +enabled = true +cast_to = Vector2( 0, 10 ) +collision_mask = 56 + [connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"] [connection signal="body_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_body_entered"] [connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"] diff --git a/src/Actors/Blobby/BlobbyCam.gd b/src/Actors/Blobby/BlobbyCam.gd index 10ebe11..54d5268 100644 --- a/src/Actors/Blobby/BlobbyCam.gd +++ b/src/Actors/Blobby/BlobbyCam.gd @@ -5,33 +5,41 @@ var vertical_facing = 0 var camera_horizontal_shift = 70 var camera_vertical_shift = 90 -onready var prev_camera_pos = get_camera_position() onready var tween = $ShiftTween onready var original_x_zoom = zoom.x onready var original_y_zoom = zoom.y +onready var blobby = get_node("%Blobby") +onready var prev_camera_pos # Gets the camera limits from the tilemap of the level # Requires "TileMap" to be a sibling of blobby func _ready(): _set_boundaries() + self.position = blobby.global_position + prev_camera_pos = get_camera_screen_center() func _physics_process(_delta: float) -> void: - if(!PlayerData.is_dead): + if(!GlobalData.is_dead): _adapt_to_movement() - prev_camera_pos = get_camera_position() + #TODO Do this via a event + else: + self.position = blobby.global_position + _death_cam() + prev_camera_pos = get_camera_screen_center() func _set_boundaries(): # This is ok, because it only happens on initialization # But it is also quite fickle - var tilemap = get_node("../../TileMap") + var tilemap = get_node("../TileMap") # TODO This goes wrong when overwriting old tiles with new sprites # New pngs -> completely new tiles and rebuild map var rect = tilemap.get_used_rect() var cell_size = tilemap.cell_size - limit_right = rect.end.x * cell_size.x - limit_left = rect.position.x * cell_size.x - limit_top = rect.position.y * cell_size.y - limit_bottom = rect.end.y * cell_size.y + limit_right = rect.end.x * cell_size.x - camera_horizontal_shift + limit_left = rect.position.x * cell_size.x + camera_horizontal_shift + # TODO When vertical scrolling is fixed + limit_top = rect.position.y * cell_size.y #+ camera_vertical_shift + limit_bottom = rect.end.y * cell_size.y #- camera_vertical_shift var screen_size = get_viewport_rect() var h_pixels = limit_right - limit_left var v_pixels = limit_bottom - limit_top @@ -49,7 +57,7 @@ func _adapt_to_movement(): var target_offset: Vector2 = Vector2(0,0) var tween_v = false var tween_h = false - var new_h_facing = sign(get_camera_position().x - prev_camera_pos.x) + var new_h_facing = sign(get_camera_screen_center().x - prev_camera_pos.x) if new_h_facing != 0 && horizontal_facing != new_h_facing: horizontal_facing = new_h_facing target_offset.x = camera_horizontal_shift * horizontal_facing @@ -66,14 +74,16 @@ func _adapt_to_movement(): #TODO Motion may be too complex tween.interpolate_property( self, - "transform:origin", - self.transform.origin, + "offset", + offset, target_offset, 1.2, Tween.TRANS_SINE, Tween.EASE_OUT ) tween.start() + self.position = blobby.global_position func _death_cam(): - pass \ No newline at end of file + $AnimationPlayer.play("deathCam") + #TODO Animation not always centered diff --git a/src/Actors/Blobby/BlobbyStateMachine.gd b/src/Actors/Blobby/BlobbyStateMachine.gd index 48928cd..3701966 100644 --- a/src/Actors/Blobby/BlobbyStateMachine.gd +++ b/src/Actors/Blobby/BlobbyStateMachine.gd @@ -25,7 +25,7 @@ func _ready(): add_state("fall") add_state("wallslide") state = states.idle - PlayerData.is_dead = false + GlobalData.is_dead = false set_state(states.idle) diff --git a/src/Actors/Enemies/Beings/DartingEnemy.gd b/src/Actors/Enemies/Beings/DartingEnemy.gd index 754f78e..eb6319d 100644 --- a/src/Actors/Enemies/Beings/DartingEnemy.gd +++ b/src/Actors/Enemies/Beings/DartingEnemy.gd @@ -30,7 +30,7 @@ func player_on_floor_direction(): func die() -> void: queue_free() - PlayerData.score += score + GlobalData.score += score func _on_EnemySkin_area_entered(area:Area2D) -> void: if area.is_in_group("harmful"): diff --git a/src/Actors/Enemies/Beings/Enemy.gd b/src/Actors/Enemies/Beings/Enemy.gd index 35d2aae..ccfe834 100644 --- a/src/Actors/Enemies/Beings/Enemy.gd +++ b/src/Actors/Enemies/Beings/Enemy.gd @@ -25,7 +25,7 @@ func _physics_process(delta: float) -> void: func die() -> void: queue_free() - PlayerData.score += score + GlobalData.score += score func _on_EnemySkin_area_entered(area:Area2D) -> void: diff --git a/src/Actors/Enemies/Beings/SimpleEnemy.gd b/src/Actors/Enemies/Beings/SimpleEnemy.gd index d75dae2..17539f0 100644 --- a/src/Actors/Enemies/Beings/SimpleEnemy.gd +++ b/src/Actors/Enemies/Beings/SimpleEnemy.gd @@ -30,7 +30,7 @@ func is_at_ledge(): func die() -> void: queue_free() - PlayerData.score += score + GlobalData.score += score func _on_EnemySkin_area_entered(area:Area2D) -> void: diff --git a/src/Actors/Enemies/Beings/SmortEnemy.gd b/src/Actors/Enemies/Beings/SmortEnemy.gd index 6343ee4..e00ba11 100644 --- a/src/Actors/Enemies/Beings/SmortEnemy.gd +++ b/src/Actors/Enemies/Beings/SmortEnemy.gd @@ -31,7 +31,7 @@ func is_safe_drop(): func die() -> void: queue_free() - PlayerData.score += score + GlobalData.score += score func _on_EnemySkin_area_entered(area:Area2D) -> void: if area.is_in_group("harmful"): diff --git a/src/Autoload/PlayerData.gd b/src/Autoload/GlobalData.gd similarity index 100% rename from src/Autoload/PlayerData.gd rename to src/Autoload/GlobalData.gd diff --git a/src/Autoload/GlobalData.tscn b/src/Autoload/GlobalData.tscn new file mode 100644 index 0000000..4d2edb7 --- /dev/null +++ b/src/Autoload/GlobalData.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/Autoload/GlobalData.gd" type="Script" id=1] + +[node name="GlobalData" type="Node"] +script = ExtResource( 1 ) diff --git a/src/Autoload/PlayerData.tscn b/src/Autoload/PlayerData.tscn deleted file mode 100644 index 39f01db..0000000 --- a/src/Autoload/PlayerData.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://src/Autoload/PlayerData.gd" type="Script" id=1] - -[node name="PlayerData" type="Node"] -script = ExtResource( 1 ) diff --git a/src/Contraptions/Platform/Spring.gd b/src/Contraptions/Platform/Spring.gd index 9a2e041..970f93e 100644 --- a/src/Contraptions/Platform/Spring.gd +++ b/src/Contraptions/Platform/Spring.gd @@ -6,7 +6,7 @@ const PhysicsConst = preload("res://src/Utilities/Physic/PhysicsConst.gd") var mass = 1 var coupled_mass = mass -var spring_k = -1000 +var spring_k = -400 var start_y = 0 var y_velocity = 0 var friction = 0.91 diff --git a/src/Contraptions/Platform/Spring.tscn b/src/Contraptions/Platform/Spring.tscn index dc495a7..4656ec1 100644 --- a/src/Contraptions/Platform/Spring.tscn +++ b/src/Contraptions/Platform/Spring.tscn @@ -7,7 +7,7 @@ extents = Vector2( 11.4863, 2.10568 ) [sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 11.918, 1.57982 ) +extents = Vector2( 11.925, 0.0109166 ) [sub_resource type="RectangleShape2D" id=3] extents = Vector2( 11.9158, 2.06284 ) @@ -32,7 +32,7 @@ collision_layer = 32 collision_mask = 41 [node name="CollisionShape2D" type="CollisionShape2D" parent="SpringBody"] -position = Vector2( 0.00390673, 0 ) +position = Vector2( 0.0109062, -1.5689 ) shape = SubResource( 1 ) one_way_collision = true diff --git a/src/Levels/01 Level.tscn b/src/Levels/01 Level.tscn index 2bb76e6..d31719f 100644 --- a/src/Levels/01 Level.tscn +++ b/src/Levels/01 Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1] [ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=2] @@ -11,7 +11,234 @@ [ext_resource path="res://src/Levels/Grass Test Level.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10] [ext_resource path="res://src/Contraptions/Platform/DropThroughPlatform.tscn" type="PackedScene" id=11] -[ext_resource path="res://src/Contraptions/Platform/Spring.tscn" type="PackedScene" id=12] +[ext_resource path="res://assets/environment/background/asteroids.png" type="Texture" id=12] +[ext_resource path="res://assets/environment/background/space.png" type="Texture" id=13] +[ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=14] + +[sub_resource type="Animation" id=5] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotating") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath(".:rotation_degrees") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:position") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = false +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} + +[sub_resource type="Animation" id=6] +resource_name = "deathCam" +length = 2.3 +tracks/0/type = "value" +tracks/0/path = NodePath(".:zoom") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.6 ), +"transitions": PoolRealArray( 1, 3.24901 ), +"update": 0, +"values": [ Vector2( 0.75, 0.75 ), Vector2( 0.002, 0.002 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:limit_left") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.8 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:limit_top") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.8 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ -10000000 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:limit_right") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.8 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath(".:limit_bottom") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.8 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10000000 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0.6, 1.6 ), +"transitions": PoolRealArray( 1, 0.120742 ), +"update": 0, +"values": [ 0.0, 360.0 ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("../Blobby") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 2.3 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "respawn" +} ] +} +tracks/7/type = "value" +tracks/7/path = NodePath(".:offset") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -6 ) ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:drag_margin_h_enabled") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/9/type = "value" +tracks/9/path = NodePath(".:drag_margin_v_enabled") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} [sub_resource type="AnimationNodeStateMachinePlayback" id=4] @@ -26,7 +253,45 @@ __meta__ = { [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 +[node name="Background" type="CanvasLayer" parent="."] + +[node name="BlobbyCam" type="Camera2D" parent="."] +rotating = true +current = true +zoom = Vector2( 0.75, 0.75 ) +process_mode = 0 +drag_margin_h_enabled = true +drag_margin_v_enabled = true +drag_margin_left = 0.05 +drag_margin_top = 0.05 +drag_margin_right = 0.05 +drag_margin_bottom = 0.05 +editor_draw_screen = false +script = ExtResource( 14 ) + +[node name="ShiftTween" type="Tween" parent="BlobbyCam"] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="BlobbyCam"] +anims/RESET = SubResource( 5 ) +anims/deathCam = SubResource( 6 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="BlobbyCam"] +scroll_base_offset = Vector2( 320, 180 ) + +[node name="ParallaxLayer" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +motion_scale = Vector2( 0, 0 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 13 ) + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="BlobbyCam/ParallaxBackground"] +motion_scale = Vector2( 0.001, 0.001 ) + +[node name="Sprite" type="Sprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer2"] +texture = ExtResource( 12 ) + [node name="Blobby" parent="." instance=ExtResource( 2 )] +unique_name_in_owner = true position = Vector2( -60, -3.8147e-06 ) scale = Vector2( 0.878906, 0.936025 ) @@ -38,26 +303,32 @@ parameters/playback = SubResource( 4 ) [node name="Coin" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 336, -60 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="Coin2" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 324, -11 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="Coin3" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 1188, -84 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="Coin4" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 1236, -108 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="Coin5" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 1140, -108 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="Coin6" parent="Collectibles" instance=ExtResource( 6 )] position = Vector2( 696, -48 ) scale = Vector2( 0.133, 0.133 ) +scoreValue = null [node name="TileMap" type="TileMap" parent="."] tile_set = ExtResource( 1 ) @@ -67,7 +338,7 @@ cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) collision_layer = 8 collision_mask = 8 format = 1 -tile_data = PoolIntArray( -786438, -1610612735, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612736, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612736, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612736, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612736, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612736, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612736, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 1610612736, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612736, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612736, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612736, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612736, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -655366, -1610612734, 0, -720835, -1073741824, 0, -589830, -1610612736, 0, -655299, -1073741822, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -458758, -1610612734, 0, -524227, -1073741824, 0, -393222, -1610612736, 0, -458691, -1073741822, 0, -327686, -1610612734, 0, -393155, -1073741822, 0, -262150, -1610612734, 0, -327619, -1073741824, 0, -196614, -1610612736, 0, -262088, 0, 0, -262087, 2, 0, -262086, 2, 0, -262085, 0, 0, -262084, 2, 0, -262083, 1610612739, 0, -131078, -1610612734, 0, -196568, 0, 0, -196567, 2, 0, -196566, 2, 0, -196565, 0, 0, -196564, 2, 0, -196563, 2, 0, -196562, 0, 0, -196559, 2, 0, -196556, 2, 0, -196555, 0, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 1610612739, 0, -196548, 1610612739, 0, -196547, 1610612739, 0, -65542, -1610612734, 0, -131066, 6, 0, -131064, 0, 0, -131063, 2, 0, -131059, -1073741822, 0, -131058, -1610612734, 0, -131054, 2, 0, -131053, 2, 0, -131052, 0, 0, -131051, 2, 0, -131032, 1610612739, 0, -131031, 1610612739, 0, -131030, 1610612739, 0, -131029, 1610612739, 0, -131028, 1610612739, 0, -131027, 1610612739, 0, -131026, 1610612739, 0, -131020, 1610612739, 0, -131019, 1610612739, 0, -131018, 1610612739, 0, -131017, 1610612739, 0, -131016, 1, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 1, 0, -131012, 1610612739, 0, -131011, 1610612739, 0, -6, -1610612736, 0, -65533, 5, 0, -65532, 2, 0, -65531, 0, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, 2, 0, -65519, 0, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, 1610612739, 0, -65514, 2, 0, -65501, 2, 0, -65500, 2, 0, -65499, 0, 0, -65498, 2, 0, -65497, 2, 0, -65496, 1, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 1, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 1, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 1, 0, -65482, 1610612739, 0, -65481, 1610612739, 0, -65480, 1610612739, 0, -65479, 1610612739, 0, -65478, 1610612739, 0, -65477, 1610612739, 0, -65476, 1610612739, 0, -65475, 1610612739, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 0, 0, 0, 2, 0, 1, 2, 0, 2, 0, 0, 3, 2, 0, 4, 1610612739, 0, 5, 1610612739, 0, 6, 1610612739, 0, 7, 1610612739, 0, 8, 1610612739, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 0, 0, 12, 2, 0, 13, 2, 0, 14, 0, 0, 15, 2, 0, 16, 2, 0, 17, 1610612739, 0, 18, 1610612739, 0, 19, 1610612739, 0, 20, 1610612739, 0, 21, 1610612739, 0, 22, 1610612739, 0, 23, 0, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 2, 0, 30, 2, 0, 31, 0, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 1610612739, 0, 36, 1610612739, 0, 37, 1610612739, 0, 38, 1610612739, 0, 39, 1610612739, 0, 40, 1610612739, 0, 41, 1610612739, 0, 42, 1610612739, 0, 43, 1610612739, 0, 44, 1610612739, 0, 45, 1610612739, 0, 46, 1610612739, 0, 47, 1610612739, 0, 48, 1610612739, 0, 49, 1610612739, 0, 50, 1610612739, 0, 51, 1610612739, 0, 52, 1610612739, 0, 53, 1610612739, 0, 54, 1610612739, 0, 55, 1610612739, 0, 56, 1, 0, 57, 1610612739, 0, 58, 1610612739, 0, 59, 1, 0, 60, 1610612739, 0, 61, 1610612739, 0 ) +tile_data = PoolIntArray( -851975, 3, 0, -851974, 3, 0, -851973, 3, 0, -851972, 3, 0, -851971, 3, 0, -851970, 3, 0, -851969, 3, 0, -917504, 3, 0, -917503, 3, 0, -917502, 3, 0, -917501, 3, 0, -917500, 3, 0, -917499, 3, 0, -917498, 3, 0, -917497, 3, 0, -917496, 3, 0, -917495, 3, 0, -917494, 3, 0, -917493, 3, 0, -917492, 3, 0, -917491, 3, 0, -917490, 3, 0, -917489, 3, 0, -917488, 3, 0, -917487, 3, 0, -917486, 3, 0, -917485, 3, 0, -917484, 3, 0, -917483, 3, 0, -917482, 3, 0, -917481, 3, 0, -917480, 3, 0, -917479, 3, 0, -917478, 3, 0, -917477, 3, 0, -917476, 3, 0, -917475, 3, 0, -917474, 3, 0, -917473, 3, 0, -917472, 3, 0, -917471, 3, 0, -917470, 3, 0, -917469, 3, 0, -917468, 3, 0, -917467, 3, 0, -917466, 3, 0, -917465, 3, 0, -917464, 3, 0, -917463, 3, 0, -917462, 3, 0, -917461, 3, 0, -917460, 3, 0, -917459, 3, 0, -917458, 3, 0, -917457, 3, 0, -917456, 3, 0, -917455, 3, 0, -917454, 3, 0, -917453, 3, 0, -917452, 3, 0, -917451, 3, 0, -917450, 3, 0, -917449, 3, 0, -917448, 3, 0, -917447, 3, 0, -917446, 3, 0, -917445, 3, 0, -917444, 3, 0, -917443, 3, 0, -917442, 3, 0, -786439, 3, 0, -786438, -1610612735, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612736, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612736, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612736, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612736, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612736, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612736, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 3, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612736, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612736, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612736, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612736, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -851906, 3, 0, -720903, 3, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -786370, 3, 0, -655367, 3, 0, -655366, -1610612734, 0, -720835, -1073741824, 0, -720834, 3, 0, -589831, 3, 0, -589830, -1610612736, 0, -655299, -1073741822, 0, -655298, 3, 0, -524295, 3, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -589762, 3, 0, -458759, 3, 0, -458758, -1610612734, 0, -524227, -1073741824, 0, -524226, 3, 0, -393223, 3, 0, -393222, -1610612736, 0, -458691, -1073741822, 0, -458690, 3, 0, -327687, 3, 0, -327686, -1610612734, 0, -393155, -1073741822, 0, -393154, 3, 0, -262151, 3, 0, -262150, -1610612734, 0, -327619, -1073741824, 0, -327618, 3, 0, -196615, 3, 0, -196614, -1610612736, 0, -262088, 0, 0, -262087, 2, 0, -262086, 2, 0, -262085, 0, 0, -262084, 2, 0, -262083, 1610612739, 0, -262082, 3, 0, -131079, 3, 0, -131078, -1610612734, 0, -196568, 0, 0, -196567, 2, 0, -196566, 2, 0, -196565, 0, 0, -196564, 2, 0, -196563, 2, 0, -196562, 0, 0, -196559, 2, 0, -196556, 2, 0, -196555, 0, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 1610612739, 0, -196548, 1610612739, 0, -196547, 3, 0, -196546, 3, 0, -65543, 3, 0, -65542, -1610612734, 0, -131066, 6, 0, -131064, 0, 0, -131063, 2, 0, -131059, -1073741822, 0, -131058, -1610612734, 0, -131054, 2, 0, -131053, 2, 0, -131052, 0, 0, -131051, 2, 0, -131032, 1610612739, 0, -131031, 1610612739, 0, -131030, 1610612739, 0, -131029, 1610612739, 0, -131028, 1610612739, 0, -131027, 1610612739, 0, -131026, 1610612739, 0, -131020, 1610612739, 0, -131019, 1610612739, 0, -131018, 1610612739, 0, -131017, 1610612739, 0, -131016, 1, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 1, 0, -131012, 1610612739, 0, -131011, 3, 0, -131010, 3, 0, -7, 3, 0, -6, -1610612736, 0, -65533, 5, 0, -65532, 2, 0, -65531, 0, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, 2, 0, -65519, 0, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, 1610612739, 0, -65514, 2, 0, -65501, 2, 0, -65500, 2, 0, -65499, 0, 0, -65498, 2, 0, -65497, 2, 0, -65496, 1, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 1, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 1, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 1, 0, -65482, 1610612739, 0, -65481, 1610612739, 0, -65480, 1610612739, 0, -65479, 1610612739, 0, -65478, 1610612739, 0, -65477, 1610612739, 0, -65476, 1610612739, 0, -65475, 3, 0, -65474, 3, 0, 65529, 3, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 0, 0, 0, 2, 0, 1, 2, 0, 2, 0, 0, 3, 2, 0, 4, 1610612739, 0, 5, 1610612739, 0, 6, 1610612739, 0, 7, 1610612739, 0, 8, 1610612739, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 0, 0, 12, 2, 0, 13, 2, 0, 14, 0, 0, 15, 2, 0, 16, 2, 0, 17, 1610612739, 0, 18, 1610612739, 0, 19, 1610612739, 0, 20, 1610612739, 0, 21, 1610612739, 0, 22, 1610612739, 0, 23, 0, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 2, 0, 30, 2, 0, 31, 0, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 1610612739, 0, 36, 1610612739, 0, 37, 1610612739, 0, 38, 1610612739, 0, 39, 1610612739, 0, 40, 1610612739, 0, 41, 1610612739, 0, 42, 1610612739, 0, 43, 1610612739, 0, 44, 1610612739, 0, 45, 1610612739, 0, 46, 1610612739, 0, 47, 1610612739, 0, 48, 1610612739, 0, 49, 1610612739, 0, 50, 1610612739, 0, 51, 1610612739, 0, 52, 1610612739, 0, 53, 1610612739, 0, 54, 1610612739, 0, 55, 1610612739, 0, 56, 1, 0, 57, 1610612739, 0, 58, 1610612739, 0, 59, 1, 0, 60, 1610612739, 0, 61, 1610612739, 0, 62, 3, 0, 131065, 3, 0, 131066, 3, 0, 131067, 3, 0, 131068, 3, 0, 131069, 3, 0, 131070, 3, 0, 131071, 3, 0, 65536, 3, 0, 65537, 3, 0, 65538, 3, 0, 65539, 3, 0, 65540, 3, 0, 65541, 3, 0, 65542, 3, 0, 65543, 3, 0, 65544, 3, 0, 65545, 3, 0, 65546, 3, 0, 65547, 3, 0, 65548, 3, 0, 65549, 3, 0, 65550, 3, 0, 65551, 3, 0, 65552, 3, 0, 65553, 3, 0, 65554, 3, 0, 65555, 3, 0, 65556, 3, 0, 65557, 3, 0, 65558, 3, 0, 65559, 3, 0, 65560, 3, 0, 65561, 3, 0, 65562, 3, 0, 65563, 3, 0, 65564, 3, 0, 65565, 3, 0, 65566, 3, 0, 65567, 3, 0, 65568, 3, 0, 65569, 3, 0, 65570, 3, 0, 65571, 3, 0, 65572, 3, 0, 65573, 3, 0, 65574, 3, 0, 65575, 3, 0, 65576, 3, 0, 65577, 3, 0, 65578, 3, 0, 65579, 3, 0, 65580, 3, 0, 65581, 3, 0, 65582, 3, 0, 65583, 3, 0, 65584, 3, 0, 65585, 3, 0, 65586, 3, 0, 65587, 3, 0, 65588, 3, 0, 65589, 3, 0, 65590, 3, 0, 65591, 3, 0, 65592, 3, 0, 65593, 3, 0, 65594, 3, 0, 65595, 3, 0, 65596, 3, 0, 65597, 3, 0, 65598, 3, 0 ) [node name="Spikes" parent="TileMap" instance=ExtResource( 3 )] position = Vector2( 708, 12 ) @@ -88,10 +359,10 @@ position = Vector2( 1212, -36 ) position = Vector2( 1236, -36 ) [node name="Spikes3" parent="TileMap" instance=ExtResource( 3 )] -position = Vector2( 8, -16 ) +position = Vector2( 684, 12 ) [node name="DropThroughPlatform" parent="." instance=ExtResource( 11 )] -tile_data = PoolIntArray( ) +tile_data = PoolIntArray( -786315, 1, 0, -786314, 0, 0, -786312, 2, 0 ) [node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )] position = Vector2( -108, -7 ) @@ -118,11 +389,9 @@ monitoring = false next_scene = ExtResource( 9 ) [node name="GameplaySignalManager" type="Node2D" parent="."] +visible = false script = ExtResource( 10 ) -[node name="Spring" parent="." instance=ExtResource( 12 )] -position = Vector2( 272, -72 ) - [connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"] [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"] diff --git a/src/Levels/The Line Level.tscn b/src/Levels/The Line Level.tscn new file mode 100644 index 0000000..b0d4ae3 --- /dev/null +++ b/src/Levels/The Line Level.tscn @@ -0,0 +1,339 @@ +[gd_scene load_steps=12 format=2] + +[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=1] +[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=2] +[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=3] +[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=10] + +[sub_resource type="AnimationNodeStateMachinePlayback" id=4] + +[node name="LevelTemplate" type="Node2D"] +__meta__ = { +"_edit_horizontal_guides_": [ 464.0 ], +"_edit_vertical_guides_": [ 2880.0 ] +} + +[node name="UserInterface" parent="." instance=ExtResource( 9 )] + +[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] +wait_time = 20.0 + +[node name="PauseScreen" parent="UserInterface" index="1"] +margin_left = 3.15372 +margin_top = 0.456848 +margin_right = 3.15375 +margin_bottom = 0.456848 + +[node name="Blobby" parent="." instance=ExtResource( 4 )] +position = Vector2( 71.0069, 335.293 ) +scale = Vector2( 0.878906, 0.936025 ) + +[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 4 ) + +[node name="Collectibles" type="Node2D" parent="."] +visible = false + +[node name="Coin" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 336, -60 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="Coin2" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 324, -11 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="Coin3" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 1188, -84 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="Coin4" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 1236, -108 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="Coin5" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 1140, -108 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="Coin6" parent="Collectibles" instance=ExtResource( 5 )] +position = Vector2( 696, -48 ) +scale = Vector2( 0.133, 0.133 ) +scoreValue = null + +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 24, 24 ) +cell_quadrant_size = 3 +cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) +collision_layer = 8 +collision_mask = 8 +format = 1 +tile_data = PoolIntArray( 0, 4, 0, 260, 4, 0, 65536, 4, 0, 65796, 4, 0, 131072, 4, 0, 131332, 4, 0, 196608, 4, 0, 196868, 4, 0, 262144, 4, 0, 262404, 4, 0, 327680, 4, 0, 327940, 4, 0, 393216, 4, 0, 393476, 4, 0, 458752, 4, 0, 459012, 4, 0, 524288, 4, 0, 524548, 4, 0, 589824, 4, 0, 590084, 4, 0, 655360, 4, 0, 655620, 4, 0, 720896, 4, 0, 721156, 4, 0, 786432, 4, 0, 786692, 4, 0, 851968, 4, 0, 852228, 4, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0, 917513, 4, 0, 917514, 4, 0, 917515, 4, 0, 917516, 4, 0, 917517, 4, 0, 917518, 4, 0, 917519, 4, 0, 917520, 4, 0, 917521, 4, 0, 917522, 4, 0, 917523, 4, 0, 917524, 4, 0, 917525, 4, 0, 917526, 4, 0, 917527, 4, 0, 917528, 4, 0, 917529, 4, 0, 917530, 4, 0, 917531, 4, 0, 917532, 4, 0, 917533, 4, 0, 917534, 4, 0, 917535, 4, 0, 917536, 4, 0, 917537, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917541, 4, 0, 917542, 4, 0, 917543, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 917548, 4, 0, 917549, 4, 0, 917550, 4, 0, 917551, 4, 0, 917552, 4, 0, 917553, 4, 0, 917554, 4, 0, 917555, 4, 0, 917556, 4, 0, 917557, 4, 0, 917558, 4, 0, 917559, 4, 0, 917560, 4, 0, 917561, 4, 0, 917562, 4, 0, 917563, 4, 0, 917564, 4, 0, 917565, 4, 0, 917566, 4, 0, 917567, 4, 0, 917568, 4, 0, 917569, 4, 0, 917570, 4, 0, 917571, 4, 0, 917572, 4, 0, 917573, 4, 0, 917574, 4, 0, 917575, 4, 0, 917576, 4, 0, 917577, 4, 0, 917578, 4, 0, 917579, 4, 0, 917580, 4, 0, 917581, 4, 0, 917582, 4, 0, 917583, 4, 0, 917584, 4, 0, 917585, 4, 0, 917586, 4, 0, 917587, 4, 0, 917588, 4, 0, 917589, 4, 0, 917590, 4, 0, 917591, 4, 0, 917592, 4, 0, 917593, 4, 0, 917594, 4, 0, 917595, 4, 0, 917596, 4, 0, 917597, 4, 0, 917598, 4, 0, 917599, 4, 0, 917600, 4, 0, 917601, 4, 0, 917602, 4, 0, 917603, 4, 0, 917604, 4, 0, 917605, 4, 0, 917606, 4, 0, 917607, 4, 0, 917608, 4, 0, 917609, 4, 0, 917610, 4, 0, 917611, 4, 0, 917612, 4, 0, 917613, 4, 0, 917614, 4, 0, 917615, 4, 0, 917616, 4, 0, 917617, 4, 0, 917618, 4, 0, 917619, 4, 0, 917620, 4, 0, 917621, 4, 0, 917622, 4, 0, 917623, 4, 0, 917624, 4, 0, 917625, 4, 0, 917626, 4, 0, 917627, 4, 0, 917628, 4, 0, 917629, 4, 0, 917630, 4, 0, 917631, 4, 0, 917632, 4, 0, 917633, 4, 0, 917634, 4, 0, 917635, 4, 0, 917636, 4, 0, 917637, 4, 0, 917638, 4, 0, 917639, 4, 0, 917640, 4, 0, 917641, 4, 0, 917642, 4, 0, 917643, 4, 0, 917644, 4, 0, 917645, 4, 0, 917646, 4, 0, 917647, 4, 0, 917648, 4, 0, 917649, 4, 0, 917650, 4, 0, 917651, 4, 0, 917652, 4, 0, 917653, 4, 0, 917654, 4, 0, 917655, 4, 0, 917656, 4, 0, 917657, 4, 0, 917658, 4, 0, 917659, 4, 0, 917660, 4, 0, 917661, 4, 0, 917662, 4, 0, 917663, 4, 0, 917664, 4, 0, 917665, 4, 0, 917666, 4, 0, 917667, 4, 0, 917668, 4, 0, 917669, 4, 0, 917670, 4, 0, 917671, 4, 0, 917672, 4, 0, 917673, 4, 0, 917674, 4, 0, 917675, 4, 0, 917676, 4, 0, 917677, 4, 0, 917678, 4, 0, 917679, 4, 0, 917680, 4, 0, 917681, 4, 0, 917682, 4, 0, 917683, 4, 0, 917684, 4, 0, 917685, 4, 0, 917686, 4, 0, 917687, 4, 0, 917688, 4, 0, 917689, 4, 0, 917690, 4, 0, 917691, 4, 0, 917692, 4, 0, 917693, 4, 0, 917694, 4, 0, 917695, 4, 0, 917696, 4, 0, 917697, 4, 0, 917698, 4, 0, 917699, 4, 0, 917700, 4, 0, 917701, 4, 0, 917702, 4, 0, 917703, 4, 0, 917704, 4, 0, 917705, 4, 0, 917706, 4, 0, 917707, 4, 0, 917708, 4, 0, 917709, 4, 0, 917710, 4, 0, 917711, 4, 0, 917712, 4, 0, 917713, 4, 0, 917714, 4, 0, 917715, 4, 0, 917716, 4, 0, 917717, 4, 0, 917718, 4, 0, 917719, 4, 0, 917720, 4, 0, 917721, 4, 0, 917722, 4, 0, 917723, 4, 0, 917724, 4, 0, 917725, 4, 0, 917726, 4, 0, 917727, 4, 0, 917728, 4, 0, 917729, 4, 0, 917730, 4, 0, 917731, 4, 0, 917732, 4, 0, 917733, 4, 0, 917734, 4, 0, 917735, 4, 0, 917736, 4, 0, 917737, 4, 0, 917738, 4, 0, 917739, 4, 0, 917740, 4, 0, 917741, 4, 0, 917742, 4, 0, 917743, 4, 0, 917744, 4, 0, 917745, 4, 0, 917746, 4, 0, 917747, 4, 0, 917748, 4, 0, 917749, 4, 0, 917750, 4, 0, 917751, 4, 0, 917752, 4, 0, 917753, 4, 0, 917754, 4, 0, 917755, 4, 0, 917756, 4, 0, 917757, 4, 0, 917758, 4, 0, 917759, 4, 0, 917760, 4, 0, 917761, 4, 0, 917762, 4, 0, 917763, 4, 0, 917764, 4, 0 ) + +[node name="TreeWhyButtons" parent="." instance=ExtResource( 8 )] +visible = false +position = Vector2( -108, -7 ) + +[node name="WhyButton1" parent="TreeWhyButtons" index="0"] +position = Vector2( -12, -49 ) +rotation = 1.5708 + +[node name="WhyButton2" parent="TreeWhyButtons" index="1"] +position = Vector2( 444, -17 ) +rotation = 3.14159 + +[node name="WhyButton3" parent="TreeWhyButtons" index="2"] +position = Vector2( 1452, -77 ) +rotation = -1.5708 + +[node name="ElevatorButton" parent="." instance=ExtResource( 3 )] +visible = false +position = Vector2( 1452, -96 ) + +[node name="Portal" parent="ElevatorButton" instance=ExtResource( 10 )] +visible = false +position = Vector2( -1464, 84 ) +monitoring = false +next_scene = ExtResource( 6 ) + +[node name="GameplaySignalManager" type="Node2D" parent="."] +script = ExtResource( 1 ) + +[node name="ShaderGrass" parent="." instance=ExtResource( 7 )] +position = Vector2( 94.3273, 323.897 ) +z_index = -1 + +[node name="ShaderGrass2" parent="." instance=ExtResource( 7 )] +position = Vector2( 97.7583, 323.726 ) + +[node name="ShaderGrass3" parent="." instance=ExtResource( 7 )] +position = Vector2( 103.443, 323.813 ) + +[node name="ShaderGrass4" parent="." instance=ExtResource( 7 )] +position = Vector2( 99.556, 322.393 ) +z_index = -1 + +[node name="ShaderGrass5" parent="." instance=ExtResource( 7 )] +position = Vector2( 107.485, 323.87 ) + +[node name="ShaderGrass6" parent="." instance=ExtResource( 7 )] +position = Vector2( 104.781, 322.084 ) +z_index = -1 + +[node name="ShaderGrass7" parent="." instance=ExtResource( 7 )] +position = Vector2( 118.829, 323.704 ) + +[node name="ShaderGrass8" parent="." instance=ExtResource( 7 )] +position = Vector2( 112.732, 323.918 ) + +[node name="ShaderGrass9" parent="." instance=ExtResource( 7 )] +position = Vector2( 110.33, 321.607 ) +z_index = -1 + +[node name="ShaderGrass10" parent="." instance=ExtResource( 7 )] +position = Vector2( 122.514, 323.848 ) +z_index = -1 + +[node name="ShaderGrass11" parent="." instance=ExtResource( 7 )] +position = Vector2( 125.945, 323.677 ) + +[node name="ShaderGrass12" parent="." instance=ExtResource( 7 )] +position = Vector2( 131.629, 323.764 ) + +[node name="ShaderGrass13" parent="." instance=ExtResource( 7 )] +position = Vector2( 127.742, 322.345 ) +z_index = -1 + +[node name="ShaderGrass14" parent="." instance=ExtResource( 7 )] +position = Vector2( 135.671, 323.821 ) + +[node name="ShaderGrass15" parent="." instance=ExtResource( 7 )] +position = Vector2( 132.967, 322.035 ) +z_index = -1 + +[node name="ShaderGrass16" parent="." instance=ExtResource( 7 )] +position = Vector2( 147.015, 323.655 ) + +[node name="ShaderGrass17" parent="." instance=ExtResource( 7 )] +position = Vector2( 140.918, 323.869 ) + +[node name="ShaderGrass18" parent="." instance=ExtResource( 7 )] +position = Vector2( 138.516, 321.559 ) +z_index = -1 + +[node name="ShaderGrass19" parent="." instance=ExtResource( 7 )] +position = Vector2( 149.723, 323.897 ) +z_index = -1 + +[node name="ShaderGrass20" parent="." instance=ExtResource( 7 )] +position = Vector2( 153.154, 323.726 ) + +[node name="ShaderGrass21" parent="." instance=ExtResource( 7 )] +position = Vector2( 158.839, 323.813 ) + +[node name="ShaderGrass22" parent="." instance=ExtResource( 7 )] +position = Vector2( 154.952, 322.393 ) +z_index = -1 + +[node name="ShaderGrass23" parent="." instance=ExtResource( 7 )] +position = Vector2( 162.881, 323.87 ) + +[node name="ShaderGrass24" parent="." instance=ExtResource( 7 )] +position = Vector2( 160.177, 322.084 ) +z_index = -1 + +[node name="ShaderGrass25" parent="." instance=ExtResource( 7 )] +position = Vector2( 174.225, 323.704 ) + +[node name="ShaderGrass26" parent="." instance=ExtResource( 7 )] +position = Vector2( 168.128, 323.918 ) + +[node name="ShaderGrass27" parent="." instance=ExtResource( 7 )] +position = Vector2( 165.726, 321.607 ) +z_index = -1 + +[node name="ShaderGrass28" parent="." instance=ExtResource( 7 )] +position = Vector2( 64.794, 323.73 ) +z_index = -1 + +[node name="ShaderGrass29" parent="." instance=ExtResource( 7 )] +position = Vector2( 68.225, 323.559 ) + +[node name="ShaderGrass30" parent="." instance=ExtResource( 7 )] +position = Vector2( 73.9096, 323.646 ) + +[node name="ShaderGrass31" parent="." instance=ExtResource( 7 )] +position = Vector2( 70.0227, 322.227 ) +z_index = -1 + +[node name="ShaderGrass32" parent="." instance=ExtResource( 7 )] +position = Vector2( 77.9516, 323.703 ) + +[node name="ShaderGrass33" parent="." instance=ExtResource( 7 )] +position = Vector2( 75.2476, 321.917 ) +z_index = -1 + +[node name="ShaderGrass34" parent="." instance=ExtResource( 7 )] +position = Vector2( 89.2956, 323.538 ) + +[node name="ShaderGrass35" parent="." instance=ExtResource( 7 )] +position = Vector2( 83.1986, 323.751 ) + +[node name="ShaderGrass36" parent="." instance=ExtResource( 7 )] +position = Vector2( 80.7966, 321.441 ) +z_index = -1 + +[node name="ShaderGrass37" parent="." instance=ExtResource( 7 )] +position = Vector2( 39.2652, 323.564 ) +z_index = -1 + +[node name="ShaderGrass38" parent="." instance=ExtResource( 7 )] +position = Vector2( 42.6962, 323.393 ) + +[node name="ShaderGrass39" parent="." instance=ExtResource( 7 )] +position = Vector2( 48.3808, 323.48 ) + +[node name="ShaderGrass40" parent="." instance=ExtResource( 7 )] +position = Vector2( 44.4939, 322.06 ) +z_index = -1 + +[node name="ShaderGrass41" parent="." instance=ExtResource( 7 )] +position = Vector2( 52.4228, 323.537 ) + +[node name="ShaderGrass42" parent="." instance=ExtResource( 7 )] +position = Vector2( 49.7188, 321.751 ) +z_index = -1 + +[node name="ShaderGrass43" parent="." instance=ExtResource( 7 )] +position = Vector2( 63.7668, 323.371 ) + +[node name="ShaderGrass44" parent="." instance=ExtResource( 7 )] +position = Vector2( 57.6698, 323.585 ) + +[node name="ShaderGrass45" parent="." instance=ExtResource( 7 )] +position = Vector2( 55.2678, 321.274 ) +z_index = -1 + +[node name="ShaderGrass46" parent="." instance=ExtResource( 7 )] +position = Vector2( 17.2403, 323.73 ) +z_index = -1 + +[node name="ShaderGrass47" parent="." instance=ExtResource( 7 )] +position = Vector2( 20.6713, 323.559 ) + +[node name="ShaderGrass48" parent="." instance=ExtResource( 7 )] +position = Vector2( 26.3559, 323.646 ) + +[node name="ShaderGrass49" parent="." instance=ExtResource( 7 )] +position = Vector2( 22.469, 322.227 ) +z_index = -1 + +[node name="ShaderGrass50" parent="." instance=ExtResource( 7 )] +position = Vector2( 30.3979, 323.703 ) + +[node name="ShaderGrass51" parent="." instance=ExtResource( 7 )] +position = Vector2( 27.6939, 321.917 ) +z_index = -1 + +[node name="ShaderGrass52" parent="." instance=ExtResource( 7 )] +position = Vector2( 41.7419, 323.538 ) + +[node name="ShaderGrass53" parent="." instance=ExtResource( 7 )] +position = Vector2( 35.6449, 323.751 ) + +[node name="ShaderGrass54" parent="." instance=ExtResource( 7 )] +position = Vector2( 33.2429, 321.441 ) +z_index = -1 + +[node name="ShaderGrass55" parent="." instance=ExtResource( 7 )] +position = Vector2( 166.242, 323.73 ) +z_index = -1 + +[node name="ShaderGrass56" parent="." instance=ExtResource( 7 )] +position = Vector2( 169.673, 323.559 ) + +[node name="ShaderGrass57" parent="." instance=ExtResource( 7 )] +position = Vector2( 175.357, 323.646 ) + +[node name="ShaderGrass58" parent="." instance=ExtResource( 7 )] +position = Vector2( 171.471, 322.227 ) +z_index = -1 + +[node name="ShaderGrass59" parent="." instance=ExtResource( 7 )] +position = Vector2( 179.399, 323.703 ) + +[node name="ShaderGrass60" parent="." instance=ExtResource( 7 )] +position = Vector2( 176.695, 321.917 ) +z_index = -1 + +[node name="ShaderGrass61" parent="." instance=ExtResource( 7 )] +position = Vector2( 190.743, 323.538 ) + +[node name="ShaderGrass62" parent="." instance=ExtResource( 7 )] +position = Vector2( 184.646, 323.751 ) + +[node name="ShaderGrass63" parent="." instance=ExtResource( 7 )] +position = Vector2( 182.244, 321.441 ) +z_index = -1 + +[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"] +[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"] +[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"] + +[editable path="UserInterface"] +[editable path="UserInterface/HUD"] +[editable path="Blobby"] +[editable path="TreeWhyButtons"] +[editable path="TreeWhyButtons/WhyButton1"] +[editable path="TreeWhyButtons/WhyButton2"] +[editable path="TreeWhyButtons/WhyButton3"] diff --git a/src/UserInterface/Buttons/RetryButton.gd b/src/UserInterface/Buttons/RetryButton.gd index a211e4d..dbec988 100644 --- a/src/UserInterface/Buttons/RetryButton.gd +++ b/src/UserInterface/Buttons/RetryButton.gd @@ -2,6 +2,6 @@ extends Button func _on_button_up() -> void: - PlayerData.score = 0 + GlobalData.score = 0 get_tree().paused = false get_tree().reload_current_scene() diff --git a/src/UserInterface/Buttons/StatsLabel.gd b/src/UserInterface/Buttons/StatsLabel.gd index 5e4d8aa..701cb6c 100644 --- a/src/UserInterface/Buttons/StatsLabel.gd +++ b/src/UserInterface/Buttons/StatsLabel.gd @@ -1,4 +1,4 @@ extends Label func _ready(): - self.text = self.text % [PlayerData.score, PlayerData.deaths] + self.text = self.text % [GlobalData.score, GlobalData.deaths] diff --git a/src/UserInterface/Screens/HUD.gd b/src/UserInterface/Screens/HUD.gd index aa42f52..b799155 100644 --- a/src/UserInterface/Screens/HUD.gd +++ b/src/UserInterface/Screens/HUD.gd @@ -9,7 +9,7 @@ onready var score: Label = $HUDOverlay/Score func _ready(): #TODO Connect what HOW? - PlayerData.connect("score_updated", self, "update_interface") + GlobalData.connect("score_updated", self, "update_interface") update_interface() func _process(delta): @@ -29,7 +29,7 @@ func _zoom_timer() -> void: func update_interface() -> void: - score.text = "Score: %s" % PlayerData.score + score.text = "Score: %s" % GlobalData.score func _on_SignalManager_terminal_activated() -> void: diff --git a/src/UserInterface/Screens/PauseScreen.gd b/src/UserInterface/Screens/PauseScreen.gd index 0a3b3f9..cf5574d 100644 --- a/src/UserInterface/Screens/PauseScreen.gd +++ b/src/UserInterface/Screens/PauseScreen.gd @@ -8,10 +8,10 @@ onready var pause_title: Label = get_node("PauseOverlay/Title") var paused := false setget set_paused func _ready(): - PlayerData.connect("player_died", self, "_on_PlayerData_player_died") + GlobalData.connect("player_died", self, "_on_GlobalData_player_died") -func _on_PlayerData_player_died() -> void: +func _on_GlobalData_player_died() -> void: self.paused = true pause_title.text = "You lost" diff --git a/src/Utilities/GameplaySignalManager.gd b/src/Utilities/GameplaySignalManager.gd index e4f3aa4..69d5f63 100644 --- a/src/Utilities/GameplaySignalManager.gd +++ b/src/Utilities/GameplaySignalManager.gd @@ -2,8 +2,30 @@ extends Node2D signal terminal_activated() signal getback_timer_up() - - +signal score_updated +signal player_died func _on_Timer_timeout() -> void: emit_signal("getback_timer_up") + +#TODO Easteregg pls +var score: = 0 setget set_score +var deaths: = 0 setget set_deaths +var is_dead: = false setget set_dead + + +func reset() -> void: + score = 0 + deaths = 0 + +#TODO Remove score +func set_score(value: int) -> void: + score = value + emit_signal("score_updated") + +func set_deaths(value: int) -> void: + deaths = value + #emit_signal("player_died") + +func set_dead(value: bool) -> void: + is_dead = value \ No newline at end of file