diff --git a/assets/Fonts/AlphaProta-Wy7VE.ttf b/assets/Fonts/AlphaProta-Wy7VE.ttf new file mode 100644 index 0000000..e729620 Binary files /dev/null and b/assets/Fonts/AlphaProta-Wy7VE.ttf differ diff --git a/assets/UI/Menu_Recipes.png b/assets/UI/Menu_Recipes.png new file mode 100644 index 0000000..2a980f8 Binary files /dev/null and b/assets/UI/Menu_Recipes.png differ diff --git a/assets/UI/Menu_Recipes.png.import b/assets/UI/Menu_Recipes.png.import new file mode 100644 index 0000000..576d1c4 --- /dev/null +++ b/assets/UI/Menu_Recipes.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Menu_Recipes.png-bafc812259ffc5e37891cc8023a7e6bd.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/UI/Menu_Recipes.png" +dest_files=[ "res://.import/Menu_Recipes.png-bafc812259ffc5e37891cc8023a7e6bd.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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/level/Bedroom_Floor_MAT.material b/assets/level/Bedroom_Floor_MAT.material index c1b8ea4..2b95d3d 100644 Binary files a/assets/level/Bedroom_Floor_MAT.material and b/assets/level/Bedroom_Floor_MAT.material differ diff --git a/assets/level/CenterHub_Floor_MAT.material b/assets/level/CenterHub_Floor_MAT.material index 952ce5b..5987c1b 100644 Binary files a/assets/level/CenterHub_Floor_MAT.material and b/assets/level/CenterHub_Floor_MAT.material differ diff --git a/assets/level/CommunicationsArray_Console_MAT.material b/assets/level/CommunicationsArray_Console_MAT.material new file mode 100644 index 0000000..bad2f5b Binary files /dev/null and b/assets/level/CommunicationsArray_Console_MAT.material differ diff --git a/assets/level/Hallway_Floor_MAT.material b/assets/level/Hallway_Floor_MAT.material index 657d6a0..0db13d8 100644 Binary files a/assets/level/Hallway_Floor_MAT.material and b/assets/level/Hallway_Floor_MAT.material differ diff --git a/assets/level/Hallway_Window_MAT.material b/assets/level/Hallway_Window_MAT.material index 31f116c..53d2c7e 100644 Binary files a/assets/level/Hallway_Window_MAT.material and b/assets/level/Hallway_Window_MAT.material differ diff --git a/assets/level/Level.glb b/assets/level/Level.glb index 1992a28..8aae695 100644 Binary files a/assets/level/Level.glb and b/assets/level/Level.glb differ diff --git a/assets/level/Room_Floor_MAT.material b/assets/level/Room_Floor_MAT.material index b29e968..2a9265f 100644 Binary files a/assets/level/Room_Floor_MAT.material and b/assets/level/Room_Floor_MAT.material differ diff --git a/assets/level/Stove_MAT.material b/assets/level/Stove_MAT.material new file mode 100644 index 0000000..351e4e0 Binary files /dev/null and b/assets/level/Stove_MAT.material differ diff --git a/assets/level/blinn26CommunicationsArray_MAT.material b/assets/level/blinn26CommunicationsArray_MAT.material new file mode 100644 index 0000000..db64af3 Binary files /dev/null and b/assets/level/blinn26CommunicationsArray_MAT.material differ diff --git a/project.godot b/project.godot index bfbe071..56d13f6 100644 --- a/project.godot +++ b/project.godot @@ -123,7 +123,7 @@ _global_script_class_icons={ [application] config/name="Dungee" -run/main_scene="res://scenes/main.tscn" +run/main_scene="res://scenes/main_menu.tscn" config/icon="res://assets/icons/icon.png" config/windows_native_icon="res://assets/icons/icon.ico" diff --git a/scenes/game_manager.tscn b/scenes/game_manager.tscn index fcb3ab6..ea040ef 100644 --- a/scenes/game_manager.tscn +++ b/scenes/game_manager.tscn @@ -1,8 +1,22 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://scripts/game_manager.gd" type="Script" id=1] -[ext_resource path="res://assets/tutorial/item_recipes.png" type="Texture" id=2] +[ext_resource path="res://assets/UI/Menu_Recipes.png" type="Texture" id=2] [ext_resource path="res://assets/tutorial/machine_repair.png" type="Texture" id=3] +[ext_resource path="res://assets/Fonts/AlphaProta-Wy7VE.ttf" type="DynamicFontData" id=4] + +[sub_resource type="DynamicFont" id=2] +size = 50 +font_data = ExtResource( 4 ) + +[sub_resource type="DynamicFont" id=1] +size = 75 +font_data = ExtResource( 4 ) + +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 0, 0.282353, 0.721569, 1 ) +border_color = Color( 0, 0, 0, 1 ) +border_blend = true [node name="game_manager" type="CanvasLayer" groups=["game_manager"]] pause_mode = 2 @@ -26,27 +40,11 @@ rect_pivot_offset = Vector2( 989, 509 ) size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="resume_button" type="Button" parent="UI/pause_menu"] -pause_mode = 2 -unique_name_in_owner = true -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -margin_top = -171.0 -margin_right = 63.0 -margin_bottom = -151.0 -rect_scale = Vector2( 4, 4 ) -rect_pivot_offset = Vector2( 30.7864, 9.2928 ) -text = "RESUME" -icon_align = 1 -expand_icon = true - [node name="machine_repair" type="TextureRect" parent="UI/pause_menu"] -anchor_left = 0.532812 -anchor_top = 0.191667 -anchor_right = 0.960938 -anchor_bottom = 0.762037 +anchor_left = 0.466146 +anchor_top = 0.0962963 +anchor_right = 0.894272 +anchor_bottom = 0.666666 margin_left = 6.10352e-05 rect_pivot_offset = Vector2( -754, 325 ) texture = ExtResource( 3 ) @@ -56,30 +54,66 @@ __meta__ = { "_edit_use_anchors_": true } -[node name="item_recipe" type="TextureRect" parent="UI/pause_menu"] -anchor_left = 0.043 -anchor_top = 0.27 -anchor_right = 0.49 -anchor_bottom = 0.718 -margin_left = -0.560005 -margin_top = 0.399994 -margin_right = 0.199951 -margin_bottom = -0.440063 -rect_pivot_offset = Vector2( 1777, -206.5 ) +[node name="recipes" type="TextureRect" parent="UI/pause_menu"] +anchor_left = 0.0427083 +anchor_top = 0.0592593 +anchor_right = 0.323438 +anchor_bottom = 0.925926 texture = ExtResource( 2 ) expand = true -stretch_mode = 6 +__meta__ = { +"_edit_use_anchors_": true +} + +[node name="resume_button" type="Button" parent="UI/pause_menu"] +pause_mode = 2 +unique_name_in_owner = true +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = 166.0 +margin_top = -303.0 +margin_right = 529.0 +margin_bottom = -217.0 +rect_pivot_offset = Vector2( 30.7864, 9.2928 ) +custom_fonts/font = SubResource( 2 ) +text = "RESUME" +icon_align = 1 +expand_icon = true + +[node name="main_menu_button" type="Button" parent="UI/pause_menu"] +pause_mode = 2 +unique_name_in_owner = true +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = 166.0 +margin_top = -184.0 +margin_right = 529.0 +margin_bottom = -98.0 +rect_pivot_offset = Vector2( 30.7864, 9.2928 ) +custom_fonts/font = SubResource( 2 ) +text = "MAIN MENU" +icon_align = 1 +expand_icon = true [node name="day_timer_text" type="Label" parent="UI"] unique_name_in_owner = true anchor_left = 1.0 anchor_right = 1.0 -margin_left = -67.8719 -margin_right = 39.1281 -margin_bottom = 14.0 +margin_left = -520.0 +margin_bottom = 51.0 grow_horizontal = 0 -rect_scale = Vector2( 5, 5 ) rect_pivot_offset = Vector2( 116.901, -0.362253 ) +custom_colors/font_color = Color( 0.0235294, 0.792157, 0, 1 ) +custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) +custom_constants/shadow_offset_x = -2 +custom_constants/shadow_offset_y = 2 +custom_fonts/font = SubResource( 1 ) +custom_styles/normal = SubResource( 3 ) text = "Time Left: 00:20" align = 2 uppercase = true @@ -89,4 +123,5 @@ pause_mode = 1 unique_name_in_owner = true [connection signal="pressed" from="UI/pause_menu/resume_button" to="." method="_on_resume_button_pressed"] +[connection signal="pressed" from="UI/pause_menu/main_menu_button" to="." method="_on_main_menu_button_pressed"] [connection signal="timeout" from="day_timer" to="." method="_on_day_timer_timeout"] diff --git a/scenes/item_dump.tscn b/scenes/item_dump.tscn index 48fc7f2..f05253c 100644 --- a/scenes/item_dump.tscn +++ b/scenes/item_dump.tscn @@ -31,3 +31,7 @@ transform = Transform( 0.901009, -0.433801, 0, 0.433801, 0.901009, 0, 0, 0, 1, - [node name="two_item_balloon2" parent="two_item" instance=ExtResource( 2 )] unique_name_in_owner = true transform = Transform( 0.901009, 0.433801, 0, -0.433801, 0.901009, 0, 0, 0, 1, 1, 2.691, 0 ) + +[connection signal="player_failed_interact" from="." to="one_item/one_item_balloon" method="_on_item_dump_player_failed_interact"] +[connection signal="player_failed_interact" from="." to="two_item/two_item_balloon1" method="_on_item_dump_player_failed_interact"] +[connection signal="player_failed_interact" from="." to="two_item/two_item_balloon2" method="_on_item_dump_player_failed_interact"] diff --git a/scenes/main_menu.tscn b/scenes/main_menu.tscn new file mode 100644 index 0000000..0de12af --- /dev/null +++ b/scenes/main_menu.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://assets/icons/icon.png" type="Texture" id=1] +[ext_resource path="res://assets/Fonts/AlphaProta-Wy7VE.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://scripts/main_menu.gd" type="Script" id=3] + +[sub_resource type="DynamicFont" id=1] +size = 150 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=2] +size = 50 +font_data = ExtResource( 2 ) + +[node name="MainMenu" type="CanvasLayer"] +pause_mode = 2 +script = ExtResource( 3 ) + +[node name="Panel" type="Panel" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 + +[node name="DungeeImage" type="TextureRect" parent="Panel"] +anchor_left = 0.370833 +anchor_top = 0.0555556 +anchor_right = 0.63125 +anchor_bottom = 0.518519 +texture = ExtResource( 1 ) +expand = true +__meta__ = { +"_edit_use_anchors_": true +} + +[node name="DungeeText" type="RichTextLabel" parent="Panel"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -312.0 +margin_top = 70.0 +margin_right = 366.0 +margin_bottom = 224.0 +rect_pivot_offset = Vector2( 342, 83 ) +custom_fonts/normal_font = SubResource( 1 ) +text = "DUNGEE" +scroll_active = false + +[node name="BeginButton" type="Button" parent="Panel"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -122.0 +margin_top = -284.0 +margin_right = 148.0 +margin_bottom = -206.0 +custom_fonts/font = SubResource( 2 ) +text = "BEGIN" +expand_icon = true +__meta__ = { +"_edit_use_anchors_": true +} + +[node name="ExitButton" type="Button" parent="Panel"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -122.0 +margin_top = -169.0 +margin_right = 148.0 +margin_bottom = -91.0 +custom_fonts/font = SubResource( 2 ) +text = "EXIT" +expand_icon = true +__meta__ = { +"_edit_use_anchors_": true +} + +[connection signal="pressed" from="Panel/BeginButton" to="." method="_on_BeginButton_pressed"] +[connection signal="pressed" from="Panel/ExitButton" to="." method="_on_ExitButton_pressed"] diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 2679236..4f215e3 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -1,4 +1,5 @@ extends Node +const MainMenuScenePath : String = "res://scenes/main_menu.tscn" export var time_per_day : float = 600.0 @@ -29,7 +30,7 @@ func _on_player_starved_to_death(): get_tree().paused = true yield(node, "timeline_end") get_tree().paused = false - get_tree().quit() # go back to main menu when such a thing exists + get_tree().change_scene(MainMenuScenePath) func reset_day_timer(): day_timer.start() @@ -43,3 +44,6 @@ func toggle_pause_menu(): func _on_resume_button_pressed(): toggle_pause_menu() + +func _on_main_menu_button_pressed(): + get_tree().change_scene(MainMenuScenePath) diff --git a/scripts/item_balloon.gd b/scripts/item_balloon.gd index 39c1ebc..2c3f0bd 100644 --- a/scripts/item_balloon.gd +++ b/scripts/item_balloon.gd @@ -5,7 +5,6 @@ class_name ItemBalloon const ItemScene = preload("res://scenes/item.tscn") onready var anim_tree : AnimationTree = $"%AnimationTree" -onready var bounce_timer : Timer = $"%bounce_timer" onready var attached_item = $"%attached_item" var anim_playback : AnimationNodeStateMachinePlayback = null @@ -15,21 +14,12 @@ var is_bouncing : bool = false func _ready(): anim_playback = anim_tree["parameters/playback"] anim_playback.travel("idle") - bounce_timer.one_shot = true func attach_item(item : Resource): attached_item.set_item_type(item) func bounce(): - if is_bouncing: - return - is_bouncing = true anim_playback.travel("bounce") - bounce_timer.start(anim_playback.get_current_length()) -func _on_bounce_timer_timeout(): - pass -# assert(is_bouncing) -# anim_playback.start("Balloon Reset") -# anim_playback.travel("Ballon Idle") -# is_bouncing = false +func _on_item_dump_player_failed_interact(): + bounce() diff --git a/scripts/item_dump.gd b/scripts/item_dump.gd index 4f3ebe4..409a677 100644 --- a/scripts/item_dump.gd +++ b/scripts/item_dump.gd @@ -1,6 +1,7 @@ extends Spatial signal item_dump_completed signal item_dumped +signal player_failed_interact export var enabled = true export (Array,Resource) var items_required @@ -27,12 +28,16 @@ func reset(): func on_player_interact(player) -> bool: if not enabled: + emit_signal("player_failed_interact") return false if items_remaining.empty(): + emit_signal("player_failed_interact") return false if not player.has_item(): + emit_signal("player_failed_interact") return false if not items_remaining.has(player.item_in_hand.item_type): + emit_signal("player_failed_interact") return false # Remove the player's item and mark off the item on the remaining list diff --git a/scripts/main_menu.gd b/scripts/main_menu.gd new file mode 100644 index 0000000..afcb856 --- /dev/null +++ b/scripts/main_menu.gd @@ -0,0 +1,10 @@ +extends CanvasLayer + +const MainScene = preload("res://scenes/main.tscn") + +func _on_BeginButton_pressed(): + get_tree().paused = false + get_tree().change_scene_to(MainScene) + +func _on_ExitButton_pressed(): + get_tree().quit()