From 5c988c51aa8494f95b7be54b06d03a873679a4da Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Mon, 25 Sep 2023 19:26:29 +0200 Subject: [PATCH] feat: Portal design overhaul --- assets/contraption/Gate.aseprite | Bin 1231 -> 1260 bytes assets/contraption/Gate.png | Bin 338 -> 530 bytes assets/contraption/PortalTerminal.aseprite | Bin 0 -> 3059 bytes assets/contraption/PortalTerminal.png | Bin 0 -> 1040 bytes assets/contraption/PortalTerminal.png.import | 35 ++++++ src/Actors/Blobby/Blobby.tscn | 4 +- src/Contraptions/GateBlock.tscn | 1 + src/Contraptions/Triggers/ElevatorButton.gd | 9 +- src/Contraptions/Triggers/ElevatorButton.tscn | 110 +++++------------- src/Levels/Level 0.2.tscn | 11 +- src/Levels/Level 0.3.tscn | 11 +- src/Levels/Level 0.4.tscn | 11 +- src/Levels/Level 0.5.tscn | 11 +- src/Levels/Level 0.6.tscn | 14 +-- src/Levels/Level 1.tscn | 13 +-- src/Levels/Level 2.tscn | 14 +-- src/Levels/Level 3.tscn | 16 +-- src/Levels/Level 4.tscn | 3 + src/Platforms/FlyingLaserCutter.tscn | 6 +- src/Sounds/default_bus_layout.tres | 2 +- src/UserInterface/Screens/HUD.gd | 1 + src/Utilities/SignalManager.gd | 1 + 22 files changed, 118 insertions(+), 155 deletions(-) create mode 100644 assets/contraption/PortalTerminal.aseprite create mode 100644 assets/contraption/PortalTerminal.png create mode 100644 assets/contraption/PortalTerminal.png.import diff --git a/assets/contraption/Gate.aseprite b/assets/contraption/Gate.aseprite index 5c49ec0662afbfb5767bf44f78a2adcb130ed842..b9641ac2959bbe5ec5cbba07d3184151f22f0918 100644 GIT binary patch delta 314 zcmX@l`G%A6%|ym}#wi;cpEEJ8nViWiT_1ee>`#8q%OCf(RbJK?g&qF?zh35mNymD& zDaHm{f9F4a!5r4yt{ zm5jgNYqjtjiMuH8=3m10q<)57&A;Z8%CFtal+XOV@rQl!#IMS~c_ZbX)qmO0Jd^)3 zx7l~4#v>E2HW-}vZ(!yj!*Da}%h@&t28LfB85vT5G$Rm~P3B?Ij{g6cVVPsigdI~C z^GirOUp;8BNy4r&>C0my;g;R%>)jtNe$BkI^z*syh_fu6#te);yf^B@6{{ScHD$1= zFa$AwviFhaU|^We-(2a0X1>wneijwk|MKhxZ&{x(GgKsVUlafZ delta 285 zcmaFEd7hK;{6xlj#_ElY&zTq}PtIhPt~cIR@+Y6?NSvbQ|H+%B{{27oi0QI|oyVP1 z7ukDy7rsi6h~$}XWB99ZCg-8MldmuSaPe#7on4jBUDu=?I+B>>V8YXUhV|l!w5BT! zfA}xApI`gpolCj0*>2-Px$%t=H+R9J;$WFP?4v7cmX7}!7#OhXfBE!2!`b8e@#=>GuaKnw==!&(e*XB1 zBF@gi&G6>cQ-T3t<>>RDfq?<5{+~a-5*+}v0!)MyeEas9A`8$xKG*=k0N~={rN{zy z4sMF{(;5(!0${O-?ipeN=jV^FIQ0*Pz#$j_sTp+)3=9az!swqrz7mx^BBJte>K_c* zgJ1yMxPFnLp`Ue~snA-ifa`gFcZ0Y!a^UjO^ z|Nn9Lzj^1y|HhV%|JAe&|C3@CvVK~*msCKo4p!4P{4XLVjWxf1{`7%hJ7BN_7D5V; zOM3KD`|qE>)OQh`0ZG*$0|Ns}VMb{qX)pkyQovxSuW1Dcrhw?ULU^5xoD$eMxG8QW z4hBF}I{?<0fdN=xM8_4<%whBb1hc@|)B6}07!WPG5~oQFJ^LW+8`m$=&}sAm0Lyjf Uq=aB1I#);@>O5!>5;jmz3a?OnCa@^Zdrf#)r@Q z*K0g_BXftxzP=_kK`Dh{ms^R$1%@)dyi+_sem>T|Bl@CkV{w77nSzoQzpHUio21W$ z2I=eiMkXdc4ZE2veWaw+3=D*g8ai7yK0JKeVw{oK=y*}f?3<25HbsaEhL-!rBMgCZpxs3m~H}{w3+?#vu z_xpO!HCPk!@N-MT%eND_|c8=tV~AhE+f7hA0bAyazx%&croup9@QnVE9dbZr<| z!SMea**NPAAy!r|n+dVETMCA9+`v?h7x)FU2JBn!0!~R5f|C_1LGyPJl%{Y{^J@}V zqT2w*U+01LW!|8}q4l6^bSSulVd!`Oz0y6QjgFW0f{dmEtTgFBGd4n|4PS#(noHnV zSs^$gNd>QNDF)>sAA#ZiF`%n+0O-8R0rc~92U8;GTvud#Pz_Md>M!7f^+$D$tBZFy*u&^-tJ2DdF z^Xc>VI?!Ad%a(y@wzgo~W@7F`YZe4W^3fRTLRTmXEukXxL(4%krf_tELeK`PKo2MZ z4M0EKLp-cg#vF2giW^YmhU~laR2$V zp8#Gg83H{lVqWmqO&p0MNh@hD}!ZwVes4AKkc6qIXbuto7HWd&lU1Sy8m# zCbd$Voz=ajG}*B;cG^M5<;Q7!rVl1cb>p4dd{M({X;Jorpt#T)HE;a%JsbJe7H4mb zoi3&}n=`DwbhB`!IOe?qL*8Wi&D?=@+48YtO$i*IpKdjWuG6T`N$y!{k-aH@{}Jm-KAQ9g5`_m{ literal 0 HcmV?d00001 diff --git a/assets/contraption/PortalTerminal.png b/assets/contraption/PortalTerminal.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d3a1ac83bf2e15ccb820bad61d61f97b168a9d GIT binary patch literal 1040 zcmV+r1n>KaP)001Be1^@s6m49>f00001b5ch_0Itp) z=>Px&%1J~)RCt{2oV{+_Fc8PjMw+O~5KV%DB0>QnfQkx1R|7#yi1MFoIF+M{~9i=)wK zon_gRf}$vb>2#{)5#L^Z>4FOPJP(2(;OBXsw>nSLwAKmY+sp5p;Ev-+j^%mY_#A)7 zBihQc3`V2TT5UA(?d9_TRN;8jd_D&NkfK_rAP7oM;k}|g(;tEOcJljGaIqKUc`gA| zht#1LCE7AML414pJph2gV6avztyU{otyU$2+sI@$NfP2)&OZ<=WBs#JSTy#PN2SHGo z&=TJ+{(QI1H3R#opCZ2?{{H!sTX|R4n6a(+rAM%sBs4fY9 zDSTCT!}Cu0H^2YL1s(Dyw>`KB|4P><>+Z{Ddsobn)S!K+d|hYglHXL%#eenfW+#3r2Na`J>;WbxzGlA~Ie@n7R^;3AFE5k5 z@)y^|UioeG9Q^yw$2;-0%P=OzaSZ7!g~f35$Q8A?F5vJX5#Dtfpb5W}19r$aJ%+pD zgXS@O{PwgH{y0rx!j1soR4ThZ#ZWeMD9pk{ z6~$(Rz-hawp)ZZE24UBH*du?;*h3IL3WKjLU)m9iYO*1bF(#es5>MQasMlm`+u7&@MV*+L=py`}hX{o9{KVER&*D+{qfpacP<^9#QH?D`}b< zzXyn-2$CcL;@i#d0{~2?(_R!srAoSGD0000< KMNUMnLSTZUaRCDW literal 0 HcmV?d00001 diff --git a/assets/contraption/PortalTerminal.png.import b/assets/contraption/PortalTerminal.png.import new file mode 100644 index 0000000..f39ab1f --- /dev/null +++ b/assets/contraption/PortalTerminal.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/PortalTerminal.png-3e32eaa7e1e81c8ff535b44343571884.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/contraption/PortalTerminal.png" +dest_files=[ "res://.import/PortalTerminal.png-3e32eaa7e1e81c8ff535b44343571884.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/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 33c8be5..4bd6b5c 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -4385,7 +4385,7 @@ texture = SubResource( 62 ) offset = Vector2( 1, 0 ) hframes = 6 vframes = 6 -frame = 6 +frame = 7 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" } @@ -4572,5 +4572,5 @@ one_shot = true [connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"] [connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"] [connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"] -[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real" binds= [ -1 ]] [connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"] +[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real" binds= [ -1 ]] diff --git a/src/Contraptions/GateBlock.tscn b/src/Contraptions/GateBlock.tscn index a6fa32a..136c9ab 100644 --- a/src/Contraptions/GateBlock.tscn +++ b/src/Contraptions/GateBlock.tscn @@ -17,3 +17,4 @@ shape = SubResource( 1 ) [node name="Sprite" type="Sprite" parent="."] texture = ExtResource( 1 ) +hframes = 4 diff --git a/src/Contraptions/Triggers/ElevatorButton.gd b/src/Contraptions/Triggers/ElevatorButton.gd index 85b1c38..09d14c7 100644 --- a/src/Contraptions/Triggers/ElevatorButton.gd +++ b/src/Contraptions/Triggers/ElevatorButton.gd @@ -13,6 +13,11 @@ var activatable = false func _ready() -> void: get_back_timer.wait_time = elevator_time + $Label.text = String(elevator_time) + signal_manager.connect("remaining_time_changed", self, "update_label") + +func update_label(remaining_time: float) -> void: + $Label.text = String(round(remaining_time)) func _input(event: InputEvent) -> void: if activatable && Input.is_action_just_released("interact"): @@ -22,7 +27,6 @@ func _input(event: InputEvent) -> void: func selfActivate(): - indicatorPlayer.play("onning") buttonPlayer.play("pushing") #TODO dis importante activatorArea.set_deferred("monitoring", false) @@ -30,8 +34,6 @@ func selfActivate(): func _on_ActivatorArea_area_entered(area:Area2D) -> void: - $Label.visible = true - $Label.text = " Time: " + String(elevator_time) + " sec" $Highlight.visible = true activatable = true @@ -42,7 +44,6 @@ func _on_Timer_timeout() -> void: for body in activatorArea.get_overlapping_bodies(): if body.is_in_group("player"): return - $Label.visible = false $Highlight.visible = false activatable = false diff --git a/src/Contraptions/Triggers/ElevatorButton.tscn b/src/Contraptions/Triggers/ElevatorButton.tscn index e3ca0a7..e5fc7e4 100644 --- a/src/Contraptions/Triggers/ElevatorButton.tscn +++ b/src/Contraptions/Triggers/ElevatorButton.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.gd" type="Script" id=1] -[ext_resource path="res://assets/contraption/button.png" type="Texture" id=2] -[ext_resource path="res://assets/contraption/buttonStateIndicator.png" type="Texture" id=3] +[ext_resource path="res://assets/contraption/PortalTerminal.png" type="Texture" id=2] [ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=4] [ext_resource path="res://assets/music/Hurry! (LOOP).wav" type="AudioStream" id=5] @@ -12,8 +11,8 @@ colors = PoolColorArray( 1, 1, 1, 0.752941, 0, 0, 0, 0 ) [sub_resource type="GradientTexture2D" id=22] gradient = SubResource( 23 ) -width = 50 -height = 30 +width = 96 +height = 96 use_hdr = true fill = 1 fill_from = Vector2( 0.5, 0.5 ) @@ -29,49 +28,18 @@ tracks/0/loop_wrap = false tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 0.2, 0.4 ), -"transitions": PoolRealArray( 1, 1, 1 ), +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 1, -"values": [ 0.0, 1.0, 2.0 ] +"values": [ 0, 1.0, 2.0, 3, 4 ] } -[sub_resource type="Animation" id=20] -length = 0.1 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = false -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 0.0 ] -} - -[sub_resource type="Animation" id=13] -resource_name = "onning" -length = 0.6 -tracks/0/type = "value" -tracks/0/path = NodePath(".:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = false -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 0.2, 0.3, 0.5 ), -"transitions": PoolRealArray( 1, 1, 1, 1 ), -"update": 1, -"values": [ 7.0, 8.0, 6.0, 4.0 ] -} - -[sub_resource type="CircleShape2D" id=18] -radius = 18.0 +[sub_resource type="RectangleShape2D" id=24] +extents = Vector2( 20, 20 ) [node name="ElevatorButton" type="Node2D"] scale = Vector2( 2, 2 ) -z_index = 2 +z_index = -1 script = ExtResource( 1 ) elevator_time = 3 @@ -81,33 +49,16 @@ anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -margin_left = -24.5 -margin_top = -18.5 -margin_right = 25.5 -margin_bottom = 31.5 +margin_left = -47.5 +margin_top = -54.5 +margin_right = 48.5 +margin_bottom = 41.5 texture = SubResource( 22 ) -[node name="Label" type="Label" parent="."] -visible = false -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -17.0 -margin_top = -23.0 -margin_right = 60.0 -margin_bottom = -9.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -custom_fonts/font = ExtResource( 4 ) -text = "Time: 999sec" -align = 1 -valign = 1 - [node name="Button" type="Sprite" parent="."] position = Vector2( 0, -6 ) texture = ExtResource( 2 ) -hframes = 2 -vframes = 2 +hframes = 5 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PVNwcml0ZS9BbmltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvbmV1dHJhbCBvYmplY3QvYnV0dG9uLmFzZXByaXRlCmxheWVyfD0Kb3BfZXhwfD1GYWxzZQpvX2ZvbGRlcnw9Cm9fbmFtZXw9Cm9ubHlfdmlzaWJsZXw9RmFsc2UKb19leF9wfD0K" } @@ -116,20 +67,20 @@ __meta__ = { unique_name_in_owner = true anims/pushing = SubResource( 2 ) -[node name="Indicator" type="Sprite" parent="."] -position = Vector2( 0, -1 ) -z_index = 1 -texture = ExtResource( 3 ) -hframes = 3 -vframes = 3 -__meta__ = { -"_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUluZGljYXRvcjIvQW5pbWF0aW9uUGxheWVyCnNvdXJjZXw9cmVzOi8vYXNzZXRzL25ldXRyYWwgb2JqZWN0L2J1dHRvblN0YXRlSW5kaWNhdG9yLmFzZXByaXRlCmxheWVyfD0Kb3BfZXhwfD1GYWxzZQpvX2ZvbGRlcnw9Cm9fbmFtZXw9Cm9ubHlfdmlzaWJsZXw9RmFsc2UKb19leF9wfD0K" -} - -[node name="IndicatorPlayer" type="AnimationPlayer" parent="Indicator"] -unique_name_in_owner = true -anims/offing = SubResource( 20 ) -anims/onning = SubResource( 13 ) +[node name="Label" type="Label" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -9.0 +margin_top = -13.0 +margin_right = 22.0 +margin_bottom = -1.0 +rect_scale = Vector2( 0.590909, 0.627907 ) +custom_fonts/font = ExtResource( 4 ) +text = "70" +align = 1 +valign = 1 [node name="ActivatorArea" type="Area2D" parent="."] unique_name_in_owner = true @@ -140,8 +91,7 @@ monitorable = false [node name="ActivatorAreaShape" type="CollisionShape2D" parent="ActivatorArea"] unique_name_in_owner = true -position = Vector2( 0, 3 ) -shape = SubResource( 18 ) +shape = SubResource( 24 ) [node name="Timer" type="Timer" parent="."] wait_time = 0.333 diff --git a/src/Levels/Level 0.2.tscn b/src/Levels/Level 0.2.tscn index 612dc48..5a7ba26 100644 --- a/src/Levels/Level 0.2.tscn +++ b/src/Levels/Level 0.2.tscn @@ -1147,9 +1147,6 @@ unique_name_in_owner = true position = Vector2( -156, -51 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="BlobbySprite" parent="Blobby" index="5"] -frame = 6 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) parameters/jumpStretching/blend_position = 1 @@ -1181,12 +1178,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 11 )] -position = Vector2( 1440, -64 ) +position = Vector2( 1440, -76 ) +scale = Vector2( 1, 1 ) elevator_time = 5 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )] -position = Vector2( 112, -8 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 7 )] +position = Vector2( 1664, -80 ) next_scene = "res://src/Levels/Level 0.3.tscn" [node name="Obstacles" type="Node2D" parent="."] diff --git a/src/Levels/Level 0.3.tscn b/src/Levels/Level 0.3.tscn index 4ac26c6..c570229 100644 --- a/src/Levels/Level 0.3.tscn +++ b/src/Levels/Level 0.3.tscn @@ -236,9 +236,6 @@ unique_name_in_owner = true position = Vector2( -180, 113 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -276,12 +273,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 11 )] -position = Vector2( 366, -288 ) +position = Vector2( 369, -300 ) +scale = Vector2( 1, 1 ) elevator_time = 10 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 9 )] -position = Vector2( 175, 168 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 9 )] +position = Vector2( 716, 48 ) next_scene = "res://src/Levels/Level 0.4.tscn" [node name="FlyingPlatform2" parent="." instance=ExtResource( 15 )] diff --git a/src/Levels/Level 0.4.tscn b/src/Levels/Level 0.4.tscn index 97616bf..4d62188 100644 --- a/src/Levels/Level 0.4.tscn +++ b/src/Levels/Level 0.4.tscn @@ -125,9 +125,6 @@ unique_name_in_owner = true position = Vector2( -70, 1 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="BlobbySprite" parent="Blobby" index="5"] -frame = 5 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -154,12 +151,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 10 )] -position = Vector2( 832, 320 ) +position = Vector2( 832, 310 ) +scale = Vector2( 1, 1 ) elevator_time = 5 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 11 )] -position = Vector2( 0, 24 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 11 )] +position = Vector2( 832, 368 ) next_scene = "res://src/Levels/Level 0.5.tscn" [node name="Obstacles" type="Node2D" parent="."] diff --git a/src/Levels/Level 0.5.tscn b/src/Levels/Level 0.5.tscn index 32b05ff..ff56b78 100644 --- a/src/Levels/Level 0.5.tscn +++ b/src/Levels/Level 0.5.tscn @@ -114,9 +114,6 @@ size_flags_vertical = 3 [node name="UserInterface" parent="." instance=ExtResource( 12 )] unique_name_in_owner = true -[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] -wait_time = 20.0 - [node name="BlobbyCam" parent="." instance=ExtResource( 5 )] unique_name_in_owner = true drag_margin_bottom = 0.3 @@ -158,12 +155,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 7 )] -position = Vector2( 464, -16 ) +position = Vector2( 464, -27 ) +scale = Vector2( 1, 1 ) elevator_time = 10 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 4 )] -position = Vector2( 0, 56 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 4 )] +position = Vector2( 464, 96 ) next_scene = "res://src/Levels/Level 0.6.tscn" [node name="FlyingPlatformSmol" parent="." instance=ExtResource( 10 )] diff --git a/src/Levels/Level 0.6.tscn b/src/Levels/Level 0.6.tscn index 1375b5b..56dccb4 100644 --- a/src/Levels/Level 0.6.tscn +++ b/src/Levels/Level 0.6.tscn @@ -118,9 +118,6 @@ size_flags_vertical = 3 [node name="UserInterface" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true -[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] -wait_time = 20.0 - [node name="BlobbyCam" parent="." instance=ExtResource( 4 )] unique_name_in_owner = true visible = false @@ -132,7 +129,7 @@ position = Vector2( -142, 17 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 8 +frame = 6 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 53 ) @@ -163,13 +160,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 13 )] -position = Vector2( -80, 16 ) +position = Vector2( -96, 6 ) +scale = Vector2( 1, 1 ) elevator_time = 10 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 10 )] -position = Vector2( -40, 40 ) -scale = Vector2( 0.5, 0.5 ) -next_scene = "res://src/Levels/Level 1.tscn" +[node name="Portal" parent="." instance=ExtResource( 10 )] +position = Vector2( -160, 96 ) [node name="Flyer" parent="." instance=ExtResource( 12 )] position = Vector2( -64, 81 ) diff --git a/src/Levels/Level 1.tscn b/src/Levels/Level 1.tscn index 413d2f4..52c2a53 100644 --- a/src/Levels/Level 1.tscn +++ b/src/Levels/Level 1.tscn @@ -117,9 +117,6 @@ size_flags_vertical = 3 [node name="UserInterface" parent="." instance=ExtResource( 3 )] unique_name_in_owner = true -[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] -wait_time = 20.0 - [node name="GateButton" parent="." instance=ExtResource( 19 )] position = Vector2( 128, -25 ) @@ -134,7 +131,7 @@ position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 +frame = 9 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -222,12 +219,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 9 )] -position = Vector2( 112, 128 ) +position = Vector2( 112, 112 ) +scale = Vector2( 1, 1 ) elevator_time = 16 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )] -position = Vector2( -48, -8 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 7 )] +position = Vector2( 16, 112 ) next_scene = "res://src/Levels/Level 2.tscn" [node name="LevelAmbiance" type="AudioStreamPlayer" parent="."] diff --git a/src/Levels/Level 2.tscn b/src/Levels/Level 2.tscn index 9aa240b..b4b0bb6 100644 --- a/src/Levels/Level 2.tscn +++ b/src/Levels/Level 2.tscn @@ -119,9 +119,6 @@ size_flags_vertical = 3 [node name="UserInterface" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true -[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] -wait_time = 20.0 - [node name="Spring" parent="." instance=ExtResource( 19 )] position = Vector2( 1209, -254 ) @@ -134,9 +131,6 @@ unique_name_in_owner = true position = Vector2( -64, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 - [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -190,12 +184,12 @@ cell_size = Vector2( 16, 16 ) format = 1 [node name="ElevatorButton" parent="." instance=ExtResource( 6 )] -position = Vector2( -112, 0 ) +position = Vector2( -112, -10 ) +scale = Vector2( 1, 1 ) elevator_time = 30 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )] -position = Vector2( -60, -8 ) -scale = Vector2( 0.5, 0.5 ) +[node name="Portal" parent="." instance=ExtResource( 7 )] +position = Vector2( -232, -16 ) next_scene = "res://src/Levels/Level 3.tscn" [node name="FlyingLaserCutter" parent="." instance=ExtResource( 18 )] diff --git a/src/Levels/Level 3.tscn b/src/Levels/Level 3.tscn index aa114bf..f5fb4d3 100644 --- a/src/Levels/Level 3.tscn +++ b/src/Levels/Level 3.tscn @@ -179,9 +179,6 @@ size_flags_vertical = 3 [node name="UserInterface" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true -[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] -wait_time = 20.0 - [node name="BlobbyCam" parent="." instance=ExtResource( 3 )] unique_name_in_owner = true drag_margin_top = 0.12 @@ -193,11 +190,11 @@ margin_right = 565.0 [node name="Blobby" parent="." instance=ExtResource( 5 )] unique_name_in_owner = true -position = Vector2( -38, 0 ) +position = Vector2( -45, -5.96046e-08 ) scale = Vector2( 0.878906, 0.936025 ) [node name="BlobbySprite" parent="Blobby" index="5"] -frame = 7 +frame = 9 [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) @@ -385,13 +382,12 @@ position = Vector2( 1010, -303 ) position = Vector2( 1124, 242 ) [node name="ElevatorButton" parent="." instance=ExtResource( 4 )] -position = Vector2( -112, 0 ) +position = Vector2( -102, -16 ) +scale = Vector2( 1, 1 ) elevator_time = 70 -[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )] -position = Vector2( 200, -7.5 ) -scale = Vector2( 0.5, 0.5 ) -next_scene = "res://src/Levels/Level 1.tscn" +[node name="Portal" parent="." instance=ExtResource( 7 )] +position = Vector2( 286, -16 ) [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] diff --git a/src/Levels/Level 4.tscn b/src/Levels/Level 4.tscn index a1ebbf4..10d3965 100644 --- a/src/Levels/Level 4.tscn +++ b/src/Levels/Level 4.tscn @@ -116,6 +116,9 @@ unique_name_in_owner = true position = Vector2( -180, 64 ) scale = Vector2( 0.878906, 0.936025 ) +[node name="BlobbySprite" parent="Blobby" index="5"] +frame = 7 + [node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] parameters/playback = SubResource( 6 ) diff --git a/src/Platforms/FlyingLaserCutter.tscn b/src/Platforms/FlyingLaserCutter.tscn index 3000f63..2684ec8 100644 --- a/src/Platforms/FlyingLaserCutter.tscn +++ b/src/Platforms/FlyingLaserCutter.tscn @@ -30,7 +30,7 @@ extents = Vector2( 3.067, 10 ) [sub_resource type="RectangleShape2D" id=5] extents = Vector2( 0.5, 11 ) -[sub_resource type="ShaderMaterial" id=6] +[sub_resource type="ShaderMaterial" id=8] resource_local_to_scene = true shader = ExtResource( 3 ) shader_param/bits = 1.0 @@ -40,7 +40,7 @@ shader_param/wave1 = 1.0 shader_param/wave2 = 0.0 shader_param/wave3 = 0.0 shader_param/wave1_color = Color( 1, 1, 1, 0.764706 ) -shader_param/wave2_color = Color( 0.945098, 0.392157, 0.121569, 0.141176 ) +shader_param/wave2_color = Color( 0.945098, 0.392157, 0.121569, 0.176471 ) shader_param/wave3_color = Color( 0.945098, 0.392157, 0.121569, 1 ) shader_param/wave_frequency = 0.231 shader_param/wave_amplitude = 0.041 @@ -140,7 +140,7 @@ collision_mask = 9 z_index = -1 [node name="Texture" type="Sprite" parent="FlyingLaserCutterBody/TriggerTextures"] -material = SubResource( 6 ) +material = SubResource( 8 ) position = Vector2( 82, 15 ) scale = Vector2( 1, -1 ) texture = ExtResource( 4 ) diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index 7733fda..3abf623 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -41,7 +41,7 @@ resource_name = "LowPassFilter" cutoff_hz = 3000.0 [resource] -bus/0/volume_db = -3.74173 +bus/0/volume_db = inf_neg bus/1/name = "Music" bus/1/solo = false bus/1/mute = false diff --git a/src/UserInterface/Screens/HUD.gd b/src/UserInterface/Screens/HUD.gd index 50fdae8..0f63696 100644 --- a/src/UserInterface/Screens/HUD.gd +++ b/src/UserInterface/Screens/HUD.gd @@ -19,6 +19,7 @@ func _ready(): func _process(delta): if hud_timer.visible: time_label.text = String(round($GetBackTimer/Timer.time_left)) + signal_manager.emit_signal("remaining_time_changed", $GetBackTimer/Timer.time_left) func start_timer(time): hud_timer.visible = true diff --git a/src/Utilities/SignalManager.gd b/src/Utilities/SignalManager.gd index 7ebbe7f..ea99f68 100644 --- a/src/Utilities/SignalManager.gd +++ b/src/Utilities/SignalManager.gd @@ -2,6 +2,7 @@ extends Node signal level_loaded() signal terminal_activated(timer_seconds) +signal remaining_time_changed(remaining_seconds) signal getback_timer_up() signal currency_updated() signal kills_updated()