diff --git a/client/.import/doop.wav-c367f72b66b202e52047bea064819597.md5 b/client/.import/doop.wav-c367f72b66b202e52047bea064819597.md5 new file mode 100644 index 0000000..d897ab0 --- /dev/null +++ b/client/.import/doop.wav-c367f72b66b202e52047bea064819597.md5 @@ -0,0 +1,3 @@ +source_md5="34e50c915b51252660db4c26d6f61d92" +dest_md5="284c8f30177baaab7a71e88c2fa18e87" + diff --git a/client/.import/doop.wav-c367f72b66b202e52047bea064819597.sample b/client/.import/doop.wav-c367f72b66b202e52047bea064819597.sample new file mode 100644 index 0000000..aeb997f Binary files /dev/null and b/client/.import/doop.wav-c367f72b66b202e52047bea064819597.sample differ diff --git a/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.md5 b/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.md5 new file mode 100644 index 0000000..d897ab0 --- /dev/null +++ b/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.md5 @@ -0,0 +1,3 @@ +source_md5="34e50c915b51252660db4c26d6f61d92" +dest_md5="284c8f30177baaab7a71e88c2fa18e87" + diff --git a/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample b/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample new file mode 100644 index 0000000..aeb997f Binary files /dev/null and b/client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample differ diff --git a/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.md5 b/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.md5 new file mode 100644 index 0000000..4536724 --- /dev/null +++ b/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.md5 @@ -0,0 +1,3 @@ +source_md5="b5b713d18d62a88eb579db8fdc12c626" +dest_md5="3fa5aa738a28dc6cdeb9786d5398a721" + diff --git a/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex b/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex new file mode 100644 index 0000000..792bd0a Binary files /dev/null and b/client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex differ diff --git a/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.md5 b/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.md5 new file mode 100644 index 0000000..48c117a --- /dev/null +++ b/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.md5 @@ -0,0 +1,3 @@ +source_md5="60a33f3b90accb46263e6e020ba53220" +dest_md5="3ecf06c6cb13d5480124991534f6698c" + diff --git a/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample b/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample new file mode 100644 index 0000000..07cf07d Binary files /dev/null and b/client/.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample differ diff --git a/client/Assets/Art/UI/Credits/godot.png b/client/Assets/Art/UI/Credits/godot.png new file mode 100644 index 0000000..3450813 Binary files /dev/null and b/client/Assets/Art/UI/Credits/godot.png differ diff --git a/client/Assets/Art/UI/Credits/godot.png.import b/client/Assets/Art/UI/Credits/godot.png.import new file mode 100644 index 0000000..61c3bf7 --- /dev/null +++ b/client/Assets/Art/UI/Credits/godot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Art/UI/Credits/godot.png" +dest_files=[ "res://.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.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=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/client/Assets/Sfx/doop.wav.import b/client/Assets/Sfx/doop.wav.import new file mode 100644 index 0000000..ca59fb3 --- /dev/null +++ b/client/Assets/Sfx/doop.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/doop.wav-c367f72b66b202e52047bea064819597.sample" + +[deps] + +source_file="res://Assets/Sfx/doop.wav" +dest_files=[ "res://.import/doop.wav-c367f72b66b202e52047bea064819597.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/client/Assets/Sfx/intro/doop.wav b/client/Assets/Sfx/intro/doop.wav new file mode 100644 index 0000000..419ad63 Binary files /dev/null and b/client/Assets/Sfx/intro/doop.wav differ diff --git a/client/Assets/Sfx/intro/doop.wav.import b/client/Assets/Sfx/intro/doop.wav.import new file mode 100644 index 0000000..3182a98 --- /dev/null +++ b/client/Assets/Sfx/intro/doop.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample" + +[deps] + +source_file="res://Assets/Sfx/intro/doop.wav" +dest_files=[ "res://.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/client/Assets/Sfx/recharge.wav b/client/Assets/Sfx/recharge.wav new file mode 100644 index 0000000..d417558 Binary files /dev/null and b/client/Assets/Sfx/recharge.wav differ diff --git a/client/Assets/Sfx/recharge.wav.import b/client/Assets/Sfx/recharge.wav.import new file mode 100644 index 0000000..fb2d52e --- /dev/null +++ b/client/Assets/Sfx/recharge.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample" + +[deps] + +source_file="res://Assets/Sfx/recharge.wav" +dest_files=[ "res://.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/client/Assets/Themes/default.tres b/client/Assets/Themes/default.tres index 281d901..26f144e 100644 --- a/client/Assets/Themes/default.tres +++ b/client/Assets/Themes/default.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=10 format=2] +[gd_resource type="Theme" load_steps=11 format=2] [ext_resource path="res://Assets/Proprietary/hf-scifi-complete/marksman-v1/Marksman.ttf" type="DynamicFontData" id=1] @@ -14,6 +14,9 @@ [sub_resource type="StyleBoxEmpty" id=6] +[sub_resource type="StyleBoxLine" id=9] +color = Color( 0.203922, 0.760784, 0.819608, 0.54902 ) + [sub_resource type="StyleBoxEmpty" id=7] [sub_resource type="DynamicFont" id=8] @@ -37,6 +40,8 @@ Button/styles/hover = SubResource( 4 ) Button/styles/normal = SubResource( 5 ) Button/styles/pressed = SubResource( 6 ) HBoxContainer/constants/separation = 64 +HSeparator/constants/separation = 4 +HSeparator/styles/separator = SubResource( 9 ) Label/colors/font_color = Color( 0.203922, 0.760784, 0.819608, 0.54902 ) Label/colors/font_color_shadow = Color( 0, 0, 0, 0 ) Label/colors/font_outline_modulate = Color( 0.243137, 0.858824, 0.815686, 0.498039 ) diff --git a/client/Nodes/CreditsList.tscn b/client/Nodes/CreditsList.tscn new file mode 100644 index 0000000..679080c --- /dev/null +++ b/client/Nodes/CreditsList.tscn @@ -0,0 +1,198 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://Assets/Art/UI/Credits/godot.png" type="Texture" id=1] +[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/improbable-v1/Improbable.otf" type="DynamicFontData" id=2] +[ext_resource path="res://Assets/Art/logo.png" type="Texture" id=3] +[ext_resource path="res://Assets/Art/head_bg_less.png" type="Texture" id=4] + +[sub_resource type="DynamicFont" id=1] +size = 48 +font_data = ExtResource( 2 ) + +[node name="Scolling" type="VBoxContainer"] +margin_left = 407.0 +margin_top = 720.0 +margin_right = 873.0 +margin_bottom = 1621.0 +size_flags_horizontal = 3 +custom_constants/separation = 64 +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Logo" type="HBoxContainer" parent="."] +margin_right = 562.0 +margin_bottom = 68.0 +alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Logo"] +margin_left = 121.0 +margin_right = 441.0 +margin_bottom = 68.0 +texture = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="."] +margin_top = 132.0 +margin_right = 562.0 +margin_bottom = 216.0 +text = "Writing, Design, and Programming +by Joseph Manley +@josephbmanley" +align = 1 + +[node name="HSeparator" type="HSeparator" parent="."] +margin_top = 280.0 +margin_right = 562.0 +margin_bottom = 284.0 + +[node name="AssetLabel" type="Label" parent="."] +margin_top = 348.0 +margin_right = 562.0 +margin_bottom = 396.0 +custom_fonts/font = SubResource( 1 ) +text = "Assets" +align = 1 +uppercase = true + +[node name="Music" type="Label" parent="."] +margin_top = 460.0 +margin_right = 562.0 +margin_bottom = 515.0 +text = "Music by Tim Beek +@timbeekmusic" +align = 1 + +[node name="Fonts" type="Label" parent="."] +margin_top = 579.0 +margin_right = 562.0 +margin_bottom = 634.0 +text = "Fonts by somepx +@somepx" +align = 1 + +[node name="Shaders" type="Label" parent="."] +margin_top = 698.0 +margin_right = 562.0 +margin_bottom = 753.0 +text = "Scaling Shaders by CptPotato +www.github.com/CptPotato" +align = 1 + +[node name="HSeparator2" type="HSeparator" parent="."] +margin_top = 817.0 +margin_right = 562.0 +margin_bottom = 821.0 + +[node name="ToolsLabel" type="Label" parent="."] +margin_top = 885.0 +margin_right = 562.0 +margin_bottom = 933.0 +custom_fonts/font = SubResource( 1 ) +text = "Tools" +align = 1 +uppercase = true + +[node name="Godot" type="HSplitContainer" parent="."] +margin_top = 997.0 +margin_right = 562.0 +margin_bottom = 1139.0 + +[node name="Label" type="Label" parent="Godot"] +margin_right = 402.0 +margin_bottom = 142.0 +text = " +Godot +Game Engine +www.godotengine.org +" +align = 1 +valign = 1 + +[node name="TextureRect" type="TextureRect" parent="Godot"] +margin_left = 414.0 +margin_right = 562.0 +margin_bottom = 142.0 +texture = ExtResource( 1 ) +expand = true +stretch_mode = 5 + +[node name="Aseprite" type="Label" parent="."] +margin_top = 1203.0 +margin_right = 562.0 +margin_bottom = 1287.0 +text = "Aseprite +Sprite Editor +www.aseprite.org" +align = 1 + +[node name="Tilesetter" type="Label" parent="."] +margin_top = 1351.0 +margin_right = 562.0 +margin_bottom = 1435.0 +text = "Tilesetter +Tileset Design Tool +www.tilesetter.org" +align = 1 + +[node name="DialogSystem" type="Label" parent="."] +margin_top = 1499.0 +margin_right = 562.0 +margin_bottom = 1583.0 +text = "EXP Godot Dialog System +Dialog Editor Godot Addon +www.github.com/EXPWorlds/Godot-Dialog-System" +align = 1 + +[node name="HSeparator3" type="HSeparator" parent="."] +margin_top = 1647.0 +margin_right = 562.0 +margin_bottom = 1651.0 + +[node name="Godot Wild Jam" type="HSplitContainer" parent="."] +margin_top = 1715.0 +margin_right = 562.0 +margin_bottom = 2031.0 + +[node name="Label" type="Label" parent="Godot Wild Jam"] +margin_right = 230.0 +margin_bottom = 316.0 +text = " + + + + +Godot Wild Jam #21 +Submission + + + +" +align = 1 +valign = 1 + +[node name="TextureRect" type="TextureRect" parent="Godot Wild Jam"] +margin_left = 242.0 +margin_right = 562.0 +margin_bottom = 316.0 +texture = ExtResource( 4 ) +expand = true +stretch_mode = 5 + +[node name="Thanks" type="Label" parent="."] +margin_top = 2095.0 +margin_right = 562.0 +margin_bottom = 2121.0 +text = "Thanks for playing!" +align = 1 + +[node name="Feedback" type="Label" parent="."] +margin_top = 2185.0 +margin_right = 562.0 +margin_bottom = 2240.0 +text = "Any and all feedback is appreciated! +cloudsumu.com/r/confeedback" +align = 1 diff --git a/client/Scenes/Credits.scn b/client/Scenes/Credits.scn index d4c6f62..ffcc73f 100644 Binary files a/client/Scenes/Credits.scn and b/client/Scenes/Credits.scn differ diff --git a/client/Scenes/Title.scn b/client/Scenes/Title.scn index 6ecf6e3..07a9f84 100644 Binary files a/client/Scenes/Title.scn and b/client/Scenes/Title.scn differ diff --git a/client/Scripts/Singletons/CreditsManager.gd b/client/Scripts/Singletons/CreditsManager.gd index 300ffcc..6cc2151 100644 --- a/client/Scripts/Singletons/CreditsManager.gd +++ b/client/Scripts/Singletons/CreditsManager.gd @@ -2,11 +2,63 @@ extends Control const SCROLL_SPEED = 25 +var scroll_timer : Timer +const SCROLL_TIP_DELAY = 5 +const SCROLL_FADE_RATE = 0.05 +const SCROLL_SHOW_RATE = 5 + func _ready(): - $"/root/MusicManager".play_music("Dystopian/The Story Continues") + $"/root/MusicManager".play_music("Dystopian/The Story Continues", false) + if not scroll_timer: + scroll_timer = Timer.new() + add_child(scroll_timer) + $Tip.modulate.a = 0 + scroll_timer.connect("timeout", self, "display_tip") + scroll_timer.start(SCROLL_TIP_DELAY) + set_completed() func _process(delta): - $Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED + if Input.is_action_pressed("ui_accept"): + $Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED * 10 + else: + $Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED if abs($Scolling.rect_position.y) > $Scolling.rect_size.y + 100: get_tree().change_scene("res://Scenes/Title.scn") + +func display_tip(): + $Tip.modulate.a = 0 + $Tip.text = "Press SPACE to speed up." + $Tip.show() + scroll_timer.disconnect("timeout", self, "display_tip") + scroll_timer.disconnect("timeout", self, "fade_tip_out") + scroll_timer.disconnect("timeout", self, "start_fade_tip_out") + scroll_timer.connect("timeout", self, "fade_tip_in") + scroll_timer.start(SCROLL_FADE_RATE) + +func start_fade_tip_out(): + scroll_timer.disconnect("timeout", self, "display_tip") + scroll_timer.disconnect("timeout", self, "fade_tip_in") + scroll_timer.disconnect("timeout", self, "start_fade_tip_out") + scroll_timer.connect("timeout", self, "fade_tip_out") + scroll_timer.start(SCROLL_FADE_RATE) + +func fade_tip_in(): + $Tip.modulate.a = clamp($Tip.modulate.a + 0.1, 0, 1) + if $Tip.modulate.a == 1: + scroll_timer.disconnect("timeout", self, "display_tip") + scroll_timer.disconnect("timeout", self, "fade_tip_out") + scroll_timer.disconnect("timeout", self, "fade_tip_in") + scroll_timer.connect("timeout", self, "start_fade_tip_out") + scroll_timer.start(SCROLL_SHOW_RATE) + +func fade_tip_out(): + $Tip.modulate.a = clamp($Tip.modulate.a - 0.1, 0, 1) + if $Tip.modulate.a == 0: + scroll_timer.stop() + +func set_completed(): + var file = File.new() + file.open("user://progress.json", File.WRITE) + file.store_string(to_json({"completed":"true"})) + file.close() diff --git a/client/Scripts/Singletons/WorldManager.gd b/client/Scripts/Singletons/WorldManager.gd index 94c4d21..a569007 100644 --- a/client/Scripts/Singletons/WorldManager.gd +++ b/client/Scripts/Singletons/WorldManager.gd @@ -10,8 +10,8 @@ func _ready(): audio_player = AudioStreamPlayer.new() add_child(audio_player) $Fader/ColorRect.show() - play_sound(preload("res://Assets/Sfx/intro/processed.wav")) + play_sound(preload("res://Assets/Sfx/intro/doop.wav")) func play_sound(audio_stream): audio_player.stream = audio_stream - #audio_player.play() + audio_player.play() diff --git a/client/Scripts/Systems/TitleButtons.gd b/client/Scripts/Systems/TitleButtons.gd index 05cef5f..865ee30 100644 --- a/client/Scripts/Systems/TitleButtons.gd +++ b/client/Scripts/Systems/TitleButtons.gd @@ -14,6 +14,7 @@ func _ready(): $CreditsButton.connect("button_down", self, "_on_button_press", ["credits"]) $OptionsButton.connect("button_down", self, "_on_button_press", ["options"]) $BugButton.connect("button_down", self, "_on_button_press", ["bug"]) + check_completion() func _on_button_press(button): @@ -29,3 +30,20 @@ func _on_button_press(button): get_parent().get_parent().get_node("OptionsDialog").popup_centered() "bug": OS.shell_open("https://github.com/josephbmanley/the-connection/issues/new?labels=bug&template=1_bug_report.md") + "feedback": + OS.shell_open("https://cloudsumu.com/r/confeedback") + +func check_completion(): + var file = File.new() + if file.file_exists("user://progress.json"): + file.open("user://progress.json", File.READ) + var data = parse_json(file.get_as_text()) + file.close() + if typeof(data) == TYPE_DICTIONARY: + if "completed" in data: + if data["completed"] == "true": + var feed_back_button = Button.new() + feed_back_button.text = "Give Feedback" + feed_back_button.connect("button_down", self, "_on_button_press", ["feedback"]) + add_child(feed_back_button) + move_child(feed_back_button, 3) diff --git a/client/export_presets.cfg b/client/export_presets.cfg index b9367e2..18cf5c7 100644 --- a/client/export_presets.cfg +++ b/client/export_presets.cfg @@ -91,7 +91,7 @@ custom_features="" export_filter="all_resources" include_filter="*" exclude_filter="" -export_path="" +export_path="../../../Downloads/build/The Connection.x86_64" patch_list=PoolStringArray( ) script_export_mode=1 script_encryption_key=""