fix: controll settings focus, less distracting coin

This commit is contained in:
Jakob Feldmann 2023-09-13 15:57:10 +02:00
parent 2d4a883b60
commit 453a705b0d
46 changed files with 1002 additions and 158 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/Spaceship-Wall-Menu.png-6aacac7afef4824c9914684347d2d864.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/background/Spaceship-Wall-Menu.png"
dest_files=[ "res://.import/Spaceship-Wall-Menu.png-6aacac7afef4824c9914684347d2d864.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/grass-roots.png-f055a24e07bc0ff43d5fac7c06fefc15.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/decor/grass-roots.png"
dest_files=[ "res://.import/grass-roots.png-f055a24e07bc0ff43d5fac7c06fefc15.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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/coin_pixelized.png-2e2f5c3d85687ed64d554d977588c605.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/neutral object/coin_pixelized.png"
dest_files=[ "res://.import/coin_pixelized.png-2e2f5c3d85687ed64d554d977588c605.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

Binary file not shown.

View File

@ -0,0 +1,23 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/Short Rising Flutter.wav-7ed9b1c0749f76dbe55692c27d59931e.sample"
[deps]
source_file="res://assets/sounds/Short Rising Flutter.wav"
dest_files=[ "res://.import/Short Rising Flutter.wav-7ed9b1c0749f76dbe55692c27d59931e.sample" ]
[params]
force/8_bit=false
force/mono=true
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View File

@ -233,6 +233,7 @@ up={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777232,"unicode":0,"echo":false,"script":null)
]
}
duck={
@ -240,6 +241,7 @@ duck={
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777234,"unicode":0,"echo":false,"script":null)
]
}
move_left={
@ -247,6 +249,7 @@ move_left={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777231,"unicode":0,"echo":false,"script":null)
]
}
move_right={
@ -254,6 +257,7 @@ move_right={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777233,"unicode":0,"echo":false,"script":null)
]
}
jump={

View File

@ -1,12 +1,12 @@
[gd_scene load_steps=11 format=2]
[gd_scene load_steps=10 format=2]
[ext_resource path="res://assets/neutral object/coin_pixelized.png" type="Texture" id=1]
[ext_resource path="res://src/BenefitialObjects/Coin.gd" type="Script" id=2]
[ext_resource path="res://assets/neutral object/whitegold orbicle/0000 (Klein)-fs8.png" type="Texture" id=13]
[ext_resource path="res://assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav" type="AudioStream" id=316]
[ext_resource path="res://assets/environment/blocks/Empty-Navigation-Tile.png" type="Texture" id=317]
[sub_resource type="CircleShape2D" id=1]
radius = 34.0147
radius = 44.7557
[sub_resource type="Animation" id=2]
resource_name = "fade_out"
@ -43,50 +43,30 @@ resource_name = "oscilating"
length = 2.4
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("AnimatedSprite:position")
tracks/0/interp = 1
tracks/0/path = NodePath("Sprite2:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 0.428, 1.23 ),
"times": PoolRealArray( 0, 1.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector2( 0, 3 ), Vector2( 0, -4 ) ]
"values": [ Vector2( 0, 2.62356 ), Vector2( 0, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("CollisionShape2D:position")
tracks/1/interp = 1
tracks/1/path = NodePath("Sprite:position")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 1.5 ),
"transitions": PoolRealArray( 0.428, 1.23 ),
"update": 0,
"values": [ Vector2( 0, 3 ), Vector2( 0, -4 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("AnimatedSprite:rotation_degrees")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 1.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ -13.5, 13.5 ]
"values": [ Vector2( 0.0564967, 2.37292 ), Vector2( 0.056, 1 ) ]
}
[sub_resource type="SpriteFrames" id=4]
animations = [ {
"frames": [ ExtResource( 13 ) ],
"loop": true,
"name": "still",
"speed": 5.0
} ]
[sub_resource type="Shader" id=5]
code = "shader_type canvas_item;
@ -139,25 +119,23 @@ monitorable = false
script = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 0, 2.62987 )
position = Vector2( 3.8147e-06, 2.49189 )
scale = Vector2( 0.18, 0.18 )
shape = SubResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "oscilating"
anims/fade_out = SubResource( 2 )
anims/oscilating = SubResource( 3 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
position = Vector2( 0, 2.62987 )
rotation = -0.220349
scale = Vector2( 0.036, 0.036 )
frames = SubResource( 4 )
animation = "still"
playing = true
[node name="Sprite2" type="Sprite" parent="."]
position = Vector2( 0, 2.62238 )
scale = Vector2( -0.484, -0.5 )
texture = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
material = SubResource( 6 )
position = Vector2( 0.144981, 2.90382 )
position = Vector2( 0.0564964, 2.37193 )
texture = ExtResource( 317 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]

View File

@ -14,5 +14,5 @@ func _on_SaveArea_area_entered(area: Area2D) -> void:
#TODO Spawnheight fixed
if(!GlobalState.get_savepoint(level_state.levelName) == global_position + Vector2(0,18)):
$AnimationPlayer.play("rolloutflag")
$AudioStreamPlayer.play()
GlobalState.set_savepoint(level_state.levelName, global_position + Vector2(0,18))

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=9 format=2]
[ext_resource path="res://assets/neutral object/blobby1Flag.png" type="Texture" id=1]
[ext_resource path="res://assets/neutral object/flagPoleAndBasePlant.png" type="Texture" id=2]
[ext_resource path="res://src/Environment/FlagMaterial.tres" type="Material" id=3]
[ext_resource path="res://src/BenefitialObjects/SavePoint.gd" type="Script" id=4]
[ext_resource path="res://assets/sounds/Short Rising Flutter.wav" type="AudioStream" id=5]
[sub_resource type="Animation" id=2]
length = 0.001
@ -168,5 +169,8 @@ position = Vector2( -15, 6 )
shape = SubResource( 1 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 5 )
volume_db = -16.836
bus = "Effects"
[connection signal="area_entered" from="SaveArea" to="." method="_on_SaveArea_area_entered"]

View File

@ -11,30 +11,31 @@ var activatable = false
func _process(delta):
# TODO Global currency count?? Maybe just level intern currency
if activatable && Input.is_action_just_released("interact"):
if(level_state.spend_currency(cost)):
signal_manager.emit_signal("currency_updated")
selfActivate()
# TODO Global currency count?? Maybe just level intern currency
if activatable && Input.is_action_just_released("interact"):
if(level_state.spend_currency(cost)):
signal_manager.emit_signal("currency_updated")
selfActivate()
func selfActivate():
#TODO Is a event for blobby himself
#blobby.get_node("BubbleShieldViewport/IridescenceBall").visible = true
signal_manager.emit_signal("power_up_collected", "shield")
#TODO dis importante
activatorArea.set_deferred("monitoring", false)
#TODO Is a event for blobby himself
#blobby.get_node("BubbleShieldViewport/IridescenceBall").visible = true
signal_manager.emit_signal("power_up_collected", "shield")
$AudioStreamPlayer.play()
#TODO dis importante
activatorArea.set_deferred("monitoring", false)
func _on_ActivatorArea_area_entered(area:Area2D) -> void:
$Label.visible = true
$Highlight.visible = true
activatable = true
$Label.visible = true
$Highlight.visible = true
activatable = true
func _on_ActivatorArea_area_exited(area:Area2D) -> void:
unactivatable_timer.start()
unactivatable_timer.start()
func _on_Timer_timeout():
if($ActivatorArea.get_overlapping_bodies().size() == 0):
$Highlight.visible = false
$Label.visible = false
activatable = false
if($ActivatorArea.get_overlapping_bodies().size() == 0):
$Highlight.visible = false
$Label.visible = false
activatable = false

View File

@ -1,8 +1,9 @@
[gd_scene load_steps=7 format=2]
[gd_scene load_steps=8 format=2]
[ext_resource path="res://assets/contraption/ShieldVendingMachine.png" type="Texture" id=1]
[ext_resource path="res://src/Contraptions/VendingMachine.gd" type="Script" id=2]
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=3]
[ext_resource path="res://assets/sounds/gotShields.wav" type="AudioStream" id=4]
[sub_resource type="Gradient" id=21]
interpolation_mode = 2
@ -63,6 +64,10 @@ shape = SubResource( 1 )
wait_time = 0.333
one_shot = true
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 4 )
volume_db = -18.193
[connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"]
[connection signal="area_exited" from="ActivatorArea" to="." method="_on_ActivatorArea_area_exited"]
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]

