diff --git a/assets/shaders/wipe.gdshader b/assets/shaders/wipe.gdshader new file mode 100644 index 0000000..f78e640 --- /dev/null +++ b/assets/shaders/wipe.gdshader @@ -0,0 +1,26 @@ +shader_type canvas_item; + +uniform float percentage:hint_range(0.0,1,.01); +uniform float masked_alpha:hint_range(0,1,.01)=1; +uniform float unmasked_alpha:hint_range(0,1,.01); + +uniform bool horizontal=false; +uniform bool invert=true; + + + +void fragment() { + vec4 main_tex=texture(TEXTURE,UV); + COLOR.a=main_tex.a; + + float uvPOS=UV.y; + float step_value=unmasked_alpha+step(uvPOS,percentage); + + if(horizontal){ uvPOS=UV.x; } + if(invert){ + step_value=unmasked_alpha+1.0-step(uvPOS,percentage); + } + + + COLOR.a=(main_tex.a)*step_value*masked_alpha; +} \ No newline at end of file diff --git a/entities/credits.tscn b/entities/credits.tscn new file mode 100644 index 0000000..7f91ce7 --- /dev/null +++ b/entities/credits.tscn @@ -0,0 +1,648 @@ +[gd_scene load_steps=14 format=3 uid="uid://dar5gkydgb6pw"] + +[ext_resource type="Script" path="res://scripts/credits.gd" id="1_tv0c0"] +[ext_resource type="Shader" path="res://assets/shaders/wipe.gdshader" id="2_nafep"] +[ext_resource type="Texture2D" uid="uid://5hxbsfm0aa0" path="res://icon.svg" id="3_ko2fe"] + +[sub_resource type="Animation" id="Animation_5f8px"] +resource_name = "xtra_wipe" +length = 5.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("XTRA/Wipe:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 4.5, 5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(242, -519), Vector2(1349, 53.9999), Vector2(1349, 53.9999), Vector2(242, -519)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("XTRA:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 4.5, 5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, true, false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("XTRA/Title:scrambling") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("XTRA/Title:infinite") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_durpn"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("XTRA/Wipe:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(242, -519)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("GorkaMorka/Wipe:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(37, -922)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Augi/Wipe:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-341, -1424)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Augi/Title:scrambling") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Augi/Title:infinite") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("XTRA:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Augi:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("GorkaMorka:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("GorkaMorka/Title:infinite") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("GorkaMorka/Title:scrambling") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("XTRA/Title:scrambling") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("XTRA/Title:infinite") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Godot/Wipe:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Godot:visible") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ylxds"] +resource_name = "gorkamorka_wipe" +length = 5.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("GorkaMorka/Wipe:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 4.5, 5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(37, -922), Vector2(-989, -1452), Vector2(-989, -1452), Vector2(37, -922)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("GorkaMorka:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 5), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("GorkaMorka/Title:scrambling") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("GorkaMorka/Title:infinite") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_vvwrq"] +resource_name = "augi_wipe" +length = 5.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Augi/Wipe:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 4.5, 5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(872, -797), Vector2(1387, -531), Vector2(1387, -531), Vector2(872, -797)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Augi/Title:scrambling") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Augi/Title:infinite") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Augi:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 5), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [true, false] +} + +[sub_resource type="Animation" id="Animation_pkma0"] +resource_name = "technical_wipe" +length = 0.6 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Godot/Wipe:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, 401), Vector2(0, 788)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Godot:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_lswdn"] +_data = { +"RESET": SubResource("Animation_durpn"), +"augi_wipe": SubResource("Animation_vvwrq"), +"gorkamorka_wipe": SubResource("Animation_ylxds"), +"technical_wipe": SubResource("Animation_pkma0"), +"xtra_wipe": SubResource("Animation_5f8px") +} + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gumyy"] +shader = ExtResource("2_nafep") +shader_parameter/percentage = 0.0 +shader_parameter/masked_alpha = 1.0 +shader_parameter/unmasked_alpha = 0.0 +shader_parameter/horizontal = true +shader_parameter/invert = true + +[sub_resource type="LabelSettings" id="LabelSettings_76odq"] +font_size = 64 + +[sub_resource type="LabelSettings" id="LabelSettings_2k0bm"] +font_size = 46 + +[sub_resource type="LabelSettings" id="LabelSettings_6adhm"] +font_size = 27 +font_color = Color(0.505344, 0.505344, 0.505344, 1) + +[node name="Credits" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_tv0c0") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_lswdn") +} + +[node name="XTRA" type="Control" parent="."] +visible = false +material = SubResource("ShaderMaterial_gumyy") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Title" type="ScramblingText" parent="XTRA"] +duration = 0.05 +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 184.0 +offset_top = -427.0 +offset_right = 1174.0 +offset_bottom = -339.0 +grow_vertical = 2 +text = "PROGRAMMING & BUILD TOOLS" +label_settings = SubResource("LabelSettings_76odq") + +[node name="Name" type="RichTextLabel" parent="XTRA"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 295.0 +offset_top = 176.0 +offset_right = 295.0 +offset_bottom = 176.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/normal_font_size = 176 +theme_override_font_sizes/bold_font_size = 176 +bbcode_enabled = true +text = "[wave amp=50.0 freq=5.0 connected=1]XTRA[wave]" + +[node name="Wipe" type="ColorRect" parent="XTRA"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 242.0 +offset_top = -519.0 +offset_right = 242.0 +offset_bottom = -519.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = 0.477038 +color = Color(0, 0, 0, 1) + +[node name="GorkaMorka" type="Control" parent="."] +visible = false +material = SubResource("ShaderMaterial_gumyy") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 269.0 +offset_top = 484.0 +offset_right = 269.0 +offset_bottom = 484.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Title" type="ScramblingText" parent="GorkaMorka"] +duration = 0.05 +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 809.0 +offset_top = -138.0 +offset_right = 1799.0 +offset_bottom = -50.0 +grow_vertical = 2 +text = "PROGRAMMING & 3D" +label_settings = SubResource("LabelSettings_76odq") + +[node name="Name" type="RichTextLabel" parent="GorkaMorka"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 295.0 +offset_top = 176.0 +offset_right = 295.0 +offset_bottom = 176.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/normal_font_size = 176 +theme_override_font_sizes/bold_font_size = 176 +bbcode_enabled = true +text = "[wave amp=50.0 freq=5.0 connected=1]GorkaMorka[wave]" + +[node name="Wipe" type="ColorRect" parent="GorkaMorka"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 37.0 +offset_top = -922.0 +offset_right = 37.0001 +offset_bottom = -922.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = 0.477038 +color = Color(0, 0, 0, 1) + +[node name="Augi" type="Control" parent="."] +visible = false +material = SubResource("ShaderMaterial_gumyy") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 269.0 +offset_top = 484.0 +offset_right = 269.0 +offset_bottom = 484.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Title" type="ScramblingText" parent="Augi"] +duration = 0.05 +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 625.0 +offset_top = -856.0 +offset_right = 1615.0 +offset_bottom = -768.0 +grow_vertical = 2 +text = "MUSIC & PLANNING" +label_settings = SubResource("LabelSettings_76odq") + +[node name="Name" type="RichTextLabel" parent="Augi"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 670.0 +offset_top = -265.0 +offset_right = 670.0 +offset_bottom = -265.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/normal_font_size = 176 +theme_override_font_sizes/bold_font_size = 176 +bbcode_enabled = true +text = "[wave amp=50.0 freq=5.0 connected=1]AUGI[wave]" + +[node name="Wipe" type="ColorRect" parent="Augi"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 872.0 +offset_top = -797.0 +offset_right = 872.0 +offset_bottom = -797.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = 0.477038 +color = Color(0, 0, 0, 1) + +[node name="Godot" type="Control" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Logo" type="TextureRect" parent="Godot"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_ko2fe") + +[node name="engine" type="Label" parent="Godot"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -213.0 +offset_top = 111.0 +offset_right = 213.0 +offset_bottom = 175.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "GODOT ENGINE 4.3" +label_settings = SubResource("LabelSettings_2k0bm") + +[node name="tools" type="Label" parent="Godot"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -141.0 +offset_top = 179.0 +offset_right = 143.0 +offset_bottom = 216.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "MiniDemoTools alpha" +label_settings = SubResource("LabelSettings_6adhm") + +[node name="Wipe" type="ColorRect" parent="Godot"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = 401.0 +offset_bottom = 401.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] diff --git a/entities/manager.tscn b/entities/manager.tscn index ae62f7b..72242a5 100644 --- a/entities/manager.tscn +++ b/entities/manager.tscn @@ -4,7 +4,7 @@ [sub_resource type="Animation" id="Animation_qy15n"] resource_name = "timeline" -length = 60.0 +length = 30.0 tracks/0/type = "method" tracks/0/imported = false tracks/0/enabled = true @@ -12,8 +12,8 @@ tracks/0/path = NodePath(".") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 10, 60.0333), -"transitions": PackedFloat32Array(1, 1, 1), +"times": PackedFloat32Array(0, 10.0333, 30, 60.0333), +"transitions": PackedFloat32Array(1, 1, 1, 1), "values": [{ "args": [0], "method": &"set_scene" @@ -21,6 +21,9 @@ tracks/0/keys = { "args": [1], "method": &"set_scene" }, { +"args": [4], +"method": &"set_scene" +}, { "args": [2], "method": &"set_scene" }] diff --git a/icon.svg.import b/icon.svg.import index 554904f..2c40be4 100644 --- a/icon.svg.import +++ b/icon.svg.import @@ -33,6 +33,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 -svg/scale=1.0 +svg/scale=1.5 editor/scale_with_editor_scale=false editor/convert_colors_with_editor_theme=false diff --git a/scripts/credits.gd b/scripts/credits.gd new file mode 100644 index 0000000..321f839 --- /dev/null +++ b/scripts/credits.gd @@ -0,0 +1,56 @@ +extends Control + +var XTRA_name_timer: Timer = Timer.new(); + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var XTRA_name_lambda: Callable = func() -> void: ($XTRA/Title as ScramblingText).infinite = false; + + XTRA_name_timer.wait_time = 1.0; + XTRA_name_timer.one_shot = true; + XTRA_name_timer.connect("timeout", XTRA_name_lambda); + + add_child(XTRA_name_timer); + + ($XTRA/Title as ScramblingText).scrambling = true; + ($XTRA/Title as ScramblingText).infinite = true; + + $XTRA.visible = true; + $GorkaMorka.visible = false; + $Augi.visible = false; + $Godot.visible = false; + + XTRA_name_timer.start(); + + $AnimationPlayer.play("xtra_wipe"); + + + + + + +func _on_animation_player_animation_finished(anim_name: StringName) -> void: + match anim_name: + "xtra_wipe": + var intermission: Timer = Timer.new(); + intermission.wait_time = 0.5; + intermission.autostart = true; + intermission.one_shot = true; + intermission.connect("timeout", func() -> void: $AnimationPlayer.play("gorkamorka_wipe")); + add_child(intermission); + + "gorkamorka_wipe": + var intermission: Timer = Timer.new(); + intermission.wait_time = 0.5; + intermission.autostart = true; + intermission.one_shot = true; + intermission.connect("timeout", func() -> void: $AnimationPlayer.play("augi_wipe")); + add_child(intermission); + + "augi_wipe": + var intermission: Timer = Timer.new(); + intermission.wait_time = 0.5; + intermission.autostart = true; + intermission.one_shot = true; + intermission.connect("timeout", func() -> void: $AnimationPlayer.play("technical_wipe")); + add_child(intermission); diff --git a/scripts/manager.gd b/scripts/manager.gd index 740b88f..34b8457 100644 --- a/scripts/manager.gd +++ b/scripts/manager.gd @@ -4,6 +4,7 @@ var scene1: PackedScene = preload("res://entities/test.tscn"); var scene2: PackedScene = preload("res://entities/kaleido_scope.tscn"); var scene3: PackedScene = preload("res://entities/ParticlesCool.tscn"); var scene4: PackedScene = preload("res://entities/test.tscn") +var credits_scene: PackedScene = preload("res://entities/credits.tscn"); # Called when the node enters the scene tree for the first time. @@ -12,5 +13,6 @@ func _ready() -> void: register_scene(scene2); register_scene(scene3); register_scene(scene4); + register_scene(credits_scene); start_audio(); $AnimationPlayer.play("timeline");