diff --git a/scenes/game.tscn b/scenes/game.tscn index 5b7abd7..e18ce65 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -17,6 +17,7 @@ [ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="15_ca42v"] [ext_resource type="Theme" uid="uid://dtc7h6gpwpend" path="res://scenes/ui.tres" id="15_ir15t"] [ext_resource type="Script" uid="uid://dqiaioigmj5wb" path="res://scripts/pause_menu.gd" id="15_rysoc"] +[ext_resource type="PackedScene" uid="uid://cy4nbqbm222os" path="res://scenes/settings.tscn" id="17_ssvqc"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ir15t"] texture = ExtResource("12_trtic") @@ -70,10 +71,6 @@ corner_detail = 1 font_size = 48 outline_size = 2 -[sub_resource type="LabelSettings" id="LabelSettings_ssvqc"] -font_size = 32 -outline_size = 2 - [sub_resource type="ShaderMaterial" id="ShaderMaterial_trtic"] shader = ExtResource("12_kvuet") shader_parameter/shake = 0.002000000095 @@ -255,23 +252,6 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -[node name="BoostText" type="Label" parent="UI/Control"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 24.0 -text = "BOOST: 100" - -[node name="Distance" type="Label" parent="UI/Control"] -layout_mode = 1 -anchors_preset = 4 -anchor_top = 0.5 -anchor_bottom = 0.5 -offset_top = -12.0 -offset_right = 136.0 -offset_bottom = 12.0 -grow_vertical = 2 -text = "DIST: 2048" - [node name="PanelContainer" type="PanelContainer" parent="UI/Control"] layout_mode = 1 anchors_preset = 2 @@ -327,6 +307,7 @@ vertical_alignment = 1 [node name="PauseMenu" type="Panel" parent="UI/Control"] process_mode = 3 +visible = false self_modulate = Color(1, 1, 1, 0.53333336) layout_mode = 1 anchors_preset = 15 @@ -418,187 +399,17 @@ label_settings = SubResource("LabelSettings_1kice") horizontal_alignment = 1 vertical_alignment = 1 -[node name="Settings" type="PanelContainer" parent="UI/Control/PauseMenu"] +[node name="Settings" parent="UI/Control/PauseMenu" instance=ExtResource("17_ssvqc")] visible = false -custom_minimum_size = Vector2(640, 0) -layout_mode = 1 -anchors_preset = 13 -anchor_left = 0.5 -anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = -258.0 -offset_right = 258.0 -grow_horizontal = 2 -grow_vertical = 2 -theme = ExtResource("15_ir15t") - -[node name="Scroll" type="ScrollContainer" parent="UI/Control/PauseMenu/Settings"] -custom_minimum_size = Vector2(640, 0) -layout_mode = 2 - -[node name="Flow" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll"] -custom_minimum_size = Vector2(640, 0) -layout_mode = 2 -size_flags_horizontal = 3 -alignment = 1 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(512, 0) -layout_mode = 2 -text = "SETTINGS" -label_settings = SubResource("LabelSettings_1kice") -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Flow" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(500, 0) -layout_mode = 2 -alignment = 1 - -[node name="InputIconTextureRect2" type="TextureRect" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow"] -custom_minimum_size = Vector2(48, 48) -layout_mode = 2 -expand_mode = 1 -script = ExtResource("15_ca42v") -action_name = "ui_up" -metadata/_custom_type_script = "uid://b2maxk5g6yb0i" - -[node name="InputIconTextureRect3" type="TextureRect" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow"] -custom_minimum_size = Vector2(48, 48) -layout_mode = 2 -expand_mode = 1 -script = ExtResource("15_ca42v") -action_name = "ui_down" -metadata/_custom_type_script = "uid://b2maxk5g6yb0i" - -[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow"] -custom_minimum_size = Vector2(48, 48) -layout_mode = 2 -expand_mode = 1 -script = ExtResource("15_ca42v") -action_name = "dialogue_continue" -metadata/_custom_type_script = "uid://b2maxk5g6yb0i" - -[node name="Resume" type="Button" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(300, 0) -layout_mode = 2 -text = "Back" - -[node name="Label2" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(512, 0) -layout_mode = 2 -text = "SOUND" -label_settings = SubResource("LabelSettings_ssvqc") -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Flow2" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(608, 0) -layout_mode = 2 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow2"] -layout_mode = 2 -text = "Master Volume" - -[node name="MasterVolume" type="HSlider" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow2"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 4 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow2/MasterVolume"] -layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -115.5 -offset_top = -12.0 -offset_right = 115.5 -offset_bottom = 12.0 -grow_horizontal = 2 -grow_vertical = 2 -text = "100%" -horizontal_alignment = 1 - -[node name="Flow3" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(608, 0) -layout_mode = 2 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow3"] -layout_mode = 2 -text = "Music Volume" - -[node name="MasterVolume" type="HSlider" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow3"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 4 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow3/MasterVolume"] -layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -115.5 -offset_top = -12.0 -offset_right = 115.5 -offset_bottom = 12.0 -grow_horizontal = 2 -grow_vertical = 2 -text = "100%" -horizontal_alignment = 1 - -[node name="Flow4" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(608, 0) -layout_mode = 2 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow4"] -layout_mode = 2 -text = "Sound Effects Volume" - -[node name="MasterVolume" type="HSlider" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow4"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 4 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow4/MasterVolume"] -layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -115.5 -offset_top = -12.0 -offset_right = 115.5 -offset_bottom = 12.0 -grow_horizontal = 2 -grow_vertical = 2 -text = "100%" -horizontal_alignment = 1 - -[node name="Label3" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(512, 0) -layout_mode = 2 -text = "CONTROLS" -label_settings = SubResource("LabelSettings_ssvqc") -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Flow5" type="HFlowContainer" parent="UI/Control/PauseMenu/Settings/Scroll/Flow"] -custom_minimum_size = Vector2(608, 0) -layout_mode = 2 - -[node name="Label" type="Label" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow5"] -layout_mode = 2 -size_flags_horizontal = 3 -text = "Southpaw" - -[node name="Button" type="Button" parent="UI/Control/PauseMenu/Settings/Scroll/Flow/Flow5"] -layout_mode = 2 -text = "NO" +layout_mode = 0 +anchors_preset = 0 +anchor_left = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +offset_left = 0.0 +offset_right = 640.0 +grow_horizontal = 1 +grow_vertical = 1 [node name="FadeToBlack" type="ColorRect" parent="UI"] process_mode = 3 @@ -624,4 +435,3 @@ color = Color(1, 1, 1, 0) [connection signal="body_entered" from="SpaceStation1/EnterHitbox" to="SpaceStation1" method="_on_enter_hitbox_body_entered"] [connection signal="body_shape_entered" from="Player/Hitbox" to="Player" method="_on_hitbox_body_shape_entered"] [connection signal="pressed" from="UI/Control/PauseMenu/Panel/Flow/Resume" to="UI/Control/PauseMenu" method="_on_resume_pressed"] -[connection signal="pressed" from="UI/Control/PauseMenu/Settings/Scroll/Flow/Resume" to="UI/Control/PauseMenu" method="_on_resume_pressed"] diff --git a/scenes/settings.tscn b/scenes/settings.tscn new file mode 100644 index 0000000..3211f52 --- /dev/null +++ b/scenes/settings.tscn @@ -0,0 +1,217 @@ +[gd_scene load_steps=8 format=3 uid="uid://cy4nbqbm222os"] + +[ext_resource type="Theme" uid="uid://dtc7h6gpwpend" path="res://scenes/ui.tres" id="1_r6d6q"] +[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="2_6wm04"] +[ext_resource type="Script" uid="uid://jacd1qlw1q5p" path="res://scripts/settings.gd" id="2_f4mfi"] +[ext_resource type="FontFile" uid="uid://donsvh2l775rb" path="res://fonts/Doto.ttf" id="3_f4mfi"] + +[sub_resource type="LabelSettings" id="LabelSettings_1kice"] +font_size = 48 + +[sub_resource type="LabelSettings" id="LabelSettings_ssvqc"] +font_size = 32 + +[sub_resource type="LabelSettings" id="LabelSettings_6wm04"] +outline_size = 4 +outline_color = Color(0, 0, 0, 1) + +[node name="Settings" type="PanelContainer"] +custom_minimum_size = Vector2(640, 0) +anchors_preset = 13 +anchor_left = 0.5 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -258.0 +offset_right = 258.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_r6d6q") +script = ExtResource("2_f4mfi") + +[node name="Scroll" type="ScrollContainer" parent="."] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 + +[node name="Flow" type="HFlowContainer" parent="Scroll"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 3 +alignment = 1 + +[node name="Label" type="Label" parent="Scroll/Flow"] +custom_minimum_size = Vector2(512, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("3_f4mfi") +text = "SETTINGS" +label_settings = SubResource("LabelSettings_1kice") +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Flow" type="HFlowContainer" parent="Scroll/Flow"] +custom_minimum_size = Vector2(500, 0) +layout_mode = 2 +alignment = 1 + +[node name="InputIconTextureRect2" type="TextureRect" parent="Scroll/Flow/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_6wm04") +action_name = "ui_up" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect3" type="TextureRect" parent="Scroll/Flow/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_6wm04") +action_name = "ui_down" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect" type="TextureRect" parent="Scroll/Flow/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_6wm04") +action_name = "dialogue_continue" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="Back" type="Button" parent="Scroll/Flow"] +custom_minimum_size = Vector2(300, 0) +layout_mode = 2 +text = "Back" + +[node name="Label2" type="Label" parent="Scroll/Flow"] +custom_minimum_size = Vector2(512, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("3_f4mfi") +text = "SOUND" +label_settings = SubResource("LabelSettings_ssvqc") +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Flow2" type="HFlowContainer" parent="Scroll/Flow"] +custom_minimum_size = Vector2(608, 0) +layout_mode = 2 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow2"] +layout_mode = 2 +text = "Master Volume" + +[node name="MasterVolume" type="HSlider" parent="Scroll/Flow/Flow2"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +max_value = 1.0 +step = 0.01 +value = 0.5 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow2/MasterVolume"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -115.5 +offset_top = -12.0 +offset_right = 115.5 +offset_bottom = 12.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "100%" +label_settings = SubResource("LabelSettings_6wm04") +horizontal_alignment = 1 + +[node name="Flow3" type="HFlowContainer" parent="Scroll/Flow"] +custom_minimum_size = Vector2(608, 0) +layout_mode = 2 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow3"] +layout_mode = 2 +text = "Music Volume" + +[node name="MusicVolume" type="HSlider" parent="Scroll/Flow/Flow3"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +max_value = 1.0 +step = 0.01 +value = 0.5 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow3/MusicVolume"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -115.5 +offset_top = -12.0 +offset_right = 115.5 +offset_bottom = 12.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "100%" +label_settings = SubResource("LabelSettings_6wm04") +horizontal_alignment = 1 + +[node name="Flow4" type="HFlowContainer" parent="Scroll/Flow"] +custom_minimum_size = Vector2(608, 0) +layout_mode = 2 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow4"] +layout_mode = 2 +text = "Sound Effects Volume" + +[node name="SFXVolume" type="HSlider" parent="Scroll/Flow/Flow4"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +max_value = 1.0 +step = 0.01 +value = 0.5 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow4/SFXVolume"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -115.5 +offset_top = -12.0 +offset_right = 115.5 +offset_bottom = 12.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "100%" +label_settings = SubResource("LabelSettings_6wm04") +horizontal_alignment = 1 + +[node name="Label3" type="Label" parent="Scroll/Flow"] +custom_minimum_size = Vector2(512, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("3_f4mfi") +text = "CONTROLS" +label_settings = SubResource("LabelSettings_ssvqc") +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Flow5" type="HFlowContainer" parent="Scroll/Flow"] +custom_minimum_size = Vector2(608, 0) +layout_mode = 2 + +[node name="Label" type="Label" parent="Scroll/Flow/Flow5"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Southpaw" + +[node name="Button" type="Button" parent="Scroll/Flow/Flow5"] +layout_mode = 2 +text = "NO" + +[connection signal="pressed" from="Scroll/Flow/Back" to="." method="_on_back_pressed"] +[connection signal="value_changed" from="Scroll/Flow/Flow2/MasterVolume" to="." method="_on_master_volume_value_changed"] +[connection signal="value_changed" from="Scroll/Flow/Flow3/MusicVolume" to="." method="_on_music_volume_value_changed"] +[connection signal="value_changed" from="Scroll/Flow/Flow4/SFXVolume" to="." method="_on_sfx_volume_value_changed"] diff --git a/scenes/title.tscn b/scenes/title.tscn new file mode 100644 index 0000000..d184eab --- /dev/null +++ b/scenes/title.tscn @@ -0,0 +1,334 @@ +[gd_scene load_steps=10 format=3 uid="uid://b1x7evhkxm385"] + +[ext_resource type="Script" uid="uid://md1biuc6ygmv" path="res://scripts/title.gd" id="1_pyl7j"] +[ext_resource type="FontFile" uid="uid://n1nd5m2kwexu" path="res://fonts/Michroma.ttf" id="1_wosw1"] +[ext_resource type="Texture2D" uid="uid://5iimabvyld40" path="res://textures/particles/basic.png" id="2_4rr2b"] +[ext_resource type="Shader" uid="uid://bk7q00br1ms30" path="res://scripts/retro.gdshader" id="2_p6dhs"] +[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="2_pyl7j"] +[ext_resource type="FontFile" uid="uid://donsvh2l775rb" path="res://fonts/Doto.ttf" id="3_b3w7a"] +[ext_resource type="PackedScene" uid="uid://cy4nbqbm222os" path="res://scenes/settings.tscn" id="6_yql1r"] + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_yql1r"] +particle_flag_disable_z = true +emission_shape = 3 +emission_box_extents = Vector3(1, 1200, 1) +angle_min = -720.0 +angle_max = 720.0 +initial_velocity_min = 32.0 +initial_velocity_max = 500.0 +scale_min = 0.5 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pyl7j"] +shader = ExtResource("2_p6dhs") +shader_parameter/shake = 0.002000000095 +shader_parameter/noiseQuality = 250.0 +shader_parameter/noiseIntensity = 0.0010000000475 +shader_parameter/offsetIntensity = 0.0 +shader_parameter/colorOffsetIntensity = 0.10000000149012 +shader_parameter/pixelSize = 1024.0 +shader_parameter/grainIntensity = 0.04 +shader_parameter/use_overlay = true +shader_parameter/use_lens_distortion = true +shader_parameter/overlay_color = Color(1, 1, 1, 10) +shader_parameter/lens_distortion_strength = 0.0 + +[node name="Title" type="Node2D"] +script = ExtResource("1_pyl7j") + +[node name="GPUParticles2D" type="GPUParticles2D" parent="."] +position = Vector2(-1420, 0) +amount = 512 +texture = ExtResource("2_4rr2b") +lifetime = 30.0 +visibility_rect = Rect2(-100, -100, 100000000, 200) +process_material = SubResource("ParticleProcessMaterial_yql1r") + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="UI" type="CanvasLayer" parent="."] + +[node name="Control" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ControllerInfo" type="HBoxContainer" parent="UI/Control"] +visible = false +layout_mode = 1 +anchors_preset = 13 +anchor_left = 0.5 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -320.0 +offset_right = 324.0 +grow_horizontal = 2 +grow_vertical = 2 +alignment = 1 + +[node name="Box" type="VBoxContainer" parent="UI/Control/ControllerInfo"] +layout_mode = 2 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="RichTextLabel" parent="UI/Control/ControllerInfo/Box"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("1_wosw1") +theme_override_fonts/bold_font = ExtResource("3_b3w7a") +theme_override_font_sizes/normal_font_size = 32 +theme_override_font_sizes/bold_font_size = 32 +theme_override_font_sizes/bold_italics_font_size = 32 +theme_override_font_sizes/italics_font_size = 32 +theme_override_font_sizes/mono_font_size = 32 +bbcode_enabled = true +text = "[b][font size=64]WARNING[/font][/b] +This game is best played with a controller, not a keyboard. You should probably switch to one if you have one available." +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Flow" type="HFlowContainer" parent="UI/Control/ControllerInfo/Box"] +layout_mode = 2 +alignment = 1 + +[node name="Continue" type="Button" parent="UI/Control/ControllerInfo/Box/Flow"] +custom_minimum_size = Vector2(256, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "Continue" + +[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/ControllerInfo/Box/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_accept" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="Box2" type="VBoxContainer" parent="UI/Control/ControllerInfo"] +layout_mode = 2 +size_flags_vertical = 3 +alignment = 1 + +[node name="Title" type="VBoxContainer" parent="UI/Control"] +layout_mode = 0 +offset_left = 480.0 +offset_right = 1120.0 +offset_bottom = 900.0 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="RichTextLabel" parent="UI/Control/Title"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("1_wosw1") +theme_override_fonts/bold_font = ExtResource("3_b3w7a") +theme_override_font_sizes/normal_font_size = 32 +theme_override_font_sizes/bold_font_size = 32 +theme_override_font_sizes/bold_italics_font_size = 32 +theme_override_font_sizes/italics_font_size = 32 +theme_override_font_sizes/mono_font_size = 32 +bbcode_enabled = true +text = "[b][font size=64]SUPER SPACE GAME[/font][/b]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Flow" type="HFlowContainer" parent="UI/Control/Title"] +layout_mode = 2 +alignment = 1 + +[node name="InputIconTextureRect3" type="TextureRect" parent="UI/Control/Title/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_up" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect2" type="TextureRect" parent="UI/Control/Title/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_down" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/Title/Flow"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_accept" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="Buttons" type="HFlowContainer" parent="UI/Control/Title"] +layout_mode = 2 +alignment = 1 + +[node name="NewGame" type="Button" parent="UI/Control/Title/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +focus_neighbor_top = NodePath("../Quit") +text = "New Game" + +[node name="LoadGame" type="Button" parent="UI/Control/Title/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "Load Game" + +[node name="Settings" type="Button" parent="UI/Control/Title/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "Settings" + +[node name="Credits" type="Button" parent="UI/Control/Title/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "Credits" + +[node name="Quit" type="Button" parent="UI/Control/Title/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +focus_neighbor_bottom = NodePath("../NewGame") +text = "Quit" + +[node name="Buttons2" type="HFlowContainer" parent="UI/Control/Title"] +layout_mode = 2 +alignment = 1 + +[node name="TextureButton" type="TextureButton" parent="UI/Control/Title/Buttons2"] +layout_mode = 2 + +[node name="Credits" type="VBoxContainer" parent="UI/Control"] +visible = false +layout_mode = 0 +offset_left = 480.0 +offset_right = 1120.0 +offset_bottom = 900.0 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="RichTextLabel" parent="UI/Control/Credits"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("1_wosw1") +theme_override_fonts/bold_font = ExtResource("3_b3w7a") +theme_override_font_sizes/normal_font_size = 32 +theme_override_font_sizes/bold_font_size = 32 +theme_override_font_sizes/bold_italics_font_size = 32 +theme_override_font_sizes/italics_font_size = 32 +theme_override_font_sizes/mono_font_size = 32 +bbcode_enabled = true +text = "[b][font size=64]SUPER SPACE GAME[/font][/b]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label2" type="RichTextLabel" parent="UI/Control/Credits"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("1_wosw1") +theme_override_fonts/bold_font = ExtResource("3_b3w7a") +theme_override_font_sizes/normal_font_size = 32 +theme_override_font_sizes/bold_font_size = 32 +theme_override_font_sizes/bold_italics_font_size = 32 +theme_override_font_sizes/italics_font_size = 32 +theme_override_font_sizes/mono_font_size = 32 +bbcode_enabled = true +text = "[b][font size=32]a game by toasterpanic[/font][/b]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label3" type="RichTextLabel" parent="UI/Control/Credits"] +custom_minimum_size = Vector2(640, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("1_wosw1") +theme_override_fonts/bold_font = ExtResource("3_b3w7a") +theme_override_font_sizes/normal_font_size = 32 +theme_override_font_sizes/bold_font_size = 32 +theme_override_font_sizes/bold_italics_font_size = 32 +theme_override_font_sizes/italics_font_size = 32 +theme_override_font_sizes/mono_font_size = 32 +bbcode_enabled = true +text = "[font size=20]some sound effects by freesound_community on Pixabay[/font]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Buttons" type="HFlowContainer" parent="UI/Control/Credits"] +layout_mode = 2 +alignment = 1 + +[node name="ExitCredits" type="Button" parent="UI/Control/Credits/Buttons"] +custom_minimum_size = Vector2(324, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "Exit" + +[node name="InputIconTextureRect2" type="TextureRect" parent="UI/Control/Credits/Buttons"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_accept" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="Settings" parent="UI/Control" instance=ExtResource("6_yql1r")] +visible = false +layout_mode = 1 +offset_left = -322.0 +offset_right = 322.0 + +[node name="FadeToBlack" type="ColorRect" parent="UI"] +process_mode = 3 +modulate = Color(1, 1, 1, 0) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0, 0, 0, 1) + +[node name="Shader" type="ColorRect" parent="UI"] +material = SubResource("ShaderMaterial_pyl7j") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(1, 1, 1, 0) + +[connection signal="pressed" from="UI/Control/ControllerInfo/Box/Flow/Continue" to="." method="_on_continue_pressed"] +[connection signal="pressed" from="UI/Control/Title/Buttons/Settings" to="." method="_on_settings_pressed"] +[connection signal="pressed" from="UI/Control/Title/Buttons/Credits" to="." method="_on_credits_pressed"] +[connection signal="pressed" from="UI/Control/Title/Buttons/Quit" to="." method="_on_quit_pressed"] +[connection signal="pressed" from="UI/Control/Credits/Buttons/ExitCredits" to="." method="_on_exit_credits_pressed"] diff --git a/scenes/ui.tres b/scenes/ui.tres index ba17c04..251e5ee 100644 --- a/scenes/ui.tres +++ b/scenes/ui.tres @@ -1,4 +1,7 @@ -[gd_resource type="Theme" load_steps=7 format=3 uid="uid://dtc7h6gpwpend"] +[gd_resource type="Theme" load_steps=12 format=3 uid="uid://dtc7h6gpwpend"] + +[ext_resource type="Texture2D" uid="uid://c3pnbadrl2ndx" path="res://textures/slider_inactive.png" id="1_ue5e3"] +[ext_resource type="Texture2D" uid="uid://ck5prlddwtlse" path="res://textures/slider.png" id="2_s6eqm"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mq06m"] bg_color = Color(0, 0, 0, 1) @@ -17,6 +20,42 @@ corner_detail = 1 bg_color = Color(1, 1, 1, 1) corner_detail = 1 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_008vo"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.53333336, 0.53333336, 0.53333336, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 1 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_caq12"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 1 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bv8ho"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.06666667, 0.06666667, 0.06666667, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 1 + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s6eqm"] bg_color = Color(0, 0, 0, 1) border_width_left = 2 @@ -46,6 +85,12 @@ Button/styles/hover = SubResource("StyleBoxFlat_mq06m") Button/styles/hover_pressed = SubResource("StyleBoxFlat_ue5e3") Button/styles/normal = SubResource("StyleBoxFlat_oei2i") Button/styles/pressed = SubResource("StyleBoxFlat_ue5e3") +HSlider/icons/grabber = ExtResource("1_ue5e3") +HSlider/icons/grabber_disabled = ExtResource("1_ue5e3") +HSlider/icons/grabber_highlight = ExtResource("2_s6eqm") +HSlider/styles/grabber_area = SubResource("StyleBoxFlat_008vo") +HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_caq12") +HSlider/styles/slider = SubResource("StyleBoxFlat_bv8ho") Panel/styles/panel = SubResource("StyleBoxFlat_s6eqm") PanelContainer/styles/panel = SubResource("StyleBoxFlat_s6eqm") ProgressBar/colors/font_color = Color(0, 0, 0, 1) diff --git a/scripts/game.gd b/scripts/game.gd index fb725e4..1ad21c0 100644 --- a/scripts/game.gd +++ b/scripts/game.gd @@ -55,7 +55,6 @@ func _ready() -> void: LimboConsole.register_command(summon_enemy, "summon_enemy", "Summons an enemy.") var events = InputMap.action_get_events("forward") - print(events) if global.ground_location: $Player.global_position = get_node(global.ground_location + "/ExitPoint").global_position @@ -67,9 +66,6 @@ func _process(delta: float) -> void: $Navring.position = $Player.position - $UI/Control/BoostText.text = "BOOST: " + str($Player.boost) - $UI/Control/Distance.text = "DIST: " + str(floori($Player.position.length())) - if current_atmospheric_track: if not current_atmospheric_track.playing: time_since_last_atmospheric_track = 0 diff --git a/scripts/global.gd b/scripts/global.gd index ff9a39b..692f796 100644 --- a/scripts/global.gd +++ b/scripts/global.gd @@ -30,3 +30,9 @@ var stats = { "boost_tank_size": 1, "marks": 200, } + +var settings = { + "master_volume": 1.0, + "music_volume": 1.0, + "sfx_volume": 1.0, +} diff --git a/scripts/player.gd b/scripts/player.gd index e6885bd..26f5ae1 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -103,8 +103,6 @@ func _on_hitbox_body_shape_entered(body_rid: RID, body: Node2D, body_shape_index if "linear_velocity" in body: hit_velocity = body.linear_velocity.length() + linear_velocity.length() - print(hit_velocity) - if hit_velocity > 256: camera_shake_power = 4 diff --git a/scripts/settings.gd b/scripts/settings.gd new file mode 100644 index 0000000..6062c1b --- /dev/null +++ b/scripts/settings.gd @@ -0,0 +1,27 @@ +extends PanelContainer + +func _ready() -> void: + $Scroll/Flow/Flow2/MasterVolume.value = global.settings.master_volume + $Scroll/Flow/Flow3/MusicVolume.value = global.settings.music_volume + $Scroll/Flow/Flow4/SFXVolume.value = global.settings.sfx_volume + +func _on_master_volume_value_changed(value: float) -> void: + global.settings.master_volume = value + $Scroll/Flow/Flow2/MasterVolume/Label.text = str(floori(value * 100)) + "%" + AudioServer.set_bus_volume_linear(0, value) + + +func _on_music_volume_value_changed(value: float) -> void: + global.settings.music_volume = value + $Scroll/Flow/Flow3/MusicVolume/Label.text = str(floori(value * 100)) + "%" + AudioServer.set_bus_volume_linear(1, value) + + +func _on_sfx_volume_value_changed(value: float) -> void: + global.settings.sfx_volume = value + $Scroll/Flow/Flow4/SFXVolume/Label.text = str(floori(value * 100)) + "%" + AudioServer.set_bus_volume_linear(2, value) + + +func _on_back_pressed() -> void: + get_owner()._on_settings_back_pressed() diff --git a/scripts/settings.gd.uid b/scripts/settings.gd.uid new file mode 100644 index 0000000..8e5a3a5 --- /dev/null +++ b/scripts/settings.gd.uid @@ -0,0 +1 @@ +uid://jacd1qlw1q5p diff --git a/scripts/title.gd b/scripts/title.gd new file mode 100644 index 0000000..092da6f --- /dev/null +++ b/scripts/title.gd @@ -0,0 +1,196 @@ +extends Node2D + +var transitioning = false + +func _ready() -> void: + $UI/Control/Title.visible = false + $UI/Control/ControllerInfo.visible = true + $UI/Control/ControllerInfo/Box/Flow/Continue.grab_focus() + + + +func _on_continue_pressed() -> void: + if transitioning: return + + transitioning = true + + $UI/Control/ControllerInfo/Box/Flow/Continue.release_focus() + var i = 0 + + while i < 6: + $UI/Control/ControllerInfo.modulate.a -= 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title.visible = true + $UI/Control/ControllerInfo.visible = false + + $UI/Control/Title.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/Title.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title/Buttons/NewGame.grab_focus() + + transitioning = false + + +func _on_quit_pressed() -> void: + if transitioning: return + + transitioning = true + + get_viewport().gui_release_focus() + var i = 0 + + while i < 6: + $UI/FadeToBlack.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + get_tree().quit() + + +func _on_credits_pressed() -> void: + if transitioning: return + + transitioning = true + + get_viewport().gui_release_focus() + var i = 0 + + while i < 6: + $UI/Control/Title.modulate.a -= 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title.visible = false + $UI/Control/Credits.visible = true + + $UI/Control/Credits.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/Credits.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Credits/Buttons/ExitCredits.grab_focus() + + transitioning = false + +func _on_exit_credits_pressed() -> void: + if transitioning: return + + transitioning = true + + get_viewport().gui_release_focus() + var i = 0 + + while i < 6: + $UI/Control/Credits.modulate.a -= 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Credits.visible = false + $UI/Control/Title.visible = true + + $UI/Control/Title.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/Title.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title/Buttons/NewGame.grab_focus() + + transitioning = false + + +func _on_settings_pressed() -> void: + if transitioning: return + + transitioning = true + + get_viewport().gui_release_focus() + var i = 0 + + while i < 6: + $UI/Control/Title.modulate.a -= 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title.visible = false + $UI/Control/Settings.visible = true + + $UI/Control/Settings.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/Settings.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Settings/Scroll/Flow/Back.grab_focus() + + transitioning = false + +func _on_settings_back_pressed() -> void: + if transitioning: return + + transitioning = true + + get_viewport().gui_release_focus() + var i = 0 + + while i < 6: + $UI/Control/Settings.modulate.a -= 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Settings.visible = false + $UI/Control/Title.visible = true + + $UI/Control/Title.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/Title.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/Title/Buttons/NewGame.grab_focus() + + transitioning = false + diff --git a/scripts/title.gd.uid b/scripts/title.gd.uid new file mode 100644 index 0000000..5e52539 --- /dev/null +++ b/scripts/title.gd.uid @@ -0,0 +1 @@ +uid://md1biuc6ygmv diff --git a/textures/pistol.png b/textures/pistol.png new file mode 100644 index 0000000..91ed1bc Binary files /dev/null and b/textures/pistol.png differ diff --git a/textures/pistol.png.import b/textures/pistol.png.import new file mode 100644 index 0000000..b6d9bcc --- /dev/null +++ b/textures/pistol.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csrlh1sbdroud" +path="res://.godot/imported/pistol.png-ff419dbd1311ba2d92c32c7ff503f2cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/pistol.png" +dest_files=["res://.godot/imported/pistol.png-ff419dbd1311ba2d92c32c7ff503f2cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/textures/slider.png b/textures/slider.png new file mode 100644 index 0000000..a449dec Binary files /dev/null and b/textures/slider.png differ diff --git a/textures/slider.png.import b/textures/slider.png.import new file mode 100644 index 0000000..5981ba8 --- /dev/null +++ b/textures/slider.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck5prlddwtlse" +path="res://.godot/imported/slider.png-624b46775da5b6bf5bd537125efc1302.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/slider.png" +dest_files=["res://.godot/imported/slider.png-624b46775da5b6bf5bd537125efc1302.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/textures/slider_inactive.png b/textures/slider_inactive.png new file mode 100644 index 0000000..912c250 Binary files /dev/null and b/textures/slider_inactive.png differ diff --git a/textures/slider_inactive.png.import b/textures/slider_inactive.png.import new file mode 100644 index 0000000..7c1d361 --- /dev/null +++ b/textures/slider_inactive.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3pnbadrl2ndx" +path="res://.godot/imported/slider_inactive.png-01cfba7397be90c6db59562843ef72a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/slider_inactive.png" +dest_files=["res://.godot/imported/slider_inactive.png-01cfba7397be90c6db59562843ef72a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1