View File

@ -2,6 +2,17 @@ shader_type canvas_item;
uniform float displacement_coefficient_x;
void fragment() {
vec4 environment_color = texture(SCREEN_TEXTURE, SCREEN_UV);
vec4 sprite_color = texture(TEXTURE, UV);
float gradient_factor = step(UV.y, 1);
if(sprite_color.a > 0.1){
COLOR = mix(environment_color, sprite_color, gradient_factor);
}
else{
COLOR = sprite_color
}
}
void vertex() {
VERTEX += vec2(displacement_coefficient_x,0.0) * (1.0 - UV.y);

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=2]
[gd_scene load_steps=13 format=2]
[ext_resource path="res://assets/environment/decor/straight_straw.png" type="Texture" id=1]
[ext_resource path="res://src/Environment/Grass/ShaderGrass.gd" type="Script" id=2]
@ -9,6 +9,7 @@
[ext_resource path="res://assets/environment/decor/bent_straw_leftt.png" type="Texture" id=7]
[ext_resource path="res://assets/environment/decor/bent_straw_left_2.png" type="Texture" id=8]
[ext_resource path="res://assets/sounds/grass swish 4.ogg" type="AudioStream" id=9]
[ext_resource path="res://assets/environment/decor/grass-roots.png" type="Texture" id=10]
[sub_resource type="AudioStreamRandomPitch" id=2]
audio_stream = ExtResource( 9 )
@ -76,6 +77,12 @@ polygon = PoolVector2Array( 4.9375, 11.875, 5, 8.8125, 2.8125, 7, -0.375, 4.0625
uv = PoolVector2Array( 4.9375, 11.875, 5, 8.8125, 2.8125, 7, -0.375, 4.0625, 2.25, 1.9375, 4.75, 4.625, 8.0625, 7.9375, 8, 12.0625 )
polygons = [ PoolIntArray( 0, 6, 7 ), PoolIntArray( 0, 1, 6 ), PoolIntArray( 1, 5, 6 ), PoolIntArray( 1, 2, 5 ), PoolIntArray( 2, 4, 5 ), PoolIntArray( 2, 3, 4 ) ]
[node name="Sprite" type="Sprite" parent="."]
visible = false
position = Vector2( 5.00909, 19.9567 )
z_index = -1
texture = ExtResource( 10 )
[node name="Timer" type="Timer" parent="."]
wait_time = 4.0
one_shot = true

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=27 format=2]
[gd_scene load_steps=29 format=2]
[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2]
@ -18,6 +18,46 @@
[ext_resource path="res://assets/effects/noise.png" type="Texture" id=17]
[ext_resource path="res://src/ObstacleObjects/Mine.tscn" type="PackedScene" id=18]
[sub_resource type="Shader" id=15]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=16]
shader = SubResource( 15 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="ShaderMaterial" id=11]
resource_local_to_scene = true
shader = ExtResource( 16 )
@ -161,6 +201,18 @@ unique_name_in_owner = true
[node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
wait_time = 20.0
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 16 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="Tutorials" type="Node2D" parent="."]
position = Vector2( 0, -2.27374e-13 )
@ -225,7 +277,7 @@ position = Vector2( -70, 1 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 5
frame = 6
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 14 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=61 format=2]
[gd_scene load_steps=63 format=2]
[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1]
[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=2]
@ -22,6 +22,46 @@
[ext_resource path="res://assets/obstacle object/SpikyMinePlant.png" type="Texture" id=21]
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=22]
[sub_resource type="Shader" id=15]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=51]
shader = SubResource( 15 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="TileSet" id=5]
@ -47,7 +87,7 @@
0/shapes = [ ]
0/z_index = 0
[sub_resource type="Shader" id=15]
[sub_resource type="Shader" id=52]
code = "shader_type canvas_item;
uniform sampler2D noise_tex_normal;
@ -96,7 +136,7 @@ void fragment() {
[sub_resource type="ShaderMaterial" id=48]
resource_local_to_scene = true
shader = SubResource( 15 )
shader = SubResource( 52 )
shader_param/progress = 0.0
shader_param/scale = 1.0
shader_param/strength = 0.1
@ -1082,6 +1122,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 9 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 51 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 5 )]
unique_name_in_owner = true
@ -1099,7 +1151,7 @@ position = Vector2( -156, -51 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 7
frame = 8
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 6 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=26 format=2]
[gd_scene load_steps=28 format=2]
[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=1]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=2]
@ -20,6 +20,46 @@
[ext_resource path="res://src/UserInterface/TutorialComboThingy.tscn" type="PackedScene" id=18]
[ext_resource path="res://assets/effects/noise.png" type="Texture" id=19]
[sub_resource type="Shader" id=17]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=18]
shader = SubResource( 17 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="TileSet" id=5]
@ -172,6 +212,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 18 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true
@ -187,9 +239,6 @@ unique_name_in_owner = true
position = Vector2( -180, 113 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 10
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 6 )
@ -288,6 +337,7 @@ material = SubResource( 16 )
position = Vector2( 111, 76 )
[node name="Decor" type="Node2D" parent="."]
z_index = 1
[node name="ShaderGrass" parent="Decor" instance=ExtResource( 3 )]
position = Vector2( -61, 100 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=2]
[gd_scene load_steps=25 format=2]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1]
[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=19]
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=21]
[sub_resource type="Shader" id=7]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=8]
shader = SubResource( 7 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="TileSet" id=5]
@ -61,6 +101,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 6 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 8 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true
@ -76,9 +128,6 @@ unique_name_in_owner = true
position = Vector2( -70, 1 )
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 )
@ -152,10 +201,10 @@ position = Vector2( 368, 233 )
position = Vector2( 216, 223 )
[node name="GateBlock" parent="." instance=ExtResource( 14 )]
position = Vector2( 788, 372 )
position = Vector2( 804, 376 )
[node name="GateBlock2" parent="." instance=ExtResource( 14 )]
position = Vector2( 788, 348 )
position = Vector2( 804, 360 )
[node name="FlyingLaserCutter" parent="." instance=ExtResource( 19 )]
position = Vector2( 663, 256 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=2]
[gd_scene load_steps=22 format=2]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1]
[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2]
@ -17,6 +17,46 @@
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=16]
[ext_resource path="res://src/Contraptions/VendingMachine.tscn" type="PackedScene" id=19]
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=9]
shader = SubResource( 8 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=7]
[sub_resource type="TileSet" id=5]
@ -59,6 +99,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 9 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true
@ -75,7 +127,7 @@ position = Vector2( -186, 113 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 7
frame = 8
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 7 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=24 format=2]
[gd_scene load_steps=26 format=2]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1]
[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=21]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=22]
[sub_resource type="Shader" id=55]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=56]
shader = SubResource( 55 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=53]
[sub_resource type="TileSet" id=5]
@ -63,6 +103,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 7 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 56 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true
@ -80,7 +132,7 @@ position = Vector2( -142, 17 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 7
frame = 6
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 53 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=26 format=2]
[gd_scene load_steps=28 format=2]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
@ -23,6 +23,46 @@
[ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=21]
[ext_resource path="res://assets/effects/noise.png" type="Texture" id=22]
[sub_resource type="Shader" id=17]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=18]
shader = SubResource( 17 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=1]
[sub_resource type="Shader" id=15]
@ -97,6 +137,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 11 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 18 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 13 )]
unique_name_in_owner = true
@ -112,7 +164,7 @@ position = Vector2( 251, -24 )
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( 1 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=2]
[gd_scene load_steps=25 format=2]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=20]
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=21]
[sub_resource type="Shader" id=7]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=8]
shader = SubResource( 7 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="AnimationNodeStateMachinePlayback" id=5]
@ -41,6 +81,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 3 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 8 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 4 )]
unique_name_in_owner = true
@ -56,6 +108,9 @@ unique_name_in_owner = true
position = Vector2( 3.8147e-06, 144 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 8
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 6 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=22 format=2]
[gd_scene load_steps=24 format=2]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Environment/Legacy/Greenhouse.tscn" type="PackedScene" id=20]
[ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=21]
[sub_resource type="Shader" id=10]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=11]
shader = SubResource( 10 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=9]
[node name="Actual Level 3" type="Node2D"]
@ -39,6 +79,18 @@ visible = false
[node name="LevelState" parent="." instance=ExtResource( 4 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 11 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 6 )]
unique_name_in_owner = true
@ -56,7 +108,7 @@ position = Vector2( -168, 95 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 7
frame = 8
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 9 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=23 format=2]
[gd_scene load_steps=25 format=2]
[ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=1]
[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=19]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=20]
[sub_resource type="Shader" id=7]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=8]
shader = SubResource( 7 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="TileSet" id=5]
@ -60,6 +100,18 @@ __meta__ = {
[node name="LevelState" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 8 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 3 )]
unique_name_in_owner = true
@ -80,7 +132,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 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=24 format=2]
[gd_scene load_steps=26 format=2]
[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=1]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2]
@ -21,6 +21,46 @@
[ext_resource path="res://src/Platforms/Spring/Spring.tscn" type="PackedScene" id=19]
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=20]
[sub_resource type="Shader" id=8]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=9]
shader = SubResource( 8 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="AnimationNodeStateMachinePlayback" id=7]
@ -62,6 +102,18 @@ __meta__ = {
[node name="LevelState" parent="." instance=ExtResource( 12 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 9 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true
@ -81,7 +133,7 @@ position = Vector2( -70, -1.90735e-06 )
scale = Vector2( 0.878906, 0.936025 )
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 6
frame = 8
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 6 )

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=27 format=2]
[gd_scene load_steps=29 format=2]
[ext_resource path="res://src/Environment/Legacy/AlienShipTileSet.tres" type="TileSet" id=1]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
@ -16,6 +16,46 @@
[ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=16]
[sub_resource type="Shader" id=16]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=17]
shader = SubResource( 16 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=15]
[sub_resource type="AnimationNodeStateMachinePlayback" id=5]
@ -200,6 +240,18 @@ __meta__ = {
[node name="LevelState" parent="." instance=ExtResource( 3 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 17 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 9 )]
unique_name_in_owner = true
@ -219,7 +271,7 @@ position = Vector2( 21, -9 )
visible = true
[node name="BlobbySprite" parent="Blobby" index="5"]
frame = 7
frame = 9
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 15 )
@ -275,7 +327,7 @@ position = Vector2( 1266, -537 )
[node name="WhatAreFrog" parent="BoundFrog2" index="0"]
frog_number = 1
[node name="Digit" parent="BoundFrog2/WhatAreFrog" index="2"]
[node name="Digit" parent="BoundFrog2/WhatAreFrog" index="3"]
frame = 1
[node name="AnimationTree" parent="BoundFrog2/WhatAreFrog/FrogSprite" index="1"]

