From b01b8985583ae316f50798110b56b20c9be89a25 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Sat, 17 Dec 2022 20:21:00 +0100 Subject: [PATCH] Unoccluded lighting shader The camera now updates a shader with the positions, strengths and colors of nodes in the light group. The sources cast light around them on the z layer they are on. They do not work for Tilemaps yet and can't be occluded. The light of different sources does not get stronger if they overlap. --- assets/blobby/Blobby.png | Bin 5461 -> 0 bytes assets/blobby/Blobby.png.import | 35 --- assets/blobby/blobby-spritesheet.png | Bin 5760 -> 6128 bytes assets/blobby/blobby-spritesheett.aseprite | Bin 17904 -> 0 bytes .../blobby-spritesheett.aseprite.import | 26 -- assets/blobby/blobby-spritesheett.png | Bin 5469 -> 0 bytes assets/blobby/blobby-spritesheett.png.import | 35 --- src/Actors/Blobby/Blobby.tscn | 1 + src/Actors/Blobby/BlobbyCam.gd | 38 ++- src/Actors/BlobbyCam.tscn | 138 ++++++++-- src/Actors/LightTest.gd | 4 - .../Platform/DropThroughPlatform.tscn | 1 - .../Platform/FlyingLaserCutter.tscn | 4 +- src/Contraptions/Platform/Spring.tscn | 2 +- src/Environment/LightingShader.gdshader | 80 ++++++ src/Environment/LightingShaderMaterial.tres | 97 +++++++ src/Levels/01 Level.tscn | 44 +--- src/Levels/02 Level.tscn | 6 + src/Levels/Emitter.gd | 7 + src/Levels/The Line Level.tscn | 246 +----------------- src/NeutralObjects/Coin.tscn | 2 +- src/ObstacleObjects/Spikes.tscn | 2 +- src/UserInterface/Screens/HUD.tscn | 1 + 23 files changed, 365 insertions(+), 404 deletions(-) delete mode 100644 assets/blobby/Blobby.png delete mode 100644 assets/blobby/Blobby.png.import delete mode 100644 assets/blobby/blobby-spritesheett.aseprite delete mode 100644 assets/blobby/blobby-spritesheett.aseprite.import delete mode 100644 assets/blobby/blobby-spritesheett.png delete mode 100644 assets/blobby/blobby-spritesheett.png.import create mode 100644 src/Environment/LightingShader.gdshader create mode 100644 src/Environment/LightingShaderMaterial.tres create mode 100644 src/Levels/Emitter.gd diff --git a/assets/blobby/Blobby.png b/assets/blobby/Blobby.png deleted file mode 100644 index 54b59be707e3f119ab6102776771ee03723e9aa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5461 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 diff --git a/assets/blobby/Blobby.png.import b/assets/blobby/Blobby.png.import deleted file mode 100644 index 131b069..0000000 --- a/assets/blobby/Blobby.png.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/Blobby.png-554d4a075b6d3934353e2891595fdca2.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/blobby/Blobby.png" -dest_files=[ "res://.import/Blobby.png-554d4a075b6d3934353e2891595fdca2.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/blobby/blobby-spritesheet.png b/assets/blobby/blobby-spritesheet.png index fc56c07900436e73c7fa26f97d9842697a7d2666..d96d1642e785db73940be64a954722dc8d71be78 100644 GIT binary patch literal 6128 zcmai2XH=8Twthn>0jYvgLI*!UnkX#@BnV3HP3bBsErNh_k^l+t*DrtyNKGJwoA3NMYn`?3x%bEHJ!{tNSu=ZP&)&}yYi6R$!o%~A-AU_M;8$iu4{{{eXSLo|#Sp{YPcErbD8hDaeAHWusm>?+gz3fu- zT?B*kLj}bKmKot^%rr>(*2u?mZHtxi*B0SjJP#=}y$-G2(gF6uS0LSx`8d!@`?`x8 zOVoslcKjb?W|S8$W+O;I-bu%GHK`(G?t+kd38B5}ShPX(YQxpa4gf++6M+zB|Ltk$DC6&#q4;6@M9%uJE8hN&4BK3SsbNjUk7+tM`aTkwH#u`3decz1 zh+z8TnhxO_7y2sDcrMu&W5X(Wa2yzLvF3hfYXcB;?8OdMzdhT|5c6p89%}xOZ=1T( zJ4>@tscLv_>jQ@69k1p9ufY#TyP@HDW}po?U(nCUZTq>=2WSKZn;vd!FC2|L^)?M{ zQ+E~!tVg4NtJ|(+{XqQITN?T~_)d98t@8k?(NRRnHJ|ce;DgA{X!f1`eQ-%;Yd$I_ zaoCgvaMwF<^0(`l1l27&qZ;MY?$Ch(LyEI!=#eegZb4U7J0EbKPOdPg3MG|SUq{@L zD0|u=2(5cr3chF?(U@!Nd$pXqWNm%Bc{n4!x1pFv^6R_|Lsd0g{`E5c2_@ScvWS$h zz`<=!%UK$?MxRz6wAcJp2IqewNt$m4;_13Ng*3zIJ45#~2kE^qDz)+x!d<|7FP?Xl zwwKdTYo9SGVMH^h$(^(F6ut#Za2IE|lAaPqal0X#&!t@@H4+$HYL=1Uub`9zjUnhk z`XunEuOLNg(-c`((oy}<@dTjy+NVujCDg`%CON4YuW1gGbvzgTH0n^zs^X+|1=i zPaeUU?kde@f$M#-ta>pwR=@4Ic(dg?oSqVw-&Gu~y{Vu8Q#lwbp%!@L2rjrJ;$kO# zB?UM@BBH*k*_zaqgM3Jv|GICgcl&bte0vJ`*$YpE3y&&zL$G_s*67vwLz5SiLisf; z;%DHUA;`$Xb2S_ozE?k=6|)BYW9xD)Ys2^sQ*mM~9X$716Qvqaim*(GyzhVGI|Z_Z z4l+rqminmDLu734Eo)TYaHKCL+dWXc-YC19^5BcZ_(gPKNnZ{bFwC;c-({tHSi$ zS6fkV#KrZN;Z9C|$m}g0fc9Ym1k+W;0b+lnBnr?p+@eLeOuhghU->wIh&y65!dE>1 zb5a(ru*nK6w|DS1m2XK!r=F+X4$`N8|&RzLY}Qc?_P?P0(QA#Z}vWm!^h@L16NQd zhUD{#e?XYFqb^yLDT-->F1-H)zY!QI`)X9A=-Z{O=0Aqi%_Z?jLty9{(Pt76V{3@~ zE8E$jELCsnKgQUQod|<#P5XZgv(b{MT9#}$_FOh@Ap149NJie&+;M^$ zeC~pcN>5e1S!C8MAnWyIBe>}m8h0pUk%wkR4UuX;hB03CP_TN85&7s1MaQx{)J02u0Vg$kacaoEBR- z_xEAd~IYN;Xlp8e}Y8+SLc!{mKUmn12lotgtrL1_4&h-!Om1r%leXiH0i#WQO zCPni5I05Xi7aYDjyw_;kYYq-{I!?jrisWPW2yItbfuTsm%H(ED8-Q$R1c;muj0WUoIA=BCzeMI|XfO1-*e_3YOh6GZCwgtGwabSOM57}aV zCz}-{>jKC`>F&aBZtf~}4@y%IMPHtxg%_vAmRUcltH<6h)3=Cdo82gq%I~kS zQC^)k&yvw*(u}pOZ0&oSdh`8bQH@vf8@eH2%;jS{ZejJ-iBfKxUUK{`rOM2~~dTnifC9`(yFD!-KzZ4+)2`#ByR$}$HBqzkszl}#m zn6g$~HZ{xEG@~b_ip6p5m6qy6%P?3#KD^P6cf6x;Hl58C&J-b`sjBfbO#qy`bcLY# z=|;j{0to5)P~+a1lZbBhjGx~$jRgu+&WU5i@IPI*;nql#>5fB@&yrasVSsmGR+=yn z-qKAXeR)}^u>4Kv>wt>=J zj|=Tkx_74k_}KdrPdc{O+aYW;&#VIFeo$yh&plrW0F!eclqV#gpaur&9yLv3HoQ}G z0;Obz!d7X%x2-2ZHPaDkiNRNZ?_*=xCqi3c=g~|=F1edq3AJ3b`()tflyxipi~gQm z#5YX<=jfgN%Y)Z4OLR@9v$#Y)>)Kec<>SCDIiEzM5D$afSyBRBO}tVO@Xm>Q46|x* zI{2;KG@AgkBEiYkDXlrizw@~#Mnn2vti8$`^V{)rbI($24597Wqzl&e1jV*L9(dk= zU!B`|pv*~Q(*=6_P=B$1eEQyxh#=yA=EkEed={Q2?bcQJ2P-k5e3TS+pCsfFQ+mXU zWBf+{^C*biT$PZryRP(Vb~DFed!>obuKgX1-qgiG94yTKacEr>j&RxfzjEcjKal^N zVwr*d05}z zY{qcWsp`jOZ4q~uP$GZzgMgZaq3R3IMu|#L#lFAauXWq+&__Q%NvLy32uUp9PrfJl zNaiWUZoX^BhYk^YOXG6!lSUI05%;-#Ncuzj1VsZAymK#scryO+6FJw5Algx*HJY6xG+B}%J2qrhESE{?lA4#AfA^UwR< zp7iaR%ytSMLjC9-3@p1VIhm!=zZN6+U3?7bb#v0Si10f2q68g{H&RwcCLdKh2XnrGdihA$DA z1Y7!|^krvf=F1zaU@%;L-xCeC-a8-#t4P{yyWmQ3URbu^{A>)_SD3Ceb)~z$`*qQ$ z%e|qLY#=|t$IUPg!pCgUQt``LIIB_X*wN6!EJX;j=W8;3JGWp0=a#aZCigN>RlYj3 zVdF+$u#Ixiu)@gx!y(q>ZIG0&U#e1??i9`a3T{igALb3v%+^2GE~Y-?DEvMWB43nx zZ5K=}Uca!hztQ-xm9wZ&Y97&LLx;hhXRqal$?%!2BV(?Fb)y*jg-* z!hEjJN(+-X43BwasOpsKZH#y<{Xq=?$oTvwdLg=zi>B-^=|1pbj|H7|7_D0rsrFUe z_Md6!L3AcDZo(txjA)@2La`w><+x{n5*}3FdcBCTiRK3=pQU;95hSXgp1%9_oFjGo zoW#k|((v%Tl@6D$<-BOuXKL_{o}ig*c>lI98Q;#d8Vog3EAfZqwj9ZK4*&*S{8k;V ztRrMO>$6lclPE8c0-FCUKQYiBc%99}R0Z|(L{O8mW(zCzjFV_>-MQ`Kuf|d^mY?qD zvq?^oOdUU2SS`L|D9>2X9=8$h(ZviTfwDLt4zW8u?Mbl=p`lY}%^$xLbGBHR z6_|VorTHrD`x@V)#>Sv;tF)mT>Vu27AA&YaR1Kkx{w$g*5Xmx`7~5A~Zux&Fe^43W zOSxudt+>&Wzc=-Q!;F%>D@zOtx2#x6F)7#WF=qz0$muKg_o~LrDz_V=FrH)l^7z+1 zCbAKgvJU$O^(+PYhgjfnf0pFFy?`Sb5*C#3x=Zf`IlyY02J!4UBC#*7lp>}b8a_#q zDJ78%5z0)B(ND(){VptOSV|L2VI7kSqHrNt+u_LZSw14E?Z<5HV=6fswCd zleTVp>h9ngroQYVuc2LdKGNi`vJ|ApeVU(Ir4kbS;>eA0a>UXij?FA3xxjkbZ1}9t z6n^_O`WP{_5MFn@^rgK~9(nxOB7-)?l+$+j)u%G8)Y&i7e%+q{S?d z5(i9we^39F9$_r5(o+UTqjsVu7S8?<&YYx=D6QMok;`L*vmc*Se>Iz*6XZk`?&Xm; zOo5$AUi8_JO67u(vx61kXWHoF8dR$S literal 5760 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 D1e_EQ diff --git a/assets/blobby/blobby-spritesheett.aseprite.import b/assets/blobby/blobby-spritesheett.aseprite.import deleted file mode 100644 index 6c3245f..0000000 --- a/assets/blobby/blobby-spritesheett.aseprite.import +++ /dev/null @@ -1,26 +0,0 @@ -[remap] - -importer="aseprite.wizard.plugin" -type="SpriteFrames" -path="res://.import/blobby-spritesheett.aseprite-d18d1784e0bcefbf61e41d349f337576.res" - -[deps] - -source_file="res://assets/blobby/blobby-spritesheett.aseprite" -dest_files=[ "res://.import/blobby-spritesheett.aseprite-d18d1784e0bcefbf61e41d349f337576.res" ] - -[params] - -split_layers=false -exclude_layers_pattern="" -only_visible_layers=false -sheet_type="Packed" -sprite_filename_pattern="{basename}.{layer}.{extension}" -texture_strip/import_texture_strip=false -texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}" -texture_atlas/import_texture_atlas=false -texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}" -texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}" -animated_texture/import_animated_texture=false -animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}" -animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}" diff --git a/assets/blobby/blobby-spritesheett.png b/assets/blobby/blobby-spritesheett.png deleted file mode 100644 index be57d8c3c238114547f3401486ca3737dc9b56b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5469 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 void: if(!GlobalState.is_dead): @@ -28,6 +34,7 @@ func _physics_process(delta: float) -> void: else: self.position = blobby.global_position _death_cam() + _update_lighting_shader() func _set_boundaries(): # This is ok, because it only happens on initialization @@ -92,5 +99,32 @@ func _adapt_to_movement(): position = blobby.position func _death_cam(): - $AnimationPlayer.play("deathCam") - #TODO Animation not always centered + $CameraAnimationPlayer.play("deathCam") + +func _update_lighting_shader(): + var lights = get_tree().get_nodes_in_group("light") + image.lock() + for i in lights.size(): + var light = lights[i] + # TODO To make the lighting affect all layers properly + # I would have the access the global positions of nodes in different Z layers + # without the projection to the global center layer. + + # var vtrans = get_canvas_transform() + # var top_left = -vtrans.origin / vtrans.get_scale() + # var vsize = get_viewport_rect().size + # var t = Transform2D(0, (top_left + 0.5*vsize/vtrans.get_scale()).rotated(rotation)) + + image.set_pixel(i, 0, Color( + light.position.x, light.position.y, + light.strength, light.radius + )) + image.set_pixel(i, 1, light.color) + image.unlock() + + texture.create_from_image(image) + + material.set_shader_param("n_lights", lights.size()) + material.set_shader_param("light_data", texture) + material.set_shader_param("global_transform", get_global_transform()) + material.set_shader_param("viewport_transform", get_viewport_transform()) diff --git a/src/Actors/BlobbyCam.tscn b/src/Actors/BlobbyCam.tscn index a386596..0733a39 100644 --- a/src/Actors/BlobbyCam.tscn +++ b/src/Actors/BlobbyCam.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=42 format=2] +[gd_scene load_steps=47 format=2] [ext_resource path="res://src/Actors/Blobby/BlobbyCam.gd" type="Script" id=1] [ext_resource path="res://assets/environment/background/Asteroids-Near.png" type="Texture" id=2] @@ -37,6 +37,9 @@ [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=35] [ext_resource path="res://assets/environment/decor/screen/Screen1.png" type="Texture" id=36] [ext_resource path="res://assets/environment/decor/screen/Screen12.png" type="Texture" id=37] +[ext_resource path="res://src/Environment/LightingShaderMaterial.tres" type="Material" id=38] +[ext_resource path="res://src/Levels/Emitter.gd" type="Script" id=39] +[ext_resource path="res://assets/blobby/idle/blobby1.png" type="Texture" id=40] [sub_resource type="Animation" id=5] length = 0.001 @@ -299,17 +302,86 @@ tracks/9/keys = { "update": 1, "values": [ false ] } -tracks/10/type = "value" -tracks/10/path = NodePath("ColorRect:visible") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/keys = { -"times": PoolRealArray( 1.6 ), + +[sub_resource type="Animation" id=9] +resource_name = "Pulsing" +length = 3.33 +loop = true +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("Emitter3:radius") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Emitter4:radius") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Emitter5:radius") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.65 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 128, 256 ] +} + +[sub_resource type="Animation" id=10] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Emitter3:radius") +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": [ true ] +"update": 0, +"values": [ 128 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Emitter4:radius") +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": [ 128 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Emitter5:radius") +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": [ 128 ] } [sub_resource type="SpriteFrames" id=7] @@ -329,6 +401,7 @@ animations = [ { } ] [node name="BlobbyCam" type="Camera2D"] +material = ExtResource( 38 ) z_index = 3 rotating = true current = true @@ -343,26 +416,19 @@ drag_margin_bottom = 0.0 editor_draw_screen = false script = ExtResource( 1 ) -[node name="ColorRect" type="ColorRect" parent="."] -visible = false -margin_left = -320.0 -margin_top = -180.0 -margin_right = 320.0 -margin_bottom = 178.0 -grow_horizontal = 2 -grow_vertical = 2 -color = Color( 0, 0, 0, 1 ) - [node name="ShiftTween" type="Tween" parent="."] -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +[node name="CameraAnimationPlayer" type="AnimationPlayer" parent="."] anims/RESET = SubResource( 5 ) anims/deathCam = SubResource( 6 ) +[node name="LightAnimationPlayer" type="AnimationPlayer" parent="."] +root_node = NodePath("../ParallaxBackground/ParallaxLayer4") +anims/Pulsing = SubResource( 9 ) +anims/RESET = SubResource( 10 ) + [node name="ParallaxBackground" type="ParallaxBackground" parent="."] layer = -2 -offset = Vector2( 0, -20 ) -transform = Transform2D( 1, 0, 0, 1, 0, -20 ) [node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] z_index = -1 @@ -392,13 +458,34 @@ texture = ExtResource( 2 ) motion_scale = Vector2( 0.01, 0.01 ) [node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer4"] +material = ExtResource( 38 ) z_index = -1 texture = ExtResource( 5 ) +[node name="Emitter3" type="Sprite" parent="ParallaxBackground/ParallaxLayer4" groups=["light"]] +position = Vector2( -154, 14 ) +texture = ExtResource( 40 ) +script = ExtResource( 39 ) +color = Color( 1, 0, 0, 0.615686 ) + +[node name="Emitter4" type="Sprite" parent="ParallaxBackground/ParallaxLayer4" groups=["light"]] +position = Vector2( 1, 14 ) +texture = ExtResource( 40 ) +script = ExtResource( 39 ) +color = Color( 1, 0, 0, 0.615686 ) + +[node name="Emitter5" type="Sprite" parent="ParallaxBackground/ParallaxLayer4" groups=["light"]] +position = Vector2( 154, 14 ) +texture = ExtResource( 40 ) +script = ExtResource( 39 ) +color = Color( 1, 0, 0, 0.615686 ) + [node name="Sprite2" type="Sprite" parent="ParallaxBackground/ParallaxLayer4"] +material = ExtResource( 38 ) texture = ExtResource( 6 ) [node name="ParallaxLayer5" type="ParallaxLayer" parent="ParallaxBackground"] +visible = false motion_scale = Vector2( 0.05, 0.05 ) [node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer5"] @@ -419,10 +506,9 @@ texture = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 7 ) -frame = 8 +frame = 9 playing = true [node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 8 ) -frame = 13 playing = true diff --git a/src/Actors/LightTest.gd b/src/Actors/LightTest.gd index aee5a3b..3eb6c96 100644 --- a/src/Actors/LightTest.gd +++ b/src/Actors/LightTest.gd @@ -1,6 +1,2 @@ extends Node2D -func _ready(): - # parent our emissive and occluding sprites to the EmittersAndOccluders viewport at runtime. - var emitter = $ViewPort/Emitter - var occluder = $Viewport/Occluder diff --git a/src/Contraptions/Platform/DropThroughPlatform.tscn b/src/Contraptions/Platform/DropThroughPlatform.tscn index d4639c1..8552576 100644 --- a/src/Contraptions/Platform/DropThroughPlatform.tscn +++ b/src/Contraptions/Platform/DropThroughPlatform.tscn @@ -86,4 +86,3 @@ cell_custom_transform = Transform2D( 0, 0, 0, 0, 0, 0 ) collision_layer = 128 collision_mask = 128 format = 1 -tile_data = PoolIntArray( -65510, 1, 0, -65509, 0, 0, -65507, 2, 0 ) diff --git a/src/Contraptions/Platform/FlyingLaserCutter.tscn b/src/Contraptions/Platform/FlyingLaserCutter.tscn index 23cfad4..771d695 100644 --- a/src/Contraptions/Platform/FlyingLaserCutter.tscn +++ b/src/Contraptions/Platform/FlyingLaserCutter.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://src/Contraptions/Platform/FlyingLaserCutter.gd" type="Script" id=1] +[ext_resource path="res://src/Environment/LightingShaderMaterial.tres" type="Material" id=2] [sub_resource type="StreamTexture" id=5] load_path = "res://.import/FlyingLaserCutter.png-9cf80385a79c58041216f8c2509a5bab.stex" @@ -36,6 +37,7 @@ collision_mask = 57 collision/safe_margin = 0.001 [node name="Sprite" type="Sprite" parent="FlyingLaserCutterBody"] +material = ExtResource( 2 ) texture = SubResource( 5 ) hframes = 5 vframes = 5 diff --git a/src/Contraptions/Platform/Spring.tscn b/src/Contraptions/Platform/Spring.tscn index 9c9bd8c..6b7e5a0 100644 --- a/src/Contraptions/Platform/Spring.tscn +++ b/src/Contraptions/Platform/Spring.tscn @@ -50,5 +50,5 @@ animations = [ { position = Vector2( 0, 1.5 ) z_index = -1 frames = SubResource( 1 ) -frame = 25 +frame = 19 playing = true diff --git a/src/Environment/LightingShader.gdshader b/src/Environment/LightingShader.gdshader new file mode 100644 index 0000000..d208545 --- /dev/null +++ b/src/Environment/LightingShader.gdshader @@ -0,0 +1,80 @@ +shader_type canvas_item; +render_mode unshaded; + +uniform mat4 global_transform; +uniform sampler2D light_data; +uniform int n_lights = 0; +uniform vec4 dark_color : hint_color = vec4(0.25, 0.0625, 0.25, 1.0); +uniform vec4 default_light_color : hint_color; +uniform float light_level : hint_range(0.0, 1.0) = 0.0; +uniform float offset_modifier : hint_range(0.0, 8.0) = 1.0; +uniform int n_light_bands : hint_range(1, 13) = 7; +uniform bool will_smooth_shade = false; +uniform float band_decay_rate : hint_range(0.0, 1.0, 0.05) = 0.5; +uniform float light_strength_modifier : hint_range(0.0, 1.0) = 1.0; + +varying vec2 world_position; + +void vertex() { + world_position = (global_transform * vec4(VERTEX, 0.0, 1.0)).xy; +} + +void fragment() { + // floor() the world_position so that it matches the native resolution + vec2 frag_position = floor(world_position); + float m_value = 0.0; // 0.0 == dark, 1.0 == light + vec4 light_color = default_light_color; + // Iterate through every light source. + for(int i = 0; i < n_lights; i++) { + // Get the data for this light source as passed in via texture + vec4 texel = texelFetch(light_data, ivec2(i, 0), 0); + + // How far the light source extends + float radius = texel.a; + // How bright the light source is + float strength = texel.b; + // Distance from this pixel to the light source then normalize + float dist = distance(texel.xy, frag_position); + dist = min(dist / radius, 1.0); + + // offset so that light source doesn't fade immediately + dist = max((dist * offset_modifier) - (offset_modifier - 1.0), 0.0); + + float value = 0.0; + if(will_smooth_shade) { + value = (1.0 - dist) * strength * light_strength_modifier; + } + else { + // decay offset so that max value == 1.0 + float offset = pow(band_decay_rate, float(n_light_bands)); + for(int p = 0; p < n_light_bands; p++) { + // Get max radius for this light band + float radius_check = 1.0 - pow(band_decay_rate, float(p + 1)) + offset; + // if pixel is less than the band's radius, then it's in the pth band + if(dist < radius_check) { + // Set it's value to the position of the band before this one + value = (pow(band_decay_rate, float(p)) - offset) + * strength * light_strength_modifier; + // Nearest band was found, so break the loop + break; + } + } + } + value = clamp(value, 0.0, 1.0); + if(value > m_value) { + m_value = value; + light_color = texelFetch(light_data, ivec2(i, 1), 0); + } + } + + // mix darkness with light based on light level + vec4 ambient_color = mix(dark_color, light_color, m_value); + // apply global light level + ambient_color.a *= 1.0 - light_level; + // get screen color for this pixel + vec4 screen_color = texture(SCREEN_TEXTURE, SCREEN_UV); + + // apply multiply blend mode + COLOR = screen_color * ambient_color; + +} \ No newline at end of file diff --git a/src/Environment/LightingShaderMaterial.tres b/src/Environment/LightingShaderMaterial.tres new file mode 100644 index 0000000..84d1f42 --- /dev/null +++ b/src/Environment/LightingShaderMaterial.tres @@ -0,0 +1,97 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=2] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; +render_mode unshaded; + +uniform sampler2D noise_img; + +uniform mat4 global_transform; +uniform mat4 viewport_transform; +uniform sampler2D light_data; +uniform int n_lights = 0; +uniform vec4 default_light_color : hint_color; +uniform float light_level : hint_range(0.0, 1.0) = 0.0; +uniform float offset_modifier : hint_range(0.0, 8.0) = 1.0; +uniform int n_light_bands : hint_range(1, 13) = 7; +uniform bool will_smooth_shade = false; +uniform float band_decay_rate : hint_range(0.0, 1.0, 0.05) = 0.5; +uniform float light_strength_modifier : hint_range(0.0, 1.0) = 1.0; + +varying vec2 world_position; + +void vertex() { + world_position = (viewport_transform * (global_transform * vec4(VERTEX, 0.0, 1.0))).xy; +} + +void fragment() { + vec4 col = texture(TEXTURE, UV); + if (col.a <= 0.0){ + COLOR = col; + } + else{ + // floor() the world_position so that it matches the native resolution + vec2 frag_position = floor(world_position); + float m_value = 0.0; // 0.0 == dark, 1.0 == light + vec4 light_color = default_light_color; + // Iterate through every light source. + for(int i = 0; i < n_lights; i++) { + // Get the data for this light source as passed in via texture + vec4 texel = texelFetch(light_data, ivec2(i, 0), 0); + vec2 texel_pos = (viewport_transform * (global_transform * vec4(texel.xy, 0.0, 1.0))).xy; + vec2 texel_pos2 = texel.xy; + + // How far the light source extends + float radius = texel.a; + // How bright the light source is + float strength = texel.b; + // Distance from this pixel to the light source then normalize + float dist = distance(texel_pos, frag_position); + dist = min(dist / radius, 1.0); + + // offset so that light source doesn't fade immediately + dist = max((dist * offset_modifier) - (offset_modifier - 1.0), 0.0); + + float value = 0.0; + if(will_smooth_shade) { + value = (1.0 - dist) * strength * light_strength_modifier + value; + } + else { + // decay offset so that max value == 1.0 + float offset = pow(band_decay_rate, float(n_light_bands)); + for(int p = 0; p < n_light_bands; p++) { + // Get max radius for this light band + float radius_check = 1.0 - pow(band_decay_rate, float(p + 1)) + offset; + // if pixel is less than the band's radius, then it's in the pth band + if(dist < radius_check) { + // Set it's value to the position of the band before this one + value = (pow(band_decay_rate, float(p)) - offset) + * strength * light_strength_modifier; + // Nearest band was found, so break the loop + break; + } + } + } + value = clamp(value, 0.0, 1.0); + if(value > m_value) { + m_value = value; + light_color = texelFetch(light_data, ivec2(i, 1), 0); + } + } + + COLOR = col + m_value * light_color; + } +}" + +[resource] +shader = SubResource( 1 ) +shader_param/global_transform = null +shader_param/viewport_transform = null +shader_param/n_lights = 0 +shader_param/default_light_color = Color( 1, 0.94902, 0.74902, 1 ) +shader_param/light_level = 0.0 +shader_param/offset_modifier = 0.48 +shader_param/n_light_bands = 13 +shader_param/will_smooth_shade = true +shader_param/band_decay_rate = 0.5 +shader_param/light_strength_modifier = 1.0 diff --git a/src/Levels/01 Level.tscn b/src/Levels/01 Level.tscn index 9c1e5d2..f59b232 100644 --- a/src/Levels/01 Level.tscn +++ b/src/Levels/01 Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=12 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] @@ -7,17 +7,12 @@ [ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=5] [ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=6] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=7] -[ext_resource path="res://src/Actors/LightTest.gd" type="Script" id=8] -[ext_resource path="res://assets/blobby/idle/blobby1.png" type="Texture" id=9] [ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=10] [ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=12] [ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=13] [sub_resource type="AnimationNodeStateMachinePlayback" id=4] -[sub_resource type="ViewportTexture" id=5] -viewport_path = NodePath("LightTest/Viewport") - [node name="LevelTemplate" type="Node2D"] __meta__ = { "_edit_horizontal_guides_": [ 464.0 ], @@ -32,10 +27,10 @@ wait_time = 20.0 [node name="BlobbyCam" parent="." instance=ExtResource( 12 )] [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 6 +frame = 8 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 4 +frame = 10 [node name="Blobby" parent="." instance=ExtResource( 2 )] unique_name_in_owner = true @@ -49,6 +44,7 @@ parameters/playback = SubResource( 4 ) visible = false [node name="Decor" type="Node2D" parent="."] +visible = false [node name="ShaderGrass" parent="Decor" instance=ExtResource( 13 )] position = Vector2( 118, -35 ) @@ -105,7 +101,7 @@ cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 ) collision_layer = 8 collision_mask = 8 format = 1 -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, -917441, 1073741827, 0, -917440, 1073741827, 0, -786439, 3, 0, -786438, 1610612739, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612738, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612738, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612738, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612738, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612738, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612738, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 1610612738, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612738, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612738, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612738, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612738, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -851906, 3, 0, -851905, 1073741827, 0, -851904, 1073741827, 0, -720903, -536870909, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -786370, -2147483645, 0, -786369, -536870909, 0, -786368, 1073741827, 0, -655367, -536870909, 0, -655366, -1610612734, 0, -720835, -1073741822, 0, -720834, -2147483645, 0, -720833, -536870909, 0, -720832, 1073741827, 0, -589831, -536870909, 0, -589830, -1610612734, 0, -655299, -1073741822, 0, -655298, -2147483645, 0, -655297, -536870909, 0, -655296, 1073741827, 0, -524295, -536870909, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -589762, -2147483645, 0, -589761, -536870909, 0, -589760, 1073741827, 0, -458759, -536870909, 0, -458758, -1610612734, 0, -524227, -1073741822, 0, -524226, -2147483645, 0, -524225, -536870909, 0, -524224, 1073741827, 0, -393223, -536870909, 0, -393222, -1610612734, 0, -458691, 1073741831, 0, -458690, 1073741826, 0, -458689, 1073741826, 0, -458688, 1610612739, 0, -327687, -536870909, 0, -327686, -1610612734, 0, -393152, -2147483646, 0, -262151, -536870909, 0, -262150, -1610612734, 0, -327616, -2147483646, 0, -196615, -536870909, 0, -196614, -1610612734, 0, -262088, 8, 0, -262087, 2, 0, -262086, 2, 0, -262085, 2, 0, -262084, 2, 0, -262083, 2, 0, -262082, 536870914, 0, -262081, 536870914, 0, -262080, 1610612739, 0, -131079, -536870909, 0, -131078, -1610612734, 0, -196595, 7, 0, -196594, 1610612743, 0, -196568, 8, 0, -196567, 2, 0, -196566, 2, 0, -196565, 2, 0, -196564, 2, 0, -196563, 2, 0, -196562, 536870920, 0, -196559, 2, 0, -196556, 7, 0, -196555, 2, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 536870915, 0, -196548, 1610612739, 0, -196547, 3, 0, -196546, 3, 0, -196545, 536870915, 0, -196544, 536870915, 0, -65543, -536870909, 0, -65542, -1610612734, 0, -131064, 8, 0, -131063, -1610612729, 0, -131054, 7, 0, -131053, 2, 0, -131052, 0, 0, -131051, 536870919, 0, -131034, 7, 0, -131033, 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, 3, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 536870915, 0, -131012, 1610612739, 0, -131011, 3, 0, -131010, 3, 0, -131009, 536870915, 0, -131008, 536870915, 0, -7, -536870909, 0, -6, -1610612734, 0, -65532, 7, 0, -65531, 2, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, -1610612729, 0, -65519, 7, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, -1610612734, 0, -65514, 4, 0, -65500, 7, 0, -65499, 2, 0, -65498, 3, 0, -65497, 3, 0, -65496, 3, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 3, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 3, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 536870915, 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, -65473, 536870915, 0, -65472, 536870915, 0, 65529, 3, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 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, 3, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 2, 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, 3, 0, 21, 3, 0, 22, 2, 0, 23, 2, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 536870919, 0, 30, 7, 0, 31, 2, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 2, 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, 536870915, 0, 60, 1610612739, 0, 61, 1610612739, 0, 62, 536870913, 0, 63, 536870915, 0, 64, 536870915, 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, 1, 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, 1, 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, 1, 0, 65577, 3, 0, 65578, 3, 0, 65579, 3, 0, 65580, 3, 0, 65581, 3, 0, 65582, 1, 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, 65599, 536870915, 0, 65600, 536870915, 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, -917441, 1073741827, 0, -917440, 1073741827, 0, -786439, 3, 0, -786438, 1610612739, 0, -786437, 1610612738, 0, -786436, 1610612738, 0, -786435, 1610612736, 0, -786434, 1610612738, 0, -786433, 1610612738, 0, -851968, 1610612738, 0, -851967, 1610612738, 0, -851966, 1610612738, 0, -851965, 1610612736, 0, -851964, 1610612738, 0, -851963, 1610612738, 0, -851962, 1610612738, 0, -851961, 1610612738, 0, -851960, 1610612738, 0, -851959, 1610612736, 0, -851958, 1610612738, 0, -851957, 1610612738, 0, -851956, 1610612738, 0, -851955, 1610612738, 0, -851954, 1610612738, 0, -851953, 1610612736, 0, -851952, 1610612738, 0, -851951, 1610612738, 0, -851950, 1610612738, 0, -851949, 1610612738, 0, -851948, 1610612738, 0, -851947, 1610612736, 0, -851946, 1610612738, 0, -851945, 1610612738, 0, -851944, 1610612738, 0, -851943, 1610612738, 0, -851942, 1610612738, 0, -851941, 1610612736, 0, -851940, 1610612738, 0, -851939, 1610612738, 0, -851938, 1610612738, 0, -851937, 1610612738, 0, -851936, 1610612738, 0, -851935, 1610612738, 0, -851934, 1610612738, 0, -851933, 1610612738, 0, -851932, 1610612736, 0, -851931, 1610612738, 0, -851930, 1610612738, 0, -851929, 1610612738, 0, -851928, 1610612738, 0, -851927, 1610612738, 0, -851926, 1610612736, 0, -851925, 1610612738, 0, -851924, 1610612738, 0, -851923, 1610612738, 0, -851922, 1610612738, 0, -851921, 1610612738, 0, -851920, 1610612736, 0, -851919, 1610612738, 0, -851918, 1610612738, 0, -851917, 1610612738, 0, -851916, 1610612738, 0, -851915, 1610612738, 0, -851914, 1610612736, 0, -851913, 1610612738, 0, -851912, 1610612738, 0, -851911, 1610612738, 0, -851910, 1610612738, 0, -851909, 1610612738, 0, -851908, 1610612736, 0, -851907, 3, 0, -851906, 3, 0, -851905, 1073741827, 0, -851904, 1073741827, 0, -720903, -536870909, 0, -720902, -1610612734, 0, -786371, -1073741822, 0, -786370, -2147483645, 0, -786369, -536870909, 0, -786368, 1073741827, 0, -655367, -536870909, 0, -655366, -1610612734, 0, -720835, -1073741822, 0, -720834, -2147483645, 0, -720833, -536870909, 0, -720832, 1073741827, 0, -589831, -536870909, 0, -589830, -1610612734, 0, -655299, -1073741822, 0, -655298, -2147483645, 0, -655297, -536870909, 0, -655296, 1073741827, 0, -524295, -536870909, 0, -524294, -1610612734, 0, -589763, -1073741822, 0, -589762, -2147483645, 0, -589761, -536870909, 0, -589760, 1073741827, 0, -458759, -536870909, 0, -458758, -1610612734, 0, -524227, -1073741822, 0, -524226, -2147483645, 0, -524225, -536870909, 0, -524224, 1073741827, 0, -393223, -536870909, 0, -393222, -1610612734, 0, -458691, 1073741831, 0, -458690, 1073741826, 0, -458689, 1073741826, 0, -458688, 1610612739, 0, -327687, -536870909, 0, -327686, -1610612734, 0, -393152, -2147483646, 0, -262151, -536870909, 0, -262150, -1610612734, 0, -327616, -2147483646, 0, -196615, -536870909, 0, -196614, -1610612734, 0, -262088, 8, 0, -262087, 2, 0, -262086, 2, 0, -262085, 2, 0, -262084, 2, 0, -262083, 2, 0, -262082, 536870914, 0, -262081, 536870914, 0, -262080, 1610612739, 0, -131079, -536870909, 0, -131078, -1610612734, 0, -196595, 7, 0, -196594, 1610612743, 0, -196568, 8, 0, -196567, 2, 0, -196566, 2, 0, -196565, 2, 0, -196564, 2, 0, -196563, 2, 0, -196562, 536870920, 0, -196559, 2, 0, -196556, 7, 0, -196555, 2, 0, -196554, 2, 0, -196553, 2, 0, -196552, 1610612739, 0, -196551, 1610612739, 0, -196550, 1610612739, 0, -196549, 536870915, 0, -196548, 1610612739, 0, -196547, 3, 0, -196546, 3, 0, -196545, 536870915, 0, -196544, 536870915, 0, -65543, -536870909, 0, -65542, -1610612734, 0, -131064, 8, 0, -131063, -1610612729, 0, -131054, 7, 0, -131053, 2, 0, -131052, 0, 0, -131051, 536870919, 0, -131034, 7, 0, -131033, 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, 3, 0, -131015, 1610612739, 0, -131014, 1610612739, 0, -131013, 536870915, 0, -131012, 1610612739, 0, -131011, 3, 0, -131010, 3, 0, -131009, 536870915, 0, -131008, 536870915, 0, -7, -536870909, 0, -6, -1610612734, 0, -65532, 7, 0, -65531, 2, 0, -65530, 2, 0, -65529, 2, 0, -65528, 1610612739, 0, -65527, 1610612739, 0, -65526, -1610612729, 0, -65519, 7, 0, -65518, 1610612739, 0, -65517, 1610612739, 0, -65516, 1610612739, 0, -65515, -1610612734, 0, -65514, 4, 0, -65500, 7, 0, -65499, 2, 0, -65498, 3, 0, -65497, 3, 0, -65496, 3, 0, -65495, 1610612739, 0, -65494, 1610612739, 0, -65493, 3, 0, -65492, 1610612739, 0, -65491, 1610612739, 0, -65490, 3, 0, -65489, 2, 0, -65488, 2, 0, -65487, 2, 0, -65486, 2, 0, -65485, 2, 0, -65484, 1610612739, 0, -65483, 536870915, 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, -65473, 536870915, 0, -65472, 536870915, 0, 65529, 3, 0, 65530, 3, 0, 65531, 2, 0, 65532, 0, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 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, 3, 0, 9, 1610612739, 0, 10, 1610612739, 0, 11, 2, 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, 3, 0, 21, 3, 0, 22, 2, 0, 23, 2, 0, 24, 2, 0, 25, 2, 0, 26, 0, 0, 27, 536870919, 0, 30, 7, 0, 31, 2, 0, 32, 2, 0, 33, 2, 0, 34, 0, 0, 35, 2, 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, 536870915, 0, 60, 1610612739, 0, 61, 1610612739, 0, 62, 536870913, 0, 63, 536870915, 0, 64, 536870915, 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, 1, 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, 1, 0, 65557, 3, 0, 65558, 3, 0, 65559, 3, 0, 65560, 3, 0, 65561, 3, 0, 65562, 3, 0, 65563, 3, 0, 65564, 2, 0, 65565, 2, 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, 1, 0, 65577, 3, 0, 65578, 3, 0, 65579, 3, 0, 65580, 3, 0, 65581, 3, 0, 65582, 1, 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, 65599, 536870915, 0, 65600, 536870915, 0 ) [node name="Spikes" parent="TileMap" instance=ExtResource( 3 )] position = Vector2( 708, 12 ) @@ -142,36 +138,6 @@ script = ExtResource( 10 ) position = Vector2( 1488, -120 ) next_scene = ExtResource( 4 ) -[node name="LightTest" type="Node2D" parent="."] -visible = false -position = Vector2( -42, -84 ) -z_index = 1 -script = ExtResource( 8 ) - -[node name="Screen" type="TextureRect" parent="LightTest"] -margin_left = -9.0 -margin_top = -174.0 -margin_right = 91.0 -margin_bottom = -74.0 -rect_scale = Vector2( 3, 3 ) -texture = SubResource( 5 ) -expand = true -flip_v = true - -[node name="Viewport" type="Viewport" parent="LightTest"] -size = Vector2( 100, 100 ) -own_world = true -hdr = false -usage = 0 - -[node name="Emitter" type="Sprite" parent="LightTest/Viewport"] -texture = ExtResource( 9 ) -offset = Vector2( 50, 75 ) - -[node name="Occluder" type="Sprite" parent="LightTest/Viewport"] -position = Vector2( 50, 25 ) -texture = ExtResource( 9 ) - [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/02 Level.tscn b/src/Levels/02 Level.tscn index 41525b4..0d76cfa 100644 --- a/src/Levels/02 Level.tscn +++ b/src/Levels/02 Level.tscn @@ -79,6 +79,12 @@ wait_time = 20.0 [node name="BlobbyCam" parent="." instance=ExtResource( 12 )] +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 10 + +[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] +frame = 1 + [node name="Blobby" parent="." instance=ExtResource( 2 )] unique_name_in_owner = true position = Vector2( 36, -24 ) diff --git a/src/Levels/Emitter.gd b/src/Levels/Emitter.gd new file mode 100644 index 0000000..9fcb7fa --- /dev/null +++ b/src/Levels/Emitter.gd @@ -0,0 +1,7 @@ +extends Sprite + + +export var color := Color("#f31333") +export var radius := 128 +export (float, 0.0, 1.0, 0.05) var strength := 1.0 + diff --git a/src/Levels/The Line Level.tscn b/src/Levels/The Line Level.tscn index 37ea9e2..7c18304 100644 --- a/src/Levels/The Line Level.tscn +++ b/src/Levels/The Line Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=13 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] @@ -6,7 +6,6 @@ [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] @@ -32,6 +31,16 @@ margin_top = 0.456848 margin_right = 3.15375 margin_bottom = 0.456848 +[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, -1610612732, 0, 260, -1073741820, 0, 65536, -1610612732, 0, 65796, -1073741820, 0, 131072, -1610612732, 0, 131332, -1073741820, 0, 196608, -1610612732, 0, 196638, -1073741822, 0, 196868, -1073741820, 0, 327678, -1610612734, 0, 262144, -1610612732, 0, 262174, -1073741822, 0, 262404, -1073741820, 0, 393214, -1610612734, 0, 327680, -1610612732, 0, 327710, -1073741822, 0, 327940, -1073741820, 0, 458750, -1610612734, 0, 393216, -1610612732, 0, 393246, -1073741822, 0, 393476, -1073741820, 0, 524286, -1610612734, 0, 458752, -1610612732, 0, 458782, -1073741822, 0, 459012, -1073741820, 0, 589822, -1610612734, 0, 524288, -1610612732, 0, 524318, -1073741822, 0, 524548, -1073741820, 0, 655358, -1610612734, 0, 589824, -1610612732, 0, 589854, -1073741822, 0, 590084, -1073741820, 0, 720894, -1610612734, 0, 655360, -1610612732, 0, 655390, -1073741822, 0, 655620, -1073741820, 0, 786430, -1610612734, 0, 720896, -1610612732, 0, 720926, -1073741822, 0, 721156, -1073741820, 0, 851966, -1610612734, 0, 786432, -1610612732, 0, 786462, -1073741822, 0, 786692, -1073741820, 0, 917502, -1610612734, 0, 851968, -1610612732, 0, 851998, -1073741822, 0, 852228, -1073741820, 0, 983038, 3, 0, 983039, 2, 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, 2, 0, 917514, 2, 0, 917515, 2, 0, 917516, 2, 0, 917517, 2, 0, 917518, 2, 0, 917519, 2, 0, 917520, 2, 0, 917521, 2, 0, 917522, 2, 0, 917523, 2, 0, 917524, 2, 0, 917525, 2, 0, 917526, 2, 0, 917527, 2, 0, 917528, 2, 0, 917529, 2, 0, 917530, 2, 0, 917531, 2, 0, 917532, 2, 0, 917533, 2, 0, 917534, -1073741821, 0, 917535, 4, 0, 917536, 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="BlobbyCam" parent="." instance=ExtResource( 11 )] [node name="Blobby" parent="." instance=ExtResource( 4 )] @@ -42,6 +51,9 @@ scale = Vector2( 0.878906, 0.936025 ) [node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 4 ) +[node name="WhatAreFrog" parent="." instance=ExtResource( 12 )] +position = Vector2( 622, 323 ) + [node name="Collectibles" type="Node2D" parent="."] visible = false @@ -75,16 +87,6 @@ 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, -1610612732, 0, 260, -1073741820, 0, 65536, -1610612732, 0, 65569, 2, 0, 65796, -1073741820, 0, 131072, -1610612732, 0, 131105, 2, 0, 131332, -1073741820, 0, 196608, -1610612732, 0, 196641, 2, 0, 196868, -1073741820, 0, 262144, -1610612732, 0, 262177, 2, 0, 262404, -1073741820, 0, 327680, -1610612732, 0, 327713, 2, 0, 327940, -1073741820, 0, 393216, -1610612732, 0, 393249, 2, 0, 393476, -1073741820, 0, 458752, -1610612732, 0, 458785, 2, 0, 459012, -1073741820, 0, 524288, -1610612732, 0, 524321, 2, 0, 524548, -1073741820, 0, 589824, -1610612732, 0, 589857, 2, 0, 590084, -1073741820, 0, 655360, -1610612732, 0, 655393, 2, 0, 655620, -1073741820, 0, 720896, -1610612732, 0, 720929, 2, 0, 721156, -1073741820, 0, 786432, -1610612732, 0, 786465, 2, 0, 786692, -1073741820, 0, 851968, -1610612732, 0, 852001, 2, 0, 852228, -1073741820, 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 ) @@ -114,226 +116,6 @@ 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 - -[node name="WhatAreFrog" parent="." instance=ExtResource( 12 )] -position = Vector2( 622, 323 ) - [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"] diff --git a/src/NeutralObjects/Coin.tscn b/src/NeutralObjects/Coin.tscn index 1e1f2e6..ed8413a 100644 --- a/src/NeutralObjects/Coin.tscn +++ b/src/NeutralObjects/Coin.tscn @@ -407,7 +407,7 @@ position = Vector2( 0, -2.52127 ) scale = Vector2( 0.149428, 0.151196 ) frames = SubResource( 4 ) animation = "rotate" -frame = 176 +frame = 243 playing = true [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/src/ObstacleObjects/Spikes.tscn b/src/ObstacleObjects/Spikes.tscn index cec4305..5ea2f93 100644 --- a/src/ObstacleObjects/Spikes.tscn +++ b/src/ObstacleObjects/Spikes.tscn @@ -48,5 +48,5 @@ animations = [ { [node name="AnimatedSprite" type="AnimatedSprite" parent="."] frames = SubResource( 1 ) -frame = 9 +frame = 19 playing = true diff --git a/src/UserInterface/Screens/HUD.tscn b/src/UserInterface/Screens/HUD.tscn index 43d45de..e94556d 100644 --- a/src/UserInterface/Screens/HUD.tscn +++ b/src/UserInterface/Screens/HUD.tscn @@ -54,6 +54,7 @@ color = Color( 0, 0, 0, 0 ) [node name="Score" type="Label" parent="HUDOverlay"] unique_name_in_owner = true +visible = false anchor_left = 1.0 anchor_right = 1.0 margin_left = -96.0001