diff --git a/scenes/game.tscn b/scenes/game.tscn index e18ce65..3c81923 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -98,26 +98,32 @@ stream = ExtResource("3_0tnpc") volume_db = -10.0 bus = &"Music" +[node name="Stars" type="Node2D" parent="."] + [node name="Navring" type="Sprite2D" parent="."] texture = ExtResource("10_dinhu") -[node name="SpaceStation1" type="Sprite2D" parent="."] +[node name="Orbits" type="Node2D" parent="."] + +[node name="SpaceStation1" type="Node2D" parent="Orbits"] + +[node name="SpaceStation1" type="Sprite2D" parent="Orbits/SpaceStation1"] scale = Vector2(2, 2) texture = ExtResource("12_dinhu") script = ExtResource("13_trtic") -[node name="Collision" type="TileMapLayer" parent="SpaceStation1"] +[node name="Collision" type="TileMapLayer" parent="Orbits/SpaceStation1/SpaceStation1"] scale = Vector2(0.5, 0.5) tile_map_data = PackedByteArray("AAD6/wgAAAAAAAAAAAD6/wkAAAAAAAAAAAD6/woAAAAAAAAAAAD6/wsAAAAAAAAAAAD6/wwAAAAAAAAAAAD6/w0AAAAAAAAAAAD6/w4AAAAAAAAAAAD6/w8AAAAAAAAAAAD7/w8AAAAAAAAAAAD8/w8AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/w4AAAAAAAAAAAD8/w4AAAAAAAAAAAD7/w4AAAAAAAAAAAD7/w0AAAAAAAAAAAD7/wwAAAAAAAAAAAD7/wsAAAAAAAAAAAD7/woAAAAAAAAAAAD7/wkAAAAAAAAAAAD7/wgAAAAAAAAAAAD8/wgAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD8/wwAAAAAAAAAAAD8/w0AAAAAAAAAAAD8/wsAAAAAAAAAAAD8/woAAAAAAAAAAAD8/wkAAAAAAAAAAAD+/wkAAAAAAAAAAAD//wkAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAABAAgAAAAAAAAAAAAAAAgAAAAAAAAAAAD//wgAAAAAAAAAAAD+/wgAAAAAAAAAAAD+/wcAAAAAAAAAAAD+/wYAAAAAAAAAAAD//wYAAAAAAAAAAAAAAAYAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAACAAgAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAkAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAgAAAAAAAAAAAADAAoAAAAAAAAAAAACAAoAAAAAAAAAAAACAAsAAAAAAAAAAAACAAwAAAAAAAAAAAACAA0AAAAAAAAAAAACAA4AAAAAAAAAAAACAA8AAAAAAAAAAAADAA8AAAAAAAAAAAAEAA8AAAAAAAAAAAAFAA8AAAAAAAAAAAAFAA4AAAAAAAAAAAAEAA4AAAAAAAAAAAADAA4AAAAAAAAAAAADAA0AAAAAAAAAAAAEAA0AAAAAAAAAAAAFAA0AAAAAAAAAAAAFAAwAAAAAAAAAAAAEAAwAAAAAAAAAAAADAAwAAAAAAAAAAAADAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAFAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAkAAAAAAAAAAAD4/wEAAAAAAAAAAAD4/wIAAAAAAAAAAAD4/wMAAAAAAAAAAAD4/wQAAAAAAAAAAAD5/wEAAAAAAAAAAAD5/wIAAAAAAAAAAAD5/wMAAAAAAAAAAAD5/wQAAAAAAAAAAAD6/wEAAAAAAAAAAAD6/wIAAAAAAAAAAAD6/wMAAAAAAAAAAAD6/wQAAAAAAAAAAAD7/wEAAAAAAAAAAAD7/wIAAAAAAAAAAAD7/wMAAAAAAAAAAAD7/wQAAAAAAAAAAAD8/wEAAAAAAAAAAAD8/wIAAAAAAAAAAAD8/wMAAAAAAAAAAAD8/wQAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wIAAAAAAAAAAAD9/wMAAAAAAAAAAAD9/wQAAAAAAAAAAAD+/wEAAAAAAAAAAAD+/wIAAAAAAAAAAAD+/wMAAAAAAAAAAAD+/wQAAAAAAAAAAAD//wEAAAAAAAAAAAD//wIAAAAAAAAAAAD//wMAAAAAAAAAAAD//wQAAAAAAAAAAAD//wUAAAAAAAAAAADz/wYAAAAAAAAAAADz/wcAAAAAAAAAAADz/wgAAAAAAAAAAADz/wkAAAAAAAAAAAD0/wYAAAAAAAAAAAD0/wcAAAAAAAAAAAD0/wgAAAAAAAAAAAD0/wkAAAAAAAAAAAD1/wYAAAAAAAAAAAD1/wcAAAAAAAAAAAD1/wgAAAAAAAAAAAD1/wkAAAAAAAAAAAD2/wYAAAAAAAAAAAD2/wcAAAAAAAAAAAD2/wgAAAAAAAAAAAD2/wkAAAAAAAAAAAD3/wYAAAAAAAAAAAD3/wcAAAAAAAAAAAD3/wgAAAAAAAAAAAD3/wkAAAAAAAAAAAD4/wYAAAAAAAAAAAD4/wcAAAAAAAAAAAD4/wgAAAAAAAAAAAD4/wkAAAAAAAAAAAD5/wcAAAAAAAAAAAD5/wgAAAAAAAAAAAD6/wcAAAAAAAAAAAD7/wcAAAAAAAAAAAD8/wcAAAAAAAAAAAD9/wcAAAAAAAAAAAD0//3/AAAAAAAAAAD0//7/AAAAAAAAAAD0////AAAAAAAAAAD0/wAAAAAAAAAAAAD0/wEAAAAAAAAAAAD0/wIAAAAAAAAAAAD0/wMAAAAAAAAAAAD0/wQAAAAAAAAAAAD0/wUAAAAAAAAAAAD1//3/AAAAAAAAAAD1//7/AAAAAAAAAAD1////AAAAAAAAAAD1/wAAAAAAAAAAAAD1/wEAAAAAAAAAAAD1/wIAAAAAAAAAAAD1/wMAAAAAAAAAAAD1/wQAAAAAAAAAAAD1/wUAAAAAAAAAAADx//3/AAAAAAAAAADy//3/AAAAAAAAAADz//3/AAAAAAAAAAD2//3/AAAAAAAAAADx//7/AAAAAAAAAADx/wIAAAAAAAAAAADx/wMAAAAAAAAAAADy//7/AAAAAAAAAADy////AAAAAAAAAADy/wAAAAAAAAAAAADy/wEAAAAAAAAAAADy/wIAAAAAAAAAAADy/wMAAAAAAAAAAADz//7/AAAAAAAAAADz////AAAAAAAAAADz/wAAAAAAAAAAAADz/wEAAAAAAAAAAADz/wIAAAAAAAAAAADz/wMAAAAAAAAAAAD2//7/AAAAAAAAAAD2////AAAAAAAAAAD2/wAAAAAAAAAAAAD2/wEAAAAAAAAAAAD2/wIAAAAAAAAAAAD2/wMAAAAAAAAAAADw//D/AAAAAAAAAADw//H/AAAAAAAAAADw//L/AAAAAAAAAADw//P/AAAAAAAAAADw//T/AAAAAAAAAADw//X/AAAAAAAAAADw//b/AAAAAAAAAADx//D/AAAAAAAAAADx//H/AAAAAAAAAADx//L/AAAAAAAAAADx//P/AAAAAAAAAADx//T/AAAAAAAAAADx//X/AAAAAAAAAADx//b/AAAAAAAAAADy//D/AAAAAAAAAADy//H/AAAAAAAAAADy//L/AAAAAAAAAADy//P/AAAAAAAAAADy//T/AAAAAAAAAADy//X/AAAAAAAAAADy//b/AAAAAAAAAADz//D/AAAAAAAAAADz//H/AAAAAAAAAADz//L/AAAAAAAAAADz//P/AAAAAAAAAADz//T/AAAAAAAAAADz//X/AAAAAAAAAADz//b/AAAAAAAAAAD0//D/AAAAAAAAAAD0//H/AAAAAAAAAAD0//L/AAAAAAAAAAD0//P/AAAAAAAAAAD0//T/AAAAAAAAAAD0//X/AAAAAAAAAAD0//b/AAAAAAAAAAD1//D/AAAAAAAAAAD1//H/AAAAAAAAAAD1//L/AAAAAAAAAAD1//P/AAAAAAAAAAD1//T/AAAAAAAAAAD1//X/AAAAAAAAAAD1//b/AAAAAAAAAAD2//D/AAAAAAAAAAD2//H/AAAAAAAAAAD2//L/AAAAAAAAAAD2//P/AAAAAAAAAAD2//T/AAAAAAAAAAD2//X/AAAAAAAAAAD2//b/AAAAAAAAAAD1//f/AAAAAAAAAAD1//j/AAAAAAAAAAD1//n/AAAAAAAAAAD1//r/AAAAAAAAAAD1//v/AAAAAAAAAAD1//z/AAAAAAAAAAD0//j/AAAAAAAAAAD0//n/AAAAAAAAAAD0//r/AAAAAAAAAAD0//v/AAAAAAAAAAD2//j/AAAAAAAAAAD2//n/AAAAAAAAAAD2//r/AAAAAAAAAAD2//v/AAAAAAAAAAD4//r/AAAAAAAAAAD4//v/AAAAAAAAAAD4//z/AAAAAAAAAAD4//3/AAAAAAAAAAD4//7/AAAAAAAAAAD4////AAAAAAAAAAD5//r/AAAAAAAAAAD5//v/AAAAAAAAAAD5//z/AAAAAAAAAAD5//3/AAAAAAAAAAD5//7/AAAAAAAAAAD5////AAAAAAAAAAD6//r/AAAAAAAAAAD6//v/AAAAAAAAAAD6//z/AAAAAAAAAAD6//3/AAAAAAAAAAD6//7/AAAAAAAAAAD6////AAAAAAAAAAD7//r/AAAAAAAAAAD7//v/AAAAAAAAAAD7//z/AAAAAAAAAAD7//3/AAAAAAAAAAD7//7/AAAAAAAAAAD7////AAAAAAAAAAD8//r/AAAAAAAAAAD8//v/AAAAAAAAAAD8//z/AAAAAAAAAAD8//3/AAAAAAAAAAD8//7/AAAAAAAAAAD8////AAAAAAAAAAD9//r/AAAAAAAAAAD9//v/AAAAAAAAAAD9//z/AAAAAAAAAAD9//3/AAAAAAAAAAD9//7/AAAAAAAAAAD9////AAAAAAAAAAD6/wAAAAAAAAAAAAD8/wAAAAAAAAAAAAD6//X/AAAAAAAAAAD6//b/AAAAAAAAAAD6//f/AAAAAAAAAAD6//j/AAAAAAAAAAD7//X/AAAAAAAAAAD7//b/AAAAAAAAAAD7//f/AAAAAAAAAAD7//j/AAAAAAAAAAD8//X/AAAAAAAAAAD8//b/AAAAAAAAAAD8//f/AAAAAAAAAAD8//j/AAAAAAAAAAD9//X/AAAAAAAAAAD9//b/AAAAAAAAAAD9//f/AAAAAAAAAAD9//j/AAAAAAAAAAD7//n/AAAAAAAAAAD+//z/AAAAAAAAAAD///z/AAAAAAAAAAAAAPz/AAAAAAAAAAABAPz/AAAAAAAAAAACAPz/AAAAAAAAAAADAPz/AAAAAAAAAAD///v/AAAAAAAAAAD///3/AAAAAAAAAAAAAPv/AAAAAAAAAAAAAP3/AAAAAAAAAAABAPv/AAAAAAAAAAABAP3/AAAAAAAAAAACAPv/AAAAAAAAAAACAP3/AAAAAAAAAAADAPv/AAAAAAAAAAADAP3/AAAAAAAAAAACAP7/AAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAMAAAAAAAAAAAAFAAIAAAAAAAAAAAAFAAMAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAABAP//AAAAAAAAAAABAAAAAAAAAAAAAAABAAEAAAAAAAAAAAABAAQAAAAAAAAAAAACAP//AAAAAAAAAAACAAAAAAAAAAAAAAACAAEAAAAAAAAAAAACAAQAAAAAAAAAAAADAP//AAAAAAAAAAADAAAAAAAAAAAAAAADAAEAAAAAAAAAAAADAAQAAAAAAAAAAAAEAP//AAAAAAAAAAAEAAAAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAQAAAAAAAAAAAAFAP//AAAAAAAAAAAFAAAAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAQAAAAAAAAAAAAGAP//AAAAAAAAAAAGAAAAAAAAAAAAAAAGAAEAAAAAAAAAAAAGAAQAAAAAAAAAAAD9/w0AAAAAAAAAAAA=") tile_set = SubResource("TileSet_ca42v") -[node name="EnterHitbox" type="Area2D" parent="SpaceStation1"] +[node name="EnterHitbox" type="Area2D" parent="Orbits/SpaceStation1/SpaceStation1"] position = Vector2(0, 176) -[node name="CollisionShape2D" type="CollisionShape2D" parent="SpaceStation1/EnterHitbox"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="Orbits/SpaceStation1/SpaceStation1/EnterHitbox"] shape = SubResource("RectangleShape2D_kvuet") -[node name="ExitPoint" type="Node2D" parent="SpaceStation1"] +[node name="ExitPoint" type="Node2D" parent="Orbits/SpaceStation1/SpaceStation1"] position = Vector2(0, 245.5) rotation = 3.1415927 @@ -431,7 +437,7 @@ grow_horizontal = 2 grow_vertical = 2 color = Color(1, 1, 1, 0) -[connection signal="area_entered" from="SpaceStation1/EnterHitbox" to="SpaceStation1" method="_on_enter_hitbox_area_entered"] -[connection signal="body_entered" from="SpaceStation1/EnterHitbox" to="SpaceStation1" method="_on_enter_hitbox_body_entered"] +[connection signal="area_entered" from="Orbits/SpaceStation1/SpaceStation1/EnterHitbox" to="Orbits/SpaceStation1/SpaceStation1" method="_on_enter_hitbox_area_entered"] +[connection signal="body_entered" from="Orbits/SpaceStation1/SpaceStation1/EnterHitbox" to="Orbits/SpaceStation1/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"] diff --git a/scenes/ground.tscn b/scenes/ground.tscn index ace20e4..b463a8d 100644 --- a/scenes/ground.tscn +++ b/scenes/ground.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=46 format=4 uid="uid://by43ihcec8e8q"] +[gd_scene load_steps=52 format=4 uid="uid://by43ihcec8e8q"] [ext_resource type="Script" uid="uid://b2sw6ymaf4t0s" path="res://scripts/game_ground.gd" id="1_6ra5r"] [ext_resource type="AudioStream" uid="uid://dgv01wy8r7ej2" path="res://sounds/uglyburger.mp3" id="2_5vwr8"] @@ -16,6 +16,7 @@ [ext_resource type="Script" uid="uid://cireshybqi5oq" path="res://scripts/galactamart_worker.gd" id="8_e3s4u"] [ext_resource type="Shader" uid="uid://bk7q00br1ms30" path="res://scripts/retro.gdshader" id="9_257nh"] [ext_resource type="Script" uid="uid://dxkb8v7w4daw1" path="res://scripts/interact_area.gd" id="10_26mqe"] +[ext_resource type="Texture2D" uid="uid://de0xeo6j2h1au" path="res://textures/nurse-ground-sheet.png" id="13_2tk4m"] [ext_resource type="Script" uid="uid://khas1kkt2t3k" path="res://scripts/exit_ship.gd" id="14_257nh"] [ext_resource type="Texture2D" uid="uid://b047lku56vtve" path="res://textures/galacta_counter.png" id="15_vuhkc"] [ext_resource type="Texture2D" uid="uid://dauoebs801ngm" path="res://addons/super_awesome_input_icons/textures/keyboard/question.png" id="16_e3s4u"] @@ -123,6 +124,62 @@ radius = 0.0 [sub_resource type="CircleShape2D" id="CircleShape2D_vuhkc"] radius = 96.0 +[sub_resource type="AtlasTexture" id="AtlasTexture_gur08"] +atlas = ExtResource("13_2tk4m") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eyphm"] +atlas = ExtResource("13_2tk4m") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_41adg"] +atlas = ExtResource("13_2tk4m") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dnkg1"] +atlas = ExtResource("13_2tk4m") +region = Rect2(192, 0, 64, 64) + +[sub_resource type="SpriteFrames" id="SpriteFrames_n2e0y"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_gur08") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_eyphm") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_41adg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eyphm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dnkg1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gur08") +}], +"loop": true, +"name": &"walk", +"speed": 6.0 +}] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_176r3"] +radius = 16.0 +height = 48.0 + [sub_resource type="RectangleShape2D" id="RectangleShape2D_vuhkc"] size = Vector2(128, 60) @@ -171,10 +228,6 @@ animations = [{ "speed": 7.0 }] -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_176r3"] -radius = 16.0 -height = 48.0 - [sub_resource type="RectangleShape2D" id="RectangleShape2D_gysiw"] size = Vector2(40, 40) @@ -213,6 +266,7 @@ shader_parameter/lens_distortion_strength = 0.0 [sub_resource type="Environment" id="Environment_wky5g"] [node name="Ground" type="Node2D"] +y_sort_enabled = true script = ExtResource("1_6ra5r") [node name="Uglyburger" type="AudioStreamPlayer" parent="."] @@ -226,9 +280,10 @@ stream = ExtResource("3_rncil") [node name="Map" type="TileMapLayer" parent="."] modulate = Color(0.53333336, 0.53333336, 0.53333336, 1) +z_index = -4096 material = SubResource("CanvasItemMaterial_gysiw") scale = Vector2(2, 2) -tile_map_data = PackedByteArray("AAD9/wIAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wAAAAAAAAAAAAD9////AAAAAAAAAAD9//7/AAAAAAAAAAD9/wMAAAAAAAAAAAD9/wQAAAAAAAAAAAD9/wUAAAAAAAAAAAD9/wYAAAAAAAAAAAD9/wcAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD9/w0AAAAAAAAAAAD9/w4AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/xAAAAAAAAAAAAD9/xEAAAAAAAAAAAD9/xIAAAAAAAAAAAD9/xMAAAAAAAAAAAD9/xQAAAAAAAAAAAD9/xUAAAAAAAAAAAD9/xYAAAAAAAAAAAD9//3/AAAAAAAAAAD+//3/AAAAAAAAAAD///3/AAAAAAAAAAAAAP3/AAAAAAAAAAABAP3/AAAAAAAAAAACAP3/AAAAAAAAAAADAP3/AAAAAAAAAAAHAP3/AAAAAAAAAAAIAP3/AAAAAAAAAAAJAP3/AAAAAAAAAAAKAP3/AAAAAAAAAAALAP3/AAAAAAAAAAAMAP3/AAAAAAAAAAASAP3/AAAAAAAAAAATAP3/AAAAAAAAAAAUAP3/AAAAAAAAAAAVAP3/AAAAAAAAAAAWAP3/AAAAAAAAAAAXAP3/AAAAAAAAAAAYAP3/AAAAAAAAAAAZAP3/AAAAAAAAAAAaAP3/AAAAAAAAAAAbAP3/AAAAAAAAAAAcAP3/AAAAAAAAAAAdAP3/AAAAAAAAAAAeAP3/AAAAAAAAAAAfAP3/AAAAAAAAAAAgAP3/AAAAAAAAAAAhAP3/AAAAAAAAAAAhAP7/AAAAAAAAAAAhAP//AAAAAAAAAAAhAAAAAAAAAAAAAAAhAAEAAAAAAAAAAAAhAAIAAAAAAAAAAAAhAAMAAAAAAAAAAAAhAAQAAAAAAAAAAAAhAAUAAAAAAAAAAAAhAAYAAAAAAAAAAAAhAAcAAAAAAAAAAAAhAAgAAAAAAAAAAAAhAAkAAAAAAAAAAAAhAAoAAAAAAAAAAAAhAAsAAAAAAAAAAAAhAAwAAAAAAAAAAAAhAA0AAAAAAAAAAAAhAA4AAAAAAAAAAAAhAA8AAAAAAAAAAAAhABAAAAAAAAAAAAAhABEAAAAAAAAAAAAhABIAAAAAAAAAAAAhABMAAAAAAAAAAAAhABQAAAAAAAAAAAAhABUAAAAAAAAAAAAhABYAAAAAAAAAAAANAP3/AAAAAAAAAAAOAP3/AAAAAAAAAAAPAP3/AAAAAAAAAAAQAP3/AAAAAAAAAAARAP3/AAAAAAAAAAADAPn/AAAAAAAAAAADAPr/AAAAAAAAAAADAPv/AAAAAAAAAAADAPz/AAAAAAAAAAAHAPn/AAAAAAAAAAAHAPr/AAAAAAAAAAAHAPv/AAAAAAAAAAAHAPz/AAAAAAAAAAD9//n/AAAAAAAAAAD+//n/AAAAAAAAAAD///n/AAAAAAAAAAAAAPn/AAAAAAAAAAABAPn/AAAAAAAAAAACAPn/AAAAAAAAAAD8//n/AAAAAAAAAAD8//j/AAAAAAAAAAD8//f/AAAAAAAAAAD8//b/AAAAAAAAAAD8//X/AAAAAAAAAAD8//T/AAAAAAAAAAD8//P/AAAAAAAAAAD8//L/AAAAAAAAAAD8//H/AAAAAAAAAAD8//D/AAAAAAAAAAD9//D/AAAAAAAAAAD+//D/AAAAAAAAAAD///D/AAAAAAAAAAAAAPD/AAAAAAAAAAABAPD/AAAAAAAAAAACAPD/AAAAAAAAAAADAPD/AAAAAAAAAAAHAPD/AAAAAAAAAAADAO//AAAAAAAAAAADAO7/AAAAAAAAAAADAO3/AAAAAAAAAAADAOz/AAAAAAAAAAAHAO//AAAAAAAAAAAHAO7/AAAAAAAAAAAHAO3/AAAAAAAAAAAHAOz/AAAAAAAAAAAHAOv/AAAAAAAAAAAHAOr/AAAAAAAAAAAHAOn/AAAAAAAAAAAHAOj/AAAAAAAAAAADAOn/AAAAAAAAAAADAOr/AAAAAAAAAAADAOv/AAAAAAAAAAD+//7/BAAAAAAAAAD///7/BAAAAAAAAAAAAP7/BAAAAAAAAAABAP7/BAAAAAAAAAACAP7/BAAAAAAAAAADAP7/AwAAAAAAAAAHAP7/AgAAAAAAAAAIAP7/BAAAAAAAAAAJAP7/BAAAAAAAAAAKAP7/BAAAAAAAAAALAP7/BAAAAAAAAAAMAP7/BAAAAAAAAAANAP7/BAAAAAAAAAAOAP7/BAAAAAAAAAAPAP7/BAAAAAAAAAAQAP7/BAAAAAAAAAARAP7/BAAAAAAAAAASAP7/BAAAAAAAAAAUAP7/BAAAAAAA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") +tile_map_data = PackedByteArray("AAD9/wIAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wAAAAAAAAAAAAD9////AAAAAAAAAAD9//7/AAAAAAAAAAD9/wMAAAAAAAAAAAD9/wQAAAAAAAAAAAD9/wUAAAAAAAAAAAD9/wYAAAAAAAAAAAD9/wcAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD9/w0AAAAAAAAAAAD9/w4AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/xAAAAAAAAAAAAD9/xEAAAAAAAAAAAD9/xIAAAAAAAAAAAD9/xMAAAAAAAAAAAD9/xQAAAAAAAAAAAD9/xUAAAAAAAAAAAD9/xYAAAAAAAAAAAD9//3/AAAAAAAAAAD+//3/AAAAAAAAAAD///3/AAAAAAAAAAAAAP3/AAAAAAAAAAABAP3/AAAAAAAAAAACAP3/AAAAAAAAAAADAP3/AAAAAAAAAAAHAP3/AAAAAAAAAAAIAP3/AAAAAAAAAAAJAP3/AAAAAAAAAAAKAP3/AAAAAAAAAAALAP3/AAAAAAAAAAAMAP3/AAAAAAAAAAASAP3/AAAAAAAAAAATAP3/AAAAAAAAAAAUAP3/AAAAAAAAAAAVAP3/AAAAAAAAAAAWAP3/AAAAAAAAAAAXAP3/AAAAAAAAAAAYAP3/AAAAAAAAAAAZAP3/AAAAAAAAAAAaAP3/AAAAAAAAAAAbAP3/AAAAAAAAAAAcAP3/AAAAAAAAAAAdAP3/AAAAAAAAAAAeAP3/AAAAAAAAAAAfAP3/AAAAAAAAAAAgAP3/AAAAAAAAAAAhAP3/AAAAAAAAAAAhAP7/AAAAAAAAAAAhAP//AAAAAAAAAAAhAAAAAAAAAAAAAAAhAAEAAAAAAAAAAAAhAAIAAAAAAAAAAAAhAAMAAAAAAAAAAAAhAAQAAAAAAAAAAAAhAAUAAAAAAAAAAAAhAAYAAAAAAAAAAAAhAAcAAAAAAAAAAAAhAAgAAAAAAAAAAAAhAAkAAAAAAAAAAAAhAAoAAAAAAAAAAAAhAAsAAAAAAAAAAAAhAAwAAAAAAAAAAAAhAA0AAAAAAAAAAAAhAA4AAAAAAAAAAAAhAA8AAAAAAAAAAAAhABAAAAAAAAAAAAAhABEAAAAAAAAAAAAhABIAAAAAAAAAAAAhABMAAAAAAAAAAAAhABQAAAAAAAAAAAAhABUAAAAAAAAAAAAhABYAAAAAAAAAAAANAP3/AAAAAAAAAAAOAP3/AAAAAAAAAAAPAP3/AAAAAAAAAAAQAP3/AAAAAAAAAAARAP3/AAAAAAAAAAADAPn/AAAAAAAAAAADAPr/AAAAAAAAAAADAPv/AAAAAAAAAAADAPz/AAAAAAAAAAAHAPn/AAAAAAAAAAAHAPr/AAAAAAAAAAAHAPv/AAAAAAAAAAAHAPz/AAAAAAAAAAD9//n/AAAAAAAAAAD+//n/AAAAAAAAAAD///n/AAAAAAAAAAAAAPn/AAAAAAAAAAABAPn/AAAAAAAAAAACAPn/AAAAAAAAAAD8//n/AAAAAAAAAAD8//j/AAAAAAAAAAD8//f/AAAAAAAAAAD8//b/AAAAAAAAAAD8//X/AAAAAAAAAAD8//T/AAAAAAAAAAD8//P/AAAAAAAAAAD8//L/AAAAAAAAAAD8//H/AAAAAAAAAAD8//D/AAAAAAAAAAD9//D/AAAAAAAAAAD+//D/AAAAAAAAAAD///D/AAAAAAAAAAAAAPD/AAAAAAAAAAABAPD/AAAAAAAAAAACAPD/AAAAAAAAAAADAPD/AAAAAAAAAAAHAPD/AAAAAAAAAAADAO//AAAAAAAAAAADAO7/AAAAAAAAAAADAO3/AAAAAAAAAAADAOz/AAAAAAAAAAAHAO//AAAAAAAAAAAHAO7/AAAAAAAAAAAHAO3/AAAAAAAAAAAHAOz/AAAAAAAAAAAHAOv/AAAAAAAAAAAHAOr/AAAAAAAAAAAHAOn/AAAAAAAAAAAHAOj/AAAAAAAAAAADAOv/AAAAAAAAAAD+//7/BAAAAAAAAAD///7/BAAAAAAAAAAAAP7/BAAAAAAAAAABAP7/BAAAAAAAAAACAP7/BAAAAAAAAAADAP7/AwAAAAAAAAAHAP7/AgAAAAAAAAAIAP7/BAAAAAAAAAAJAP7/BAAAAAAAAAAKAP7/BAAAAAAAAAALAP7/BAAAAAAAAAAMAP7/BAAAAAAAAAANAP7/BAAAAAAAAAAOAP7/BAAAAAAAAAAPAP7/BAAAAAAAAAAQAP7/BAAAAAAAAAARAP7/BAAAAAAAAAASAP7/BAAAAAAAAAAUAP7/BAAAAAAAAAAVAP7/BAAAAAAAAAAWAP7/BAAAAAAA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AAAHAOX/AAAAAAAAAAAHAOT/AAAAAAAAAAACAOv/AAAAAAAAAAABAOv/AAAAAAAAAAAAAOv/AAAAAAAAAAD//+v/AAAAAAAAAAD+/+v/AAAAAAAAAAD9/+v/AAAAAAAAAAD8/+v/AAAAAAAAAAD7/+v/AAAAAAAAAAD6/+v/AAAAAAAAAAD5/+v/AAAAAAAAAAD4/+v/AAAAAAAAAAD3/+v/AAAAAAAAAAD2/+v/AAAAAAAAAAD1/+v/AAAAAAAAAAD0/+v/AAAAAAAAAAACAOf/AAAAAAAAAAABAOf/AAAAAAAAAAAAAOf/AAAAAAAAAAD//+f/AAAAAAAAAAADAOT/AAAAAAAAAAADAOP/AAAAAAAAAAD9/+T/AAAAAAAAAAD9/+X/AAAAAAAAAAD9/+b/AAAAAAAAAAD9/+f/AAAAAAAAAAD//+j/AgAAAAAAAAD9/+L/AAAAAAAAAAD+/+L/AAAAAAAAAAD//+L/AAAAAAAAAAAAAOL/AAAAAAAAAAABAOL/AAAAAAAAAAACAOL/AAAAAAAAAAADAOL/AAAAAAAAAAD9/+P/AAAAAAAAAAD9/+j/AwAAAAAAAAAAAOj/BAAAAAAAAAABAOj/BAAAAAAAAAACAOj/BAAAAAAAAAD3/+L/AAAAAAAAAAD3/+P/AAAAAAAAAAD3/+T/AAAAAAAAAAD3/+X/AAAAAAAAAAD3/+b/AAAAAAAAAAD3/+f/AAAAAAAAAAD3/+j/AwAAAAAAAAD4/+L/AAAAAAAAAAD5/+L/AAAAAAAAAAD5/+f/AAAAAAAAAAD5/+j/AgAAAAAAAAD6/+L/AAAAAAAAAAD6/+f/AAAAAAAAAAD6/+j/BAAAAAAAAAD7/+L/AAAAAAAAAAD7/+f/AAAAAAAAAAD7/+j/BAAAAAAAAAD8/+L/AAAAAAAAAAD8/+f/AAAAAAAAAAD8/+j/BAAAAAAAAADx/+L/AAAAAAAAAADx/+P/AAAAAAAAAADx/+T/AAAAAAAAAADx/+X/AAAAAAAAAADx/+b/AAAAAAAAAADx/+f/AAAAAAAAAADx/+j/AwAAAAAAAADy/+L/AAAAAAAAAADz/+L/AAAAAAAAAADz/+f/AAAAAAAAAADz/+j/AgAAAAAAAAD0/+L/AAAAAAAAAAD0/+f/AAAAAAAAAAD0/+j/BAAAAAAAAAD1/+L/AAAAAAAAAAD1/+f/AAAAAAAAAAD1/+j/BAAAAAAAAAD2/+L/AAAAAAAAAAD2/+f/AAAAAAAAAAD2/+j/BAAAAAAAAAA=") tile_set = SubResource("TileSet_gysiw") [node name="GalactamartWorker" type="CharacterBody2D" parent="."] @@ -255,6 +310,25 @@ enabled = false zoom = Vector2(2, 2) position_smoothing_enabled = true +[node name="Doctor" type="CharacterBody2D" parent="."] +position = Vector2(-80, -1785) +script = ExtResource("8_e3s4u") + +[node name="Sprite" type="AnimatedSprite2D" parent="Doctor"] +scale = Vector2(-2, 2) +sprite_frames = SubResource("SpriteFrames_n2e0y") +frame_progress = 0.2938512 + +[node name="Camera" type="Camera2D" parent="Doctor"] +position = Vector2(99, 0) +enabled = false +zoom = Vector2(2, 2) +position_smoothing_enabled = true + +[node name="CollisionShape" type="CollisionShape2D" parent="Doctor"] +position = Vector2(0, 40) +shape = SubResource("CapsuleShape2D_176r3") + [node name="GalactaCounter" type="StaticBody2D" parent="."] position = Vector2(-64, -883) scale = Vector2(2, 2) @@ -443,6 +517,9 @@ color = Color(1, 1, 1, 0) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_wky5g") +[node name="IntroSpawn" type="Node2D" parent="."] +position = Vector2(119, -1755) + [connection signal="body_entered" from="GalactamartWorker/InteractArea" to="GalactamartWorker/InteractArea" method="_on_body_entered"] [connection signal="body_exited" from="GalactamartWorker/InteractArea" to="GalactamartWorker/InteractArea" method="_on_body_exited"] [connection signal="body_entered" from="ExitShip/InteractArea" to="ExitShip/InteractArea" method="_on_body_entered"] diff --git a/scenes/star.tscn b/scenes/star.tscn new file mode 100644 index 0000000..fe85991 --- /dev/null +++ b/scenes/star.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=3 uid="uid://c12bwtw4jdp1e"] + +[ext_resource type="Texture2D" uid="uid://5iimabvyld40" path="res://textures/particles/basic.png" id="1_mcqwg"] +[ext_resource type="Script" uid="uid://bswthfytadxup" path="res://scripts/star.gd" id="2_j6vao"] + +[node name="Star" type="Sprite2D"] +texture = ExtResource("1_mcqwg") +script = ExtResource("2_j6vao") diff --git a/scenes/title.tscn b/scenes/title.tscn index d184eab..114df14 100644 --- a/scenes/title.tscn +++ b/scenes/title.tscn @@ -117,6 +117,7 @@ size_flags_vertical = 3 alignment = 1 [node name="Title" type="VBoxContainer" parent="UI/Control"] +visible = false layout_mode = 0 offset_left = 480.0 offset_right = 1120.0 @@ -300,6 +301,93 @@ script = ExtResource("2_pyl7j") action_name = "ui_accept" metadata/_custom_type_script = "uid://b2maxk5g6yb0i" +[node name="OverrideSave" 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/OverrideSave"] +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]OVERRIDE SAVE?[/font][/b]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label3" type="RichTextLabel" parent="UI/Control/OverrideSave"] +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]there is currently a save in storage. creating a new save will delete your old one.[/font]" +fit_content = true +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Buttons" type="HFlowContainer" parent="UI/Control/OverrideSave"] +layout_mode = 2 +alignment = 1 + +[node name="YesOverride" type="Button" parent="UI/Control/OverrideSave/Buttons"] +custom_minimum_size = Vector2(128, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "yes" + +[node name="NoOverride" type="Button" parent="UI/Control/OverrideSave/Buttons"] +custom_minimum_size = Vector2(128, 0) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +text = "no" + +[node name="InputIconTextureRect2" type="TextureRect" parent="UI/Control/OverrideSave/Buttons"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_left" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect3" type="TextureRect" parent="UI/Control/OverrideSave/Buttons"] +custom_minimum_size = Vector2(48, 48) +layout_mode = 2 +expand_mode = 1 +script = ExtResource("2_pyl7j") +action_name = "ui_right" +metadata/_custom_type_script = "uid://b2maxk5g6yb0i" + +[node name="InputIconTextureRect4" type="TextureRect" parent="UI/Control/OverrideSave/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 @@ -328,6 +416,7 @@ 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/NewGame" to="." method="_on_new_game_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"] diff --git a/scripts/enterable.gd b/scripts/enterable.gd index f827221..4532b85 100644 --- a/scripts/enterable.gd +++ b/scripts/enterable.gd @@ -1,6 +1,6 @@ extends Sprite2D -@onready var game = get_parent() +@onready var game = get_owner() func _on_enter_hitbox_body_entered(body: Node2D) -> void: if body.get_name() == "Player": diff --git a/scripts/game.gd b/scripts/game.gd index 1ad21c0..cb6c59a 100644 --- a/scripts/game.gd +++ b/scripts/game.gd @@ -8,6 +8,11 @@ var current_atmospheric_track = null var asteroid_scene = preload("res://scenes/asteroid.tscn") var enemy_scene = preload("res://scenes/enemy.tscn") +var star_scene = preload("res://scenes/star.tscn") + +@onready var spawn_points = { + "SpaceStation1": $Orbits/SpaceStation1/SpaceStation1/ExitPoint +} func ship_health(health: float = 1000) -> void: $Player.health = health @@ -45,7 +50,7 @@ func enter_physical(map): get_tree().paused = false - global.ground_location = map + global.stats.location = map get_tree().change_scene_to_file("res://scenes/ground.tscn") @@ -56,9 +61,18 @@ func _ready() -> void: var events = InputMap.action_get_events("forward") - if global.ground_location: - $Player.global_position = get_node(global.ground_location + "/ExitPoint").global_position - $Player.rotation = get_node(global.ground_location + "/ExitPoint").rotation + if (global.stats.location != "space") and (spawn_points.has(global.stats.location)): + $Player.global_position = spawn_points[global.stats.location].global_position + $Player.rotation = spawn_points[global.stats.location].rotation + + var i = 0 + while i < 512: + var star = star_scene.instantiate() + star.position = Vector2(-99999999999999999, -9999999999999999999) + + $Stars.add_child(star) + + i += 1 func _process(delta: float) -> void: if get_tree().paused: diff --git a/scripts/global.gd b/scripts/global.gd index 692f796..d422cc4 100644 --- a/scripts/global.gd +++ b/scripts/global.gd @@ -1,5 +1,8 @@ extends Node +func _ready() -> void: + load_settings() + var ground_location = null var orbit_zones = [ @@ -23,12 +26,74 @@ var orbit_zones = [ ] +func generate_save(): + var save_dict = { + "stats": stats + } + return save_dict + +## Saves the game in its current state. +func save_game(): + var save_file = FileAccess.open("user://savegame.save", FileAccess.WRITE) + + var json_string = JSON.stringify(generate_save()) + + save_file.store_line(json_string) + +func save_settings(): + var save_file = FileAccess.open("user://settings.json", FileAccess.WRITE) + + var json_string = JSON.stringify(settings) + + save_file.store_line(json_string) + +## Loads the game data from the savegame.save file. +func load_game(): + if not FileAccess.file_exists("user://savegame.save"): + return + + var save_file = FileAccess.open("user://savegame.save", FileAccess.READ) + + var json = JSON.new() + + var parse_result = json.parse(save_file.get_as_text()) + + if not parse_result == OK: + print("JSON Parse Error: ", json.get_error_message(), " in ", parse_result, " at line ", json.get_error_line()) + return + + if json.data.settings: settings = json.data.settings + if json.data.stats: settings = json.data.stats + +func load_settings(): + if not FileAccess.file_exists("user://settings.json"): + return + + var save_file = FileAccess.open("user://settings.json", FileAccess.READ) + + var json = JSON.new() + + var parse_result = json.parse(save_file.get_as_text()) + + if not parse_result == OK: + print("JSON Parse Error: ", json.get_error_message(), " in ", parse_result, " at line ", json.get_error_line()) + return + + settings = json.data + +func delete_game(): + await DirAccess.remove_absolute("user://savegame.save") + var stats = { + "loaded": false, "fuel": 12, "fuel_tank_size": 1, "speed": 512, "boost_tank_size": 1, "marks": 200, + "location": "space", + "ship_position": Vector2(), + "ship_rotation": 0 } var settings = { diff --git a/scripts/settings.gd b/scripts/settings.gd index 6062c1b..7a0632a 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -24,4 +24,5 @@ func _on_sfx_volume_value_changed(value: float) -> void: func _on_back_pressed() -> void: + global.save_settings() get_owner()._on_settings_back_pressed() diff --git a/scripts/star.gd b/scripts/star.gd new file mode 100644 index 0000000..0599a84 --- /dev/null +++ b/scripts/star.gd @@ -0,0 +1,36 @@ +extends Sprite2D + +@onready var player = get_parent().get_parent().get_node("Player") + +func random_respawn(distance_min = 2000): + var random_rotation = randf_range(-7, 7) + var random_distance = randi_range(distance_min, 2000) + var random_size = randf_range(0.02, 0.5) + + global_position = player.global_position + (Vector2.UP.rotated(random_rotation) * random_distance) + global_position += (Vector2.RIGHT * randi_range(-random_distance, random_distance)).rotated(random_rotation) + + rotation = random_rotation + + scale.x = random_size + scale.y = scale.x + + var color = randi_range(1, 20) + + if color <= 1: + modulate = Color(1.0, 0.0, 0.0, 1.0) + elif color <= 2: + modulate = Color(0.177, 0.242, 1.0, 1.0) + elif color <= 3: + modulate = Color(1.0, 1.0, 0.0, 1.0) + else: + modulate = Color(1, 1, 1) + +func _ready() -> void: + random_respawn(0) + +func _process(delta: float) -> void: + var distance = abs((player.global_position - global_position).length()) + + if distance > 2100: + random_respawn() diff --git a/scripts/star.gd.uid b/scripts/star.gd.uid new file mode 100644 index 0000000..df86397 --- /dev/null +++ b/scripts/star.gd.uid @@ -0,0 +1 @@ +uid://bswthfytadxup diff --git a/scripts/title.gd b/scripts/title.gd index 092da6f..b38e8e6 100644 --- a/scripts/title.gd +++ b/scripts/title.gd @@ -194,3 +194,44 @@ func _on_settings_back_pressed() -> void: transitioning = false + + +func _on_new_game_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 + + if global.stats.loaded: + $UI/Control/OverrideSave.visible = true + + $UI/Control/OverrideSave.modulate.a = 0 + + i = 0 + + while i < 6: + $UI/Control/OverrideSave.modulate.a += 0.2 + + await get_tree().create_timer(0.2).timeout + + i += 1 + + $UI/Control/OverrideSave/Buttons/NoOverride.grab_focus() + + if global.stats.location == "space": + get_tree().change_scene_to_file("res://scenes/game.tscn") + else: + get_tree().change_scene_to_file("res://scenes/ground.tscn") + + transitioning = false diff --git a/textures/nurse-ground-sheet.png b/textures/nurse-ground-sheet.png new file mode 100644 index 0000000..e0efed8 Binary files /dev/null and b/textures/nurse-ground-sheet.png differ diff --git a/textures/nurse-ground-sheet.png.import b/textures/nurse-ground-sheet.png.import new file mode 100644 index 0000000..1958e9d --- /dev/null +++ b/textures/nurse-ground-sheet.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de0xeo6j2h1au" +path="res://.godot/imported/nurse-ground-sheet.png-2e8bea4c6b0a93bf710f93b3aa3590aa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/nurse-ground-sheet.png" +dest_files=["res://.godot/imported/nurse-ground-sheet.png-2e8bea4c6b0a93bf710f93b3aa3590aa.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