View File

@ -11,6 +11,13 @@ onready var level_state := $"%LevelState"
func _ready() -> void:
$TransitionLayer.visible = true
var transition_tween = Tween.new()
add_child(transition_tween)
var property = "shader_param/position"
var node = $TransitionLayer/SceneTransition
transition_tween.interpolate_property(node.material, property,-1.5, 1.0, 0.94, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
transition_tween.start()
# should spawn the tutorial thingies which are still remembered in the progress dictionary
signal_manager.connect("terminal_activated", self, "stop_level_music")
signal_manager.emit_signal("level_loaded")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=2]
[gd_scene load_steps=17 format=2]
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=1]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
@ -13,6 +13,46 @@
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=13]
[sub_resource type="Shader" id=15]
code = "shader_type canvas_item;
uniform vec4 in_color:hint_color;
uniform vec4 out_color:hint_color;
uniform float in_out:hint_range(0.,1.)=0.;
uniform float position:hint_range(-1.5,1.) = 0.856;
uniform vec2 size = vec2(16., 16.);
void fragment(){
vec2 a = (1./SCREEN_PIXEL_SIZE) / size;
vec2 uv=UV;
uv *= a;
vec2 i_uv = floor(uv);
vec2 f_uv = fract(uv);
float wave = max(0.,i_uv.x/(a.x) - position);
vec2 center = f_uv*2.-1.;
float circle = length(center);
circle = 1. - step(wave,circle);
vec4 color = mix(in_color, out_color, step(0.5, in_out));
COLOR=vec4(circle) * color;
}"
[sub_resource type="ShaderMaterial" id=16]
shader = SubResource( 15 )
shader_param/in_color = Color( 0, 0, 0, 1 )
shader_param/out_color = Color( 0, 0, 0, 0.568627 )
shader_param/in_out = 0.0
shader_param/position = -1.5
shader_param/size = Vector2( 32, 32 )
[sub_resource type="AnimationNodeStateMachinePlayback" id=6]
[sub_resource type="TileSet" id=5]
@ -52,6 +92,18 @@ __meta__ = {
[node name="LevelState" parent="." instance=ExtResource( 3 )]
unique_name_in_owner = true
[node name="TransitionLayer" type="CanvasLayer" parent="."]
visible = false
[node name="SceneTransition" type="ColorRect" parent="TransitionLayer"]
material = SubResource( 16 )
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="UserInterface" parent="." instance=ExtResource( 8 )]
unique_name_in_owner = true

