feat: Portal design overhaul

This commit is contained in:
Jakob Feldmann 2023-09-25 19:26:29 +02:00
parent bb13843578
commit 5c988c51aa
22 changed files with 118 additions and 155 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -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

View File

@ -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 ]]

View File

@ -17,3 +17,4 @@ shape = SubResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
hframes = 4

View File

@ -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

View File

@ -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

View File

@ -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="."]

View File

@ -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 )]

View File

@ -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="."]

View File

@ -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 )]

View File

@ -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 )

View File

@ -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="."]

View File

@ -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 )]

View File

@ -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"]

View File

@ -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 )

View File

@ -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 )

View File

@ -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

View File

@ -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

View File

@ -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()