View File

@ -41,7 +41,7 @@ resource_name = "LowPassFilter"
cutoff_hz = 3000.0
[resource]
bus/0/volume_db = -7.9588
bus/0/volume_db = -9.897
bus/1/name = "Music"
bus/1/solo = false
bus/1/mute = false

View File

@ -7,26 +7,26 @@ var focus_player
var press_player
func _ready() -> void:
focus_player = AudioStreamPlayer.new()
focus_player.bus = "UI"
var asrp = AudioStreamRandomPitch.new()
asrp.audio_stream = GlobalState.sound_library[focus_sound]
focus_player.stream = asrp
add_child(focus_player)
connect("focus_exited", self, "focus_play")
focus_player = AudioStreamPlayer.new()
focus_player.bus = "UI"
var asrp = AudioStreamRandomPitch.new()
asrp.audio_stream = GlobalState.sound_library[focus_sound]
focus_player.stream = asrp
add_child(focus_player)
connect("focus_exited", self, "focus_play")
press_player = AudioStreamPlayer.new()
press_player.bus = "UI"
var asrp2 = AudioStreamRandomPitch.new()
asrp2.audio_stream = GlobalState.sound_library[press_sound]
press_player.stream = asrp2
add_child(press_player)
connect("button_down", self, "press_play")
press_player = AudioStreamPlayer.new()
press_player.bus = "UI"
var asrp2 = AudioStreamRandomPitch.new()
asrp2.audio_stream = GlobalState.sound_library[press_sound]
press_player.stream = asrp2
add_child(press_player)
connect("button_down", self, "press_play")
func focus_play():
if visible:
focus_player.play()
if visible:
focus_player.play()
func press_play():
if visible:
press_player.play()
if visible:
press_player.play()

View File

@ -25,6 +25,7 @@ func _input(event: InputEvent) -> void:
func rebuild(input_profile):
_action_list.clear()
var first = true
var prev_line
for input_action in input_profile.keys():
if(input_action.ends_with("_old") || input_action.begins_with(("ui_"))):
continue
@ -35,8 +36,12 @@ func rebuild(input_profile):
$"%Save".focus_neighbour_top = line.get_child(2).get_path()
$"%Reset".focus_neighbour_top = line.get_child(2).get_path()
first = false
else:
line.get_child(2).focus_neighbour_top = prev_line.get_path()
prev_line.focus_neighbour_bottom = line.get_child(2).get_path()
line.get_child(2).focus_neighbour_left = $"%Back".get_path()
line.get_child(2).focus_neighbour_right = $"%Save".get_path()
prev_line = line.get_child(2)
line.connect('change_button_pressed', self, '_on_InputLine_change_button_pressed', [input_action, line])
func close():

View File

@ -3,7 +3,7 @@
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioSlider.gd" type="Script" id=1]
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=2]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioMenu.gd" type="Script" id=3]
[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=9]
[ext_resource path="res://assets/environment/background/Spaceship-Wall-Menu.png" type="Texture" id=4]
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=10]
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=18]
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=20]
@ -49,7 +49,7 @@ stretch_mode = 1
[node name="background2" type="TextureRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
texture = ExtResource( 9 )
texture = ExtResource( 4 )
expand = true
stretch_mode = 1

View File

@ -4,14 +4,14 @@ const InputLine = preload("res://src/UserInterface/Screens/MainMenu/ControlsMenu
var prev_line = null
func clear():
for child in get_children():
child.free()
for child in get_children():
child.free()
func add_input_line(action_name, event) -> Control:
var line = InputLine.instance()
add_child(line)
line.initialize(action_name, event)
#!if prev_line != null:
# line.get_child(2).focus_neighbour_top = prev_line.get_child(2).get_path()
prev_line = line
return line
var line = InputLine.instance()
add_child(line)
line.initialize(action_name, event)
#!if prev_line != null:
# line.get_child(2).focus_neighbour_top = prev_line.get_child(2).get_path()
prev_line = line
return line

View File

@ -27,18 +27,24 @@ func _input(event: InputEvent) -> void:
func rebuild(input_profile) -> void:
_action_list.clear()
var first = true
var prev_line
for input_action in input_profile.keys():
if(input_action.ends_with("_old") || input_action.begins_with(("ui_"))):
continue
var line = _action_list.add_input_line(input_action, input_profile[input_action])
# child(2) is the actual button inside the inputline
if first:
$ProfilesMenu.focus_neighbour_bottom = line.get_child(2).get_path()
$"%Back".focus_neighbour_top = line.get_child(2).get_path()
$"%Save".focus_neighbour_top = line.get_child(2).get_path()
$"%Reset".focus_neighbour_top = line.get_child(2).get_path()
first = false
else:
line.get_child(2).focus_neighbour_top = prev_line.get_path()
prev_line.focus_neighbour_bottom = line.get_child(2).get_path()
line.get_child(2).focus_neighbour_left = $"%Back".get_path()
line.get_child(2).focus_neighbour_right = $"%Save".get_path()
prev_line = line.get_child(2)
line.connect('change_button_pressed', self, '_on_InputLine_change_button_pressed', [input_action, line])
func _on_InputLine_change_button_pressed(action_name, line):

View File

@ -8,7 +8,7 @@
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ReallyQuitMenu.gd" type="Script" id=6]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/UserInterface/Buttons/AudibleButton.gd" type="Script" id=8]
[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=9]
[ext_resource path="res://assets/environment/background/Spaceship-Wall-Menu.png" type="Texture" id=9]
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=10]
[ext_resource path="res://assets/ui/Screenshot 2023-05-23 160521.png" type="Texture" id=12]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ProfilesMenu.gd" type="Script" id=13]

View File

@ -2,31 +2,35 @@ extends HBoxContainer
signal change_button_pressed
export var button_size: Vector2 = Vector2(30,30)
export var button_size: Vector2 = Vector2(30, 30)
export var interactable: bool = false
func initialize(action_name, event):
$Action.text = action_name.capitalize()
$Key.add_child(create_controller_button(event))
$Action.text = action_name.capitalize()
$Key.add_child(create_controller_button(event))
func update_key(event):
$Key.remove_child($Key.get_child(0))
$Key.add_child(create_controller_button(event))
$Key.remove_child($Key.get_child(0))
$Key.add_child(create_controller_button(event))
func create_controller_button(event) -> ControllerButton:
var event_path = ControllerIcons._convert_event_to_path(event)
var controller_button: ControllerButton = ControllerButton.new()
controller_button.path = event_path
if(!interactable):
controller_button.focus_mode = FOCUS_NONE
controller_button.enabled_focus_mode = FOCUS_NONE
controller_button.mouse_filter = MOUSE_FILTER_IGNORE
controller_button.rect_size = button_size
controller_button.expand_icon = true
controller_button.grow_horizontal = Control.GROW_DIRECTION_BOTH
controller_button.grow_vertical = Control.GROW_DIRECTION_BOTH
controller_button.size_flags_horizontal
return controller_button
var event_path = ControllerIcons._convert_event_to_path(event)
var controller_button: ControllerButton = ControllerButton.new()
controller_button.path = event_path
if !interactable:
controller_button.focus_mode = FOCUS_NONE
controller_button.enabled_focus_mode = FOCUS_NONE
controller_button.mouse_filter = MOUSE_FILTER_IGNORE
controller_button.rect_size = button_size
controller_button.expand_icon = true
controller_button.grow_horizontal = Control.GROW_DIRECTION_BOTH
controller_button.grow_vertical = Control.GROW_DIRECTION_BOTH
controller_button.size_flags_horizontal
return controller_button
func _on_ChangeButton_pressed():
emit_signal('change_button_pressed')
emit_signal("change_button_pressed")

View File

@ -1,17 +1,17 @@
extends VBoxContainer
func initialize_with_progress(levelFullName: String) -> void:
if !GlobalState.get_progress().has(levelFullName):
return
if !GlobalState.get_progress()[levelFullName].has("froggies"):
return
var froggies : Dictionary = GlobalState.get_progress()[levelFullName]["froggies"]
for key in froggies.keys():
register_froggy(int(key), froggies[key])
if !GlobalState.get_progress().has(levelFullName):
return
if !GlobalState.get_progress()[levelFullName].has("froggies"):
return
var froggies : Dictionary = GlobalState.get_progress()[levelFullName]["froggies"]
for key in froggies.keys():
register_froggy(int(key), froggies[key])
func register_froggy(var count : int = 0, var freed: bool = false) -> void:
var frogo: String = "%FreedFroggy" + str(count + 1)
var test = self.get_children()
get_node(frogo).visible = true
get_node(frogo + "/ImprisionedFroggy").visible = !freed
var frogo: String = "%FreedFroggy" + str(count + 1)
var test = self.get_children()
get_node(frogo).visible = true
get_node(frogo + "/ImprisionedFroggy").visible = !freed

View File

@ -150,3 +150,4 @@ margin_right = 119.0
margin_bottom = 32.0
[connection signal="focus_entered" from="." to="." method="_on_LevelCheckBox_focus_entered"]
[connection signal="pressed" from="CheckBox" to="." method="_on_CheckBox_pressed"]

View File

@ -6,11 +6,20 @@ onready var LEVEL_CHECK_BOX = load("res://src/UserInterface/Screens/MainMenu/Lev
onready var vbox: VBoxContainer = $VBoxContainer
var prev_checkbox
var selected_button
func _ready() -> void:
BUTTON_GROUP.connect("pressed", $"%PlayButton", "_level_selection_changed")
BUTTON_GROUP.connect("pressed", self, "_level_selection_changed")
_fill_level_list()
func _level_selection_changed(button) -> void:
selected_button = button
func _input(event: InputEvent) -> void:
if(event.is_action("ui_accept") && selected_button != null && selected_button.has_focus()):
$"%PlayButton"._on_button_up()
func _fill_level_list():
var levels = []
var dir = Directory.new()

View File

@ -5,7 +5,7 @@
[ext_resource path="res://src/UserInterface/Buttons/ChangeSceneButton.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=4]
[ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=5]
[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=6]
[ext_resource path="res://assets/environment/background/Spaceship-Wall-Menu.png" type="Texture" id=6]
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=7]
[ext_resource path="res://src/UserInterface/Buttons/PlayButton.gd" type="Script" id=8]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelSelectButtonGroup.tres" type="ButtonGroup" id